[Issue 16354] New: CTFE static foreach doesn't work with mixin import
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Fri Aug  5 05:36:18 PDT 2016
    
    
  
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 at puremagic.com
          Reporter: greensunny12 at 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();
}
--
    
    
More information about the Digitalmars-d-bugs
mailing list