I seem to remember that while it is possible to define, the compiler will yield an error if you try to use the functions (“cannot resolve”).
Regards, Rien Site: http://balancingrock.nl Blog: http://swiftrien.blogspot.com Github: http://github.com/Swiftrien Project: http://swiftfire.nl > On 14 Nov 2016, at 23:05, Toni Suter via swift-users <swift-users@swift.org> > wrote: > > Hi, > > I would have expected that the following code reports an error, because > of ambiguous function overloads: > > infix operator ***: MultiplicationPrecedence > infix operator +++: AdditionPrecedence > > func ***(x: Int, y: Int) -> String { > print("f1") > return "" > } > > func ***(x: Int, y: Int) -> Int { > print("f2") > return 0 > } > > func +++(x: String, y: Int) -> Int { > print("f3") > return 0 > } > > func +++(x: Int, y: Int) -> Int { > print("f4") > return 0 > } > > let result = 0 *** 4 +++ 0 // prints f2 and f4 > > > As far as I can tell, there are two possible overload resolutions: f1 + f3 or > f2 + f4. > I thought that these two solutions get an "equivalent score" and therefore > there would > be a compile error. However, that's not the case. Instead, the type checker > picks > f2 and f4. > > So, I guess my question is, whether there is some rule, that prefers > operators, which have the same argument types and the same return type > or whether this is simply a bug. > > Thanks and best regards, > Toni > _______________________________________________ > 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