> 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