<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>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`.<br></div>
<div><br></div>
<div>In other words, with this example, the precedence doesn't actually matter.</div>
<div><br></div>
<div>-Kevin<br></div>
<div><br></div>
<div>On Mon, Aug 1, 2016, at 03:01 PM, Anton Zhilin via swift-evolution wrote:<br></div>
<blockquote type="cite"><div dir="ltr"><div><div defang_data-gmailquote="yes"><div>2016-08-02 0:52 GMT+03:00 Xiaodi Wu <span dir="ltr">&lt;<a href="mailto:xiaodi.wu@gmail.com">xiaodi.wu@gmail.com</a>&gt;</span>:<br></div>
<blockquote style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex;" defang_data-gmailquote="yes"><div dir="ltr"><div><span>On Mon, Aug 1, 2016 at 4:41 PM, Anton Zhilin via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;</span> wrote:<br></span></div>
<div><div defang_data-gmailquote="yes"><div><span></span><br></div>
<blockquote style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204, 204, 204);border-left-style:solid;padding-left:1ex;" defang_data-gmailquote="yes"><div dir="ltr"><div><span>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.</span><br></div>
<div><span></span><br></div>
<div><span>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.</span><br></div>
<div><span></span><br></div>
<div><span>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:</span><br></div>
<div><span></span><br></div>
<div><span>1/3 as Double &nbsp; // should we prohibit this?</span><br></div>
</div>
</blockquote><div><span></span><br></div>
<div><span></span><br></div>
<div>Why should we? I would absolutely want that to work exactly as it does now (0.333333...).<br></div>
</div>
</div>
</div>
</blockquote><div><br></div>
<div>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?<br></div>
</div>
</div>
</div>
<div><u>_______________________________________________</u><br></div>
<div>swift-evolution mailing list<br></div>
<div><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br></div>
<div><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></div>
</blockquote><div><br></div>
</body>
</html>