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

Dukc ajieskola at gmail.com
Fri Jan 29 13:03:45 UTC 2021


On Friday, 29 January 2021 at 12:41:35 UTC, Paul Backus wrote:
> You cannot actually pass an i"..." literal directly to `mixin` 
> with this proposal; you have to call `idup` (or some other 
> function) to convert it to a string first.

Why? I understood it like this: 
`mixin(i"foreach(i;0..${iterations}) foo();")` is first attempted 
as `mixin(Interp!"foreach(i;0.."(), iterations, Interp!") 
foo()"());`. Since `mixin` accepts only strings, `idup` is 
implicitly called on the arguments.

What went wrong?


More information about the Digitalmars-d mailing list