| // 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"); |
| } |