// https://issues.dlang.org/show_bug.cgi?id=20012 mixin template mixinFoo() { extern(C) void cFoo() {} extern(C) int cVar; extern(D) int dVar; void dFoo() {} mixin(`mixin mixinBar;`); // test nesting and interaction with string mixins } mixin mixinFoo; mixin template mixinBar() { extern(C) void cBar() {} void dBar() {} } static assert(cFoo.mangleof == "cFoo"); static assert(dFoo.mangleof == "_D21mixinTemplateMangling8__mixin54dFooFZv"); static assert(cVar.mangleof == "cVar"); static assert(dVar.mangleof == "_D21mixinTemplateMangling8__mixin54dVari"); static assert(cBar.mangleof == "cBar"); static assert(dBar.mangleof == "_D21mixinTemplateMangling8__mixin5Qj4dBarFZv"); struct S { mixin mixinFoo; static assert(cFoo.mangleof == "_D21mixinTemplateMangling1S8__mixin14cFooMUZv"); static assert(cBar.mangleof == "_D21mixinTemplateMangling1S8__mixin18__mixin54cBarMUZv"); static assert(dBar.mangleof == "_D21mixinTemplateMangling1S8__mixin18__mixin54dBarMFZv"); static assert(dFoo.mangleof == "_D21mixinTemplateMangling1S8__mixin14dFooMFZv"); }