www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 16354] New: CTFE static foreach doesn't work with mixin import

https://issues.dlang.org/show_bug.cgi?id=16354

          Issue ID: 16354
           Summary: CTFE static foreach doesn't work with mixin import
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: minor
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: greensunny12 gmail.com

Using static foreach with mixin imports doesn't seem to work whereas it works
with the CTFE foreach loop;

foo.d
void main() { import std.meta : AliasSeq; alias mods = AliasSeq!("test1"); foreach (mod; mods) mixin("import bar : " ~ mod ~ " = bar_fun;"); test1(); }
bar.d
void bar_fun() { import std.stdio; writeln("works"); } One gets:
 foo.d(9): Error: undefined identifier 'test1'
However this does work ("manual loop unrolling") fine:
foo.d
void main() { import std.meta : AliasSeq; alias mods = AliasSeq!("test1"); mixin("import bar : " ~ mods[0] ~ " = bar_fun;"); test1(); } --
Aug 05 2016