/* TEST_OUTPUT: --- fail_compilation/test15989.d(39): Error: variable `test15989.main.ctRegex` : Unable to initialize enum with class or pointer to struct. Use static const variable instead. fail_compilation/test15989.d(48): Error: variable `test15989.test.c` : Unable to initialize enum with class or pointer to struct. Use static const variable instead. fail_compilation/test15989.d(49): Error: cannot use non-constant CTFE pointer in an initializer `new int(3)` --- */ // https://issues.dlang.org/show_bug.cgi?id=15989 import core.stdc.stdio; interface Kickstart{ bool foo( int ); } class ShiftOr : Kickstart { bool foo( int i ) { printf("i = %d\n", i); return false; } } struct Regex { Kickstart kickstart; } Regex regex() { return Regex(new ShiftOr()); } void main() { enum ctRegex = regex(); Regex r = ctRegex; r.kickstart.foo(7); } class C { } void test() { enum c = new C(); enum pi = new int(3); }