Hi everyone. After implementing SE-0072, disabling the implicit bridging 
conversions from Swift value types to classes 
(https://github.com/apple/swift-evolution/blob/master/proposals/0072-eliminate-implicit-bridging-conversions.md),
 we immediately observed a severe negative impact on Cocoa interop as our users 
at Apple adapted to the change, forcing us to roll it back. `id`-based 
interfaces are still all over the place in the Cocoa SDKs, but it's our goal 
that Swift programmers should be able to use the value type versions of things 
without being constantly confronted with marshalling in and out of their `NS` 
versions, and this change failed that test for Cocoa users. Furthermore, the 
Foundation corelibs team is interested in continuing to adopt more value types 
and improving the experience of using Foundation from Swift without being 
hamstrung by the limitations of ObjC interop. We can address the problem of 
value-type-to-id interfacing in a different way—instead of making it a special 
case in the type system, we can handle it in the Objective-C bridge instead, by 
bridging Objective-C's `id` type to `Any` instead of `AnyObject`. This is a big 
change, but I think it leads to an overall Swiftier and more flexible model. 
I'm working on a proposal to this effect and would like to start getting 
feedback on it. Thanks for taking a look!

https://github.com/jckarter/swift-evolution/blob/1316004246e45296f81582477d70c22f95ec106c/proposals/XXXX-id-as-any.md

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

Reply via email to