Changing the behavior of the comma operator

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Mar 25 10:33:21 PDT 2014


After the recent discussions regarding the comma operator, and after 
inspecting the patterns of code affected by it, Walter and I would back 
up the following change to the D language:

1. The comma operator stays with its current syntax.

2. The semantics is the same unless warnings are enabled with "-w"

3. In "-w" mode, semantics are changed in that the type of the comma 
operator is NOT the type of its last expression, but instead it's void.

4. Later on the warning will be promoted to a deprecation followed by 
removal from the language.

5. Reintroducing the result type as a tuple remains a future possibility.

We believe the change would be beneficial for the following reasons:

1. Based on druntime and phobos, the breakage is likely to be infrequent.

2. The change may catch (and has caught) important bugs caused by 
misplacing closing parentheses.

3. Most code using the result of the comma expression looks foreign even 
to seasoned programmers and might gain in clarity from a refactor.


Please reply to discuss this possibility.


Andrei


More information about the Digitalmars-d mailing list