On 10/06/2014 05:50 AM, ketmar via Digitalmars-d-learn wrote:
On Mon, 06 Oct 2014 12:17:00 +0000
Alice via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:

the joy of mixin bugs, yeah! it's a bug in compiler: it instantiates
mixin in invalid scope. for now you can use string mixins, they are
working fine.

you also can use this to fix scoping:

=== ModuleA.d ===

   module ModuleA;
   static import ModuleB;
   mixin ModuleB.MixinUsefulStuff;
   pragma(msg, "a = ", SomeData.a);

btw, do you mind to fill a bugreport?


Another workaround is to mixin into a scope and then bring the names out by alias. Doing the following in both files works:

struct MixinUsefulStuffWrapper
{
    mixin MixinUsefulStuff;
}

alias SomeData = MixinUsefulStuffWrapper.SomeData;

Ali

Reply via email to