> On Jul 8, 2016, at 11:19 AM, Ben Langmuir <[email protected]> wrote:
> 
> Hey Joe,

Sorry Ben, missed this when you sent it a couple weeks ago.

> I’m +1 on the overall direction, but I have some questions/concerns about the 
> "Ambivalent dynamic casting from Any” section.
> 
> 1) When you suggest that `x as String` succeeds but `x as NSString` fails, I 
> assume this would only be true *after* SE-0083, since otherwise we’d be 
> violating transitivity of `as` casts?

Right. I think we'll have to subset this part out of the proposal altogether 
and leave casting as is, though, due to time constraints.

> 2) Have you considered the only allowing `as` casts to the bridged type (e.g. 
> String) for values coming from `id` at the language level, but providing some 
> guaranteed optimization that if you immediately convert to the ObjC class 
> type (ie. NSString(x as! String)) we give zero-cost round-tripping? Would 
> that be detectable?  I think making `value as? NSFoo` fail or succeed 
> depending on whether the value came from ObjC  will be a source of subtle 
> bugs.  What if I have multiple sources of values - some from ObjC, some from 
> Swift - and stuff them into an [Any].

Yeah, John's looking into that as a general peephole.

-Joe
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to