> On Jun 20, 2017, at 6:59 PM, Howard Lovatt <howard.lov...@gmail.com> wrote:
> 
> There is a *bug* that the Swift people know about, but you are **meant** to 
> be able to do this:

Is there a plan to fix this?
If it worked properly this would be quite wonderful.


> 
> ModuleA
> A.swift
> public protocol P {
> func m() -> String
> }
> extension Int: P {
> public func m() -> String { return "AP.m" }
> }
> ModuleB
> B.swift
> public protocol P {
> func m() -> String
> }
> extension Int: P {
> public func m() -> String { return "BP.m" }
> }
> ModuleC
> A.swift
> import ModuleA
> func am(_ i: Int) -> String { return i.m() }
> B.swift
> import ModuleB
> func bm(_ i: Int) -> String { return i.m() }
> main.swift
> let i = 0
> print(am(i))
> print(bm(i))
> 
>   -- Howard.
> 
> On 21 June 2017 at 00:02, David Baraff via swift-users <swift-users@swift.org 
> <mailto:swift-users@swift.org>> wrote:
> I posted this on Apple’s developer forums, and someone suggested trying this 
> here.
> Basically, see https://forums.developer.apple.com/thread/80349 
> <https://forums.developer.apple.com/thread/80349>
> 
> but in a nutshell: consider that a widely used class/struct (such as CGPoint) 
> is missing some “obvious” functionality [don’t debate that part, just go with 
> it for now], such as the ability to scale a point by a scalar using * as an 
> operator: so in my awesome library “GeometryBase” I write
> 
>   public func * (left: CGPoint, right: double) -> CGPoint {
>       return CGPoint(x: right*left.x, y: right*left.y)
>   }
> 
> Why public?  Well, of course, because I want to use library GeometryBase in 
> many apps or other libraries, and now this overload exists in only one place.
> 
> But other bright people have the same idea, and now I want to use their 
> libraries.  (some of them in my company, some of them not.)
> 
> And now we’re stuck, because everyone is trying to make up for the same 
> (perceived) lack and everyone wants them public so that they don’t have to 
> keep sticking them in each library they write.
> 
> This is not a made up situation: many people even within one company trying 
> to share code somewhat informally are going to write the same code to make 
> using CGPoint/Size/Rect easier, and now we can’t share anything safely.
> 
> Anybody got some good ideas what to do about this?
> 
> [Same question could apply to adding extensions.]
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org <mailto:swift-users@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users 
> <https://lists.swift.org/mailman/listinfo/swift-users>
> 
> 

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

Reply via email to