Date: Thu, 28 Apr 2022 13:34:18 -0400
Some things will potentially change meaning — yes. But none of the examples here need to break existing code.
We could optionally elide semicolons if — and only if — one or both of these conditions are meta:
1. A statement could end with a semicolon and be syntactically acceptable
2. A statement is followed by another statement which also satisfies (1)
Perhaps (2) could be modified as “… or by the end of the current scope.”
WL
> On Apr 28, 2022, at 1:26 PM, Matthew Woehlke <mwoehlke.floss_at_[hidden]> wrote:
>
> On 28/04/2022 13.11, William Linkmeyer via Std-Discussion wrote:
>> Hello,
>> I’ve been considering writing a paper which allows the programmer to elide semicolons when the statement is otherwise followed by any number of whitespace and a newline.
>> This would *only* apply to statements — function and class declarations and prototypes would be left untouched.
>
> Hmm. So this (potentially¹ perfectly legal code):
>
> int x = 5
> *y = 7;
>
> ...will suddenly mean something completely different? Seems like a non-starter.
>
> (¹ Okay, I needed an `int& operator*(int, decltype(y))`, but I doubt this is the only pathological example in existence.
>
> --
> Matthew
We could optionally elide semicolons if — and only if — one or both of these conditions are meta:
1. A statement could end with a semicolon and be syntactically acceptable
2. A statement is followed by another statement which also satisfies (1)
Perhaps (2) could be modified as “… or by the end of the current scope.”
WL
> On Apr 28, 2022, at 1:26 PM, Matthew Woehlke <mwoehlke.floss_at_[hidden]> wrote:
>
> On 28/04/2022 13.11, William Linkmeyer via Std-Discussion wrote:
>> Hello,
>> I’ve been considering writing a paper which allows the programmer to elide semicolons when the statement is otherwise followed by any number of whitespace and a newline.
>> This would *only* apply to statements — function and class declarations and prototypes would be left untouched.
>
> Hmm. So this (potentially¹ perfectly legal code):
>
> int x = 5
> *y = 7;
>
> ...will suddenly mean something completely different? Seems like a non-starter.
>
> (¹ Okay, I needed an `int& operator*(int, decltype(y))`, but I doubt this is the only pathological example in existence.
>
> --
> Matthew
Received on 2022-04-28 17:34:20