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

Reply via email to