Not a bug. `(1 as Int/3) as Double` is a type error, because you can't cast Int to Double that way, so in order to resolve the types in this expression the 1 and 3 end up inferred as Doubles as that's the only way to make the output compatible with `as Double`.
In other words, with this example, the precedence doesn't actually matter. -Kevin On Mon, Aug 1, 2016, at 03:01 PM, Anton Zhilin via swift-evolution wrote: > 2016-08-02 0:52 GMT+03:00 Xiaodi Wu <[email protected]>: >> On Mon, Aug 1, 2016 at 4:41 PM, Anton Zhilin via swift-evolution <swift- >> [email protected]> wrote: >> >>> Disclaimer: I have not (yet) prepared a proposal, or even something >>> that could be considered a draft, but I want to hear public opinion >>> on the topic. >>> >>> SE-0077 (about precedence groups) has been successfully implemented >>> for Swift 3. (A thousand thanks to John McCall!) It suggests a model >>> where we can prohibit certain operators from standing next to each >>> other. >>> >>> This was intended to be the second part of that proposal. We now >>> have to think if we should drop some precedence relationships >>> between standard operators. Here are examples of parentheses >>> dropping that can be ambiguous to reader: >>> >>> 1/3 as Double // should we prohibit this? >> >> >> Why should we? I would absolutely want that to work exactly as it >> does now (0.333333...). > > Strange enough, I've just run it and yes, 0.333333... But casting > precedence is lower than multiplicative, so I thought it would parse > as '(1/3) as Double'. Is it a bug? > _________________________________________________ > 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
