1 // https://issues.dlang.org/show_bug.cgi?id=3737
2 /*
3 TEST_OUTPUT:
4 ---
5 fail_compilation/fail344.d(20): Error: undefined identifier `Q`
6 fail_compilation/fail344.d(20): Error: undefined identifier `Q`
7 fail_compilation/fail344.d(20): Error: undefined identifier `V`
8 fail_compilation/fail344.d(23):        while evaluating: `static assert(Alike!(SIB!(crayon)))`
9 fail_compilation/fail344.d(23): Error: template instance `fail344.SIB!(crayon).SIB.Alike!(SIB!(crayon))` error instantiating
10 fail_compilation/fail344.d(23):        while evaluating: `static assert(Alike!(SIB!(crayon)))`
11 fail_compilation/fail344.d(28): Error: template instance `fail344.SIB!(crayon).SIB.opDispatch!"E"` error instantiating
12 ---
13 */
14 
15 int crayon;
16 
SIB(alias junk)17 struct SIB(alias junk)
18 {
19     template Alike(V) {
20         enum bool Alike = Q == V.garbage;
21     }
22     void opDispatch(string s)() {
23         static assert(Alike!(SIB!(crayon)));
24     }
25 }
26 
main()27 void main() {
28       SIB!(SIB!(crayon).E)(3.0);
29 }
30