> guard
>  x == 0 && a == b && c == d &&
>  let y = optional, w = optional2, v = optional 3 &&
>   z == 2
> else { ... }
> 
> Figuring out where to break the first line into expression and into condition 
> (after the `d`) could be very challenging to the compiler.

I'm not sure it is. `let` and `case` are not valid in an expression, so an `&&` 
followed by `let` or `case` must be joining clauses. On the other side of 
things, Swift's `&&` doesn't ever produce an optional, so if we're parsing an 
expression at the top level of an if-let, an `&&` must indicate the end of the 
clause. An if-case *could* theoretically include an `&&`, but pattern matching 
against a boolean value seems like a fairly useless thing to do in a context 
that's specifically intended to test booleans.

-- 
Brent Royal-Gordon
Architechies

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to