extern(C) int printf(const char*, ...); /******************************************/ // 12078 class B12078(T) { static assert(is(T : B12078!T), "not related"); } class D12078 : B12078!D12078 { } interface X12078(T) { static assert(is(T : X12078!T), "not related"); } interface Y12078 : X12078!Y12078 { } void test12078() { static assert(is(D12078 : B12078!D12078)); static assert(is(Y12078 : X12078!Y12078)); } /******************************************/ // 12143 class Node12143 { alias typeof(true ? Node12143.init : Class12143.init) V; static assert(is(V == Node12143)); } class Type12143 : Node12143 {} class Class12143 : Type12143 {} /***************************************************/ // 13353 interface Base13353(T) { static assert(is(T : Base13353!T)); } interface Derived13353 : Base13353!Derived13353 { void func(); } class Concrete13353 : Derived13353 { void func() {} } /***************************************************/ // 15733 class CStmt15733 : CNode15733 {} class CDecl15733 : CStmt15733 {} class CNode15733 { mixin CMix!CDecl15733; } template CMix(T){ mixin("static " ~ T.stringof ~ " x;"); } interface IStmt15733 : INode15733 {} interface IDecl15733 : IStmt15733 {} interface INode15733 { mixin IMix!IDecl15733; } template IMix(T){ mixin("static " ~ T.stringof ~ " x;"); } /***************************************************/ int main() { printf("Success\n"); return 0; }