Changing the behavior of the comma operator
Steven Schveighoffer
schveiguy at yahoo.com
Tue Mar 25 11:00:14 PDT 2014
On Tue, 25 Mar 2014 13:33:21 -0400, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> 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.
I think this should not be done. Note that even though code which is D
could reintroduce commas safely, C code will still exist at that time, and
likely need porting to D. The principle that C code should either do the
same thing, or not compile, would be violated.
> 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.
I agree with the change, up through step 4. I think the result of comma
expression should *ALWAYS* be void.
-Steve
More information about the Digitalmars-d
mailing list