[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