Trip notes from Israel

Andrei Alexandrescu via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon May 22 08:26:26 PDT 2017


On 05/22/2017 11:23 AM, Adam D. Ruppe wrote:
> On Monday, 22 May 2017 at 15:05:24 UTC, Andrei Alexandrescu wrote:
>> mixin is a statement so it needs a terminator, hence
>> the semicolon at the very end. In turn, mixin takes
>> a string (the concatenation of variable op
> 
> That actually depends on context! The mixin statement needs statements, 
> but the mixin expression takes expressions. Same mixin keyword, but if 
> it is in the context of a statement it is a statement and in the context 
> of an expression, it is an expression.
> 
> ---
> void main() {
>      int payload;
>          mixin("++payload;"); // statement, ; required
>      int b = mixin("++payload"); // expression, ; would be wrong there 
> and cause an error!
> }
> ---
> 
> http://dlang.org/spec/expression.html#MixinExpression
> http://dlang.org/spec/statement.html#MixinStatement

Yah, didn't want to overload the article (or the discussion) with the 
expression/statement distinction. -- Andrei


More information about the Digitalmars-d-announce mailing list