+1

Sent from my iPhone

> On May 16, 2016, at 4:06 PM, Joe Groff via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> Currently, we parse a type after 'as[?!]' and 'is'. This is mostly what you'd 
> expect, but does lead to problems when an 'as' expression appears as part of 
> a comparison:
> 
>    20 as Int64 < y as Int64 // error, '>' expected to close generic parameter 
> list Int64<y>
> 
> Looking to the future, many people have also expressed interest in the 
> ability to do dynamic type checks against metatype values, not only static 
> types, as in:
> 
>    class Base {}
>    class DerivedA {}
>    class DerivedB {}
> 
>    var x: Base.Type = DerivedA
> 
>    DerivedA() as? x // succeeds
>    DerivedB() as? x // fails
>    
> If we accept 
> https://github.com/apple/swift-evolution/blob/master/proposals/0090-remove-dot-self.md,
>  dropping the '.self' requirement to refer to type objects, then I think we 
> should also change 'is' and 'as' to parse the expression grammar on their 
> right-hand side, leaving it up to the normal expression disambiguation rule 
> to handle angle brackets. This solves the '20 as Int64 < x' problem, and 
> prepares us to support dynamic is/as queries in the future. (To be clear, 
> designing dynamic queries should be its own discussion.) What do you all 
> think?
> 
> -Joe
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to