1 // REQUIRED_ARGS: -transition=checkimports -transition=import -de
2 /*
3 TEST_OUTPUT:
4 ---
5 
6 fail_compilation/checkimports2c.d(28): Deprecation: local import search method found variable imports.imp2.X instead of variable checkimports2c.X
7 fail_compilation/checkimports2c.d(28):        while evaluating: `static assert(2 == 2)`
8 fail_compilation/checkimports2c.d(34): Deprecation: local import search method found variable imports.imp2.X instead of nothing
9 fail_compilation/checkimports2c.d(34):        while evaluating: `static assert(2 == 2)`
10 fail_compilation/checkimports2c.d(35): Deprecation: local import search method found variable imports.imp2.Y instead of nothing
11 fail_compilation/checkimports2c.d(35):        while evaluating: `static assert(2 == 2)`
12 fail_compilation/checkimports2c.d(37): Deprecation: local import search method found variable imports.imp2.X instead of variable checkimports2c.X
13 fail_compilation/checkimports2c.d(37):        while evaluating: `static assert(2 == 2)`
14 fail_compilation/checkimports2c.d(38): Deprecation: local import search method found variable imports.imp2.Y instead of variable imports.imp1.Y
15 fail_compilation/checkimports2c.d(38):        while evaluating: `static assert(2 == 2)`
16 ---
17 */
18 
19 // old lookup + information (the order of switches is reverse)
20 
21 import imports.imp1;
22 
23 enum X = 0;
24 
25 class B
26 {
27     import imports.imp2;
28     static assert(X == 2);      // imp2.X --> .X (information)
29     int[Y] aa;                  // imp2.Y
30 }
31 
32 class C : B
33 {
34     static assert(B.X == 2);    // imp2.X --> error (keep old lookup rule)
35     static assert(B.Y == 2);    // imp2.Y --> error (keep old lookup rule)
36 
37     static assert(X == 2);      // imp2.X --> .X (information)
38     static assert(Y == 2);      // imp2.Y --> imp1.Y (information)
39 }
40