[swift-evolution] [Review] SE-0077 v2: Improved operator declarations
John McCall
rjmccall at apple.com
Thu Jul 7 11:27:11 CDT 2016
> On Jul 7, 2016, at 9:23 AM, Dmitri Gribenko via swift-evolution <swift-evolution at swift.org> wrote:
> > Proposal link:
> >
> > https://github.com/apple/swift-evolution/blob/master/proposals/0077-operator-precedence.md <https://github.com/apple/swift-evolution/blob/master/proposals/0077-operator-precedence.md>
>
> Dave, Max and I discussed SE-0077 and reviewed the names of precedence groups.
> Here's our recommendation.
>
> In general, we think some names don't read well and have some ambiguities, for
> example, "LogicalAndPrecedence" (looks like a conjunction),
> "AdditivePrecedence" ("additive" is an adjective that modifies "precedence"),
> "RangePrecedence" ("range" is not an adjective, stands out).
>
> We think that two directions would be fruitful:
>
> 1. If the names of precedence groups will be in the same namespace as types,
> then we recommend pushing the names of precedence groups into a "namespace",
> for example "Precedence.Assignment".
We don't have any language features that would allow this.
John.
>
> 2. If (1) is not workable, we suggest incrementally improving existing names
> to make them more readable and less ambiguous. We think that making the
> names less technical by naming the groups after a representative operation
> will be easier for users to understand (instead of "AdditivePrecence" we
> are proposing "AdditionPrecedence"). We also think that using an adjective
> before "Precedence" does not read well in many cases
> ("NilCoalescingPrecedence": precedence that coalesces nils).
>
>
> Current name | Namespacing | Incremental improvement
> ------------------------|-----------------------------|-----------------------------
> AssignmentPrecedence | Precedence.Assignment | no change
> TernaryPrecedence | Precedence.Ternary | no change
> DefaultPrecedence | Precedence.Default | no change
> LogicalOrPrecedence | Precedence.LogicalOr | DisjunctionPrecedence
> LogicalAndPrecedence | Precedence.LogicalAnd | ConjunctionPrecedence
> ComparativePrecedence | Precedence.Comparison | ComparisonPrecedence
> NilCoalescingPrecedence | Precedence.NilCoalescing | no change
> CastPrecedence | Precedence.Casting | no change
> RangePrecedence | Precedence.RangeForming | RangeFormationPrecedence
> AdditivePrecedence | Precedence.Addition | AdditionPrecedence
> MultiplicativePrecedence| Precedence.Multiplication | MultiplicationPrecedence
> BitwiseShiftPrecedence | Precedence.BitwiseShift | BitwiseShiftPrecedence
>
> Dmitri
>
> --
> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com <mailto:gribozavr at gmail.com>>*/
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160707/a7e0e8e6/attachment.html>
More information about the swift-evolution
mailing list