<div dir="ltr"><div>Generally I&#39;m in favor of something like this.</div><div><br></div><div>But if &quot;case&quot; is removed, doesn&#39;t that introduce an ambiguity? In an admittedly contrived pathological case, you could have an &quot;=&quot; operator which returns a Bool; then &quot;if .someCase = myvar&quot; would be ambiguous.<br></div><div><br></div><div class="gmail_extra"><div><div><div dir="ltr"><div>Jacob<br></div></div></div></div>
<br><div class="gmail_quote">On Sun, May 1, 2016 at 1:12 AM, Антон Жилин <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Generally, pattern binding in `if` looks like this:<div><br></div><div>if case *pattern* = *expression* { ... }</div><div><br></div><div>Pattern binding for optionals is currently usable as both of:</div><div><br></div><div>if case let .some(x) = y { ... }</div><div>if case let x? = y { ... }</div><div><br></div><div>Now, there is also an older optional-specific hack:</div><div><br></div><div>if let x = y { ... }</div><div><br></div><div>In terms of pattern binding, it should always be true, and it&#39;s illogical inside `if`.</div><div><br></div><div>I suggest:</div><div>1) Remove optional pattern binding</div><div>2) Remove `case` in `if` pattern binding</div><div><br></div><div>Really, `case` should be an attribute of `switch`, not `if`.</div><div><br></div><div>Pattern binding for optionals will look like:</div><div><br></div><div>if let x? = y { ... }</div><div><br></div><div>It will become more explicit and consistent with the rest of the language.</div><div><br></div><div>We need to hurry until Swift 3 lands!</div><div><br></div><div>- Anton</div></div>
<br>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br></blockquote></div><br></div></div>