Jordon Rose from Apple said: "It's tracked by SR-3908 <https://bugs.swift.org/browse/SR-3908> . (The description's a little different but it's the same underlying issue.)"
-- Howard. On 21 June 2017 at 12:07, David Baraff <davidbar...@gmail.com> wrote: > > 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> wrote: > >> I posted this on Apple’s developer forums, and someone suggested trying >> this here. >> Basically, see 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 >> https://lists.swift.org/mailman/listinfo/swift-users >> >> > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users