Discussion Thread: DIP 1036--String Interpolation Tuple Literals--Community Review Round 2

Paul Backus snarwin at gmail.com
Thu Feb 4 17:05:30 UTC 2021


On Thursday, 4 February 2021 at 17:00:43 UTC, Ola Fosheim Grøstad 
wrote:
> On Thursday, 4 February 2021 at 15:34:07 UTC, Adam D. Ruppe 
> wrote:
>> but you don't know that the opening brace is interpolating.
>>
>> enum name = "foo";
>> mixin(iq{ void {name}() {bar} });
>>
>>
>> Is {bar} interpolation or a function body?
>
> It would be interpolation. If you are in text (string) mode 
> when hitting "{" it would be taken as opening an expression 
> that should be converted to string. So, no ambiguity.

This makes using interpolation to generate D code significantly 
more cumbersome, because '{' is a common character in D code, and 
every occurrence of it would have to be escaped. It is much 
easier if the sequence used to introduce an interpolated 
expression is not a valid D token.


More information about the Digitalmars-d mailing list