> On Nov 9, 2016, at 9:25 AM, Anton Zhilin via swift-evolution 
> <[email protected]> wrote:
> 
> Upon implementation of SE-0077 in Swift 3, some libraries started to drop 
> operators entirely: link #1 
> <https://github.com/antitypical/Result/issues/191>, link #2 
> <https://github.com/typelift/SwiftCheck/pull/179>.
> Declarations of the same custom operator with different precedence groups 
> create a conflict.
> The conflict can be resolved manually, but the resolution has to be made in 
> every file that uses the operator, which defeats the reason for using 
> operators in the first place.
> This is a part of a larger problem of conflict resolution, for which we don’t 
> currently have a systematic approach.
> Many libraries dealing with custom operators choose to import Runes 
> <https://github.com/thoughtbot/Runes>, which is basically a stockpile of 
> operator declarations. But it conflicts with Result, Swiftx and Operadics.
> Even if operator conflicts are resolved, precedencegroups’ names are not 
> module-scoped, and don’t support conflict resolution.
> Many libraries decide to just go ahead and prefix precedencegroups with 
> module name.
> Some developer on Github specifically complained about having to do this, but 
> I’ve lost the link.
Do you know if bugs have been filed about these issues? IIRC, SE-0077 specified 
that precedence groups should act like normal named declarations and be 
scopable. The fact that they aren't sounds like a bug to be fixed.

-Joe
> 
> Some precedencegroup names don’t seem perfect to me. This concern may not be 
> strong enough to make a source-breaking change, though.
> LogicalDisjunctionPrecedence -> DisjunctionPrecedence
> LogicalConjunctionPrecedence -> ConjunctionPrecedence
> BitwiseShiftPrecedence should be renamed to ExponentiationPrecedence, if we 
> decide not to branch bitwise operators off arithmetic.
> For the mentioned branching, I’m going to post a separate [Pitch] soon.
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to