Hi Andrey
On 27/03/17 12:04, Andrey Breslav wrote:
3. And to share a little bit about smart casts (I'm flattered that you
are using our terminology here ;) ): as soon as you have smart casts,
the urge to get intersection types into the language strengthens,
because of cases like this:
if (x is A) {
if (x is B) {
// x is A&B here
}
}
We still get away without making intersection types explicit, and will
probably not add them in the very nearest future, but they become a
lot less exotic with smart casts.
Interesting point - our current scoping rules would claim that it is an
error to introduce a binding for 'x' with type T, if 'x' is already in
scope with a type S != T.
Do you have any compelling use cases from Kotlin to go down the more
precise (and liberal) intersection type path?
Cheers
Maurizio