[swift-evolution] [Idea] Remove optional pattern binding

Антон Жилин antonyzhilin at gmail.com
Sun May 1 03:12:34 CDT 2016

Generally, pattern binding in `if` looks like this:

if case *pattern* = *expression* { ... }

Pattern binding for optionals is currently usable as both of:

if case let .some(x) = y { ... }
if case let x? = y { ... }

Now, there is also an older optional-specific hack:

if let x = y { ... }

In terms of pattern binding, it should always be true, and it's illogical
inside `if`.

I suggest:
1) Remove optional pattern binding
2) Remove `case` in `if` pattern binding

Really, `case` should be an attribute of `switch`, not `if`.

Pattern binding for optionals will look like:

if let x? = y { ... }

It will become more explicit and consistent with the rest of the language.

We need to hurry until Swift 3 lands!

- Anton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160501/d659d31d/attachment.html>

More information about the swift-evolution mailing list