blob: 5f00fccf5971ba4f170d44dd525f663838d4658e [file] [log] [blame]
/*
TEST_OUTPUT:
---
fail_compilation/ice9806.d(12): Error: undefined identifier `undefined_expr`
fail_compilation/ice9806.d(17): Error: template instance ice9806.S1!() error instantiating
fail_compilation/ice9806.d(13): Error: undefined identifier `undefined_expr`
fail_compilation/ice9806.d(19): Error: template instance ice9806.C1!() error instantiating
fail_compilation/ice9806.d(14): Error: undefined identifier `undefined_expr`
fail_compilation/ice9806.d(21): Error: template instance ice9806.I1!() error instantiating
---
*/
struct S1() { enum x = undefined_expr; }
class C1() { enum x = undefined_expr; }
class I1() { enum x = undefined_expr; }
void test1() {
static assert(!is(typeof(S1!().x)));
auto sx = S1!().x;
static assert(!is(typeof(C1!().x)));
auto cx = C1!().x;
static assert(!is(typeof(I1!().x)));
auto ix = I1!().x;
}
// --------
/*
TEST_OUTPUT:
---
fail_compilation/ice9806.d(36): Error: undefined identifier `undefined_expr`
fail_compilation/ice9806.d(44): Error: template instance ice9806.S2!() error instantiating
fail_compilation/ice9806.d(37): Error: undefined identifier `undefined_expr`
fail_compilation/ice9806.d(46): Error: template instance ice9806.C2!() error instantiating
fail_compilation/ice9806.d(38): Error: undefined identifier `undefined_expr`
fail_compilation/ice9806.d(48): Error: template instance ice9806.I2!() error instantiating
---
*/
int foo2()() { return undefined_expr; }
int bar2()() { return undefined_expr; }
int baz2()() { return undefined_expr; }
struct S2() { enum x = foo2(); }
class C2() { enum x = bar2(); }
class I2() { enum x = baz2(); }
void test2() {
static assert(!is(typeof(S2!().x)));
auto sx = S2!().x;
static assert(!is(typeof(C2!().x)));
auto cx = C2!().x;
static assert(!is(typeof(I2!().x)));
auto ix = I2!().x;
}