I’m haven’t read the implementation, but as I see it, “weak” has the effect of 
storing associated values.  Can that mechanism be made generic?

> +1 from me too for internal extensions; I think this is the logical place to 
> start for now so we can see how many use cases this actually covers. 
> Personally I don't try to add functionality to types from other libraries, 
> and when I have to I try as much as possible to do it via wrapping; obviously 
> this doesn't cover the async type cases and others where it'd be hard to 
> re-wrap the values, but I think I'd like to know more about how common such 
> cases actually are.
> 
> However, allowing stored properties in local extensions is an absolute must 
> for a first step, and would be very useful as a first step.
> 
> 
> The problem I have with doing it for external types is that I just don't see 
> how it can be done efficiently; associated objects means looking up the 
> object to find what its associated values are, which isn't a negligible cost 
> if you're doing it frequently, and it makes me very uncomfortable to think of 
> hiding what is actually happening, as developers may think they're just using 
> a regular property without really appreciating the actual costs involved. At 
> the very least they need to handled through a .associated property or 
> whatever to make it much clearer that these aren't native properties in the 
> normal sense.
> _______________________________________________
> 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