> On May 20, 2016, at 1:01 PM, Erica Sadun <[email protected]> wrote:
>
>
>> On May 20, 2016, at 11:53 AM, Matthew Johnson <[email protected]
>> <mailto:[email protected]>> wrote:
>> I am less certain about allowing simple boolean expressions that are not
>> introduced by the `where` keyword (excepting the first one which is
>> introduced with the `guard` keyword). I think this is a separate question
>> that should receive independent consideration. I think a reasonable
>> argument can be made both ways.
>
> That's kind of the heart of the matter.
>
> There's an assumption that guard statements are:
>
> `guard` (conjoined boolean tests) | (conjoined boolean tests,)? (pattern |
> binding (where boolean)?, )+ else {...}
>
> Right? (Except I couldn't figure out how to grammar out the final comma,) I'm
> suggesting:
>
> `guard` ((boolean | (pattern | binding (where boolean)?)),)+ else {...}
>
> instead. (And ditto about final comma) This promotes boolean statements to
> the same standing, so they're not limited to the start of the guard statement
> or syntactically tied to a pattern/binding where there may be no semantic
> basis.
Yep, I know. I’m agreeing with breaking the syntactic tie to pattern binding,
just questioning whether we should drop the need to introduce subsequent ones
with `where`. I am on the fence as to which is more readable and interested in
hearing discussion about that.
This is what it would look like if drop the requirement that they be tied to a
pattern binding but we require `where` on subsequent boolean expressions
(meaning each clause is introduced with a keyword.
`guard` (boolean,)? (((where boolean) | (pattern | binding (where
boolean)?)),)+ else {…}
We could also do this if we wanted to allow all boolean expressions, even the
first, to be introduced with `where` to support consistent formatting of all
clauses in a multi-line construct like the ones in your example.
`guard` (where? boolean,)? (((where boolean) | (pattern | binding (where
boolean)?)),)+ else {...}
>
> -- E
>
>
>
>
>
>
>
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution