Gavin King
Gavin King
> @someth2say given the fact that ceylon defines its comparison operators by the `Comparable` interface, I'd indeed say they belong to the language. But nevertheless, I (slightly) tend to put...
You can try this out on the `7409` branch.
@jvasileff yeah, essentially. But it also means that if `B.foo()` narrows the type of `foo()`, that narrowing is not visible outside of `B`.
OK, I just pushed an initial implementation you can try out. It's a rather huge diff, but there's nothing really very hard in there.
@jvasileff To be clear, my main goal here is to reduce the verbosity of the code, without losing orthogonality of the language constructs. It's not that I think plain `actual`...
Example of a language module class rewritten using this feature: ```ceylon class ArraySequence(array) extends Object() satisfies [Element+] { Array array; assert (!array.empty); getFromFirst(Integer index) => array.getFromFirst(index); contains(Object element) => array.contains(element);...
> I believe that having refinements be `shared` is essential. Why? I don't think I follow. > I think I'd prefer for `shared` to be implied, or for all of...
> 1) If [this](https://github.com/ceylon/ceylon/issues/7037#issuecomment-295339189) is indeed true and the IDE won't offer a good guess at what code will run for `b.foo()`, that's a problem. Well what the IDE does...
> Yeah, that's confusing. No problem, I can fix it. > But really, my main argument is about the implementation, not the documentation. > How can you argue that What...
> What about BC? This implicitly narrowed type information will wind up in byte code for public members, right? Hrm, interesting point. I had not thought of that. It's true,...