]>
Commit | Line | Data |
---|---|---|
b4c522fa IB |
1 | /* |
2 | TEST_OUTPUT: | |
3 | --- | |
4 | fail_compilation/ice9806.d(12): Error: undefined identifier `undefined_expr` | |
5fee5ec3 | 5 | fail_compilation/ice9806.d(17): Error: template instance `ice9806.S1!()` error instantiating |
b4c522fa | 6 | fail_compilation/ice9806.d(13): Error: undefined identifier `undefined_expr` |
5fee5ec3 | 7 | fail_compilation/ice9806.d(19): Error: template instance `ice9806.C1!()` error instantiating |
b4c522fa | 8 | fail_compilation/ice9806.d(14): Error: undefined identifier `undefined_expr` |
5fee5ec3 | 9 | fail_compilation/ice9806.d(21): Error: template instance `ice9806.I1!()` error instantiating |
b4c522fa IB |
10 | --- |
11 | */ | |
12 | struct S1() { enum x = undefined_expr; } | |
13 | class C1() { enum x = undefined_expr; } | |
14 | class I1() { enum x = undefined_expr; } | |
15 | void test1() { | |
16 | static assert(!is(typeof(S1!().x))); | |
17 | auto sx = S1!().x; | |
18 | static assert(!is(typeof(C1!().x))); | |
19 | auto cx = C1!().x; | |
20 | static assert(!is(typeof(I1!().x))); | |
21 | auto ix = I1!().x; | |
22 | } | |
23 | ||
24 | // -------- | |
25 | /* | |
26 | TEST_OUTPUT: | |
27 | --- | |
28 | fail_compilation/ice9806.d(36): Error: undefined identifier `undefined_expr` | |
5fee5ec3 | 29 | fail_compilation/ice9806.d(44): Error: template instance `ice9806.S2!()` error instantiating |
b4c522fa | 30 | fail_compilation/ice9806.d(37): Error: undefined identifier `undefined_expr` |
5fee5ec3 | 31 | fail_compilation/ice9806.d(46): Error: template instance `ice9806.C2!()` error instantiating |
b4c522fa | 32 | fail_compilation/ice9806.d(38): Error: undefined identifier `undefined_expr` |
5fee5ec3 | 33 | fail_compilation/ice9806.d(48): Error: template instance `ice9806.I2!()` error instantiating |
b4c522fa IB |
34 | --- |
35 | */ | |
36 | int foo2()() { return undefined_expr; } | |
37 | int bar2()() { return undefined_expr; } | |
38 | int baz2()() { return undefined_expr; } | |
39 | struct S2() { enum x = foo2(); } | |
40 | class C2() { enum x = bar2(); } | |
41 | class I2() { enum x = baz2(); } | |
42 | void test2() { | |
43 | static assert(!is(typeof(S2!().x))); | |
44 | auto sx = S2!().x; | |
45 | static assert(!is(typeof(C2!().x))); | |
46 | auto cx = C2!().x; | |
47 | static assert(!is(typeof(I2!().x))); | |
48 | auto ix = I2!().x; | |
49 | } |