| // https://issues.dlang.org/show_bug.cgi?id=3737 |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail344.d(20): Error: undefined identifier `Q` |
| fail_compilation/fail344.d(20): Error: undefined identifier `Q` |
| fail_compilation/fail344.d(20): Error: undefined identifier `V` |
| fail_compilation/fail344.d(23): while evaluating: `static assert(Alike!(SIB!(crayon)))` |
| fail_compilation/fail344.d(23): Error: template instance `fail344.SIB!(crayon).SIB.Alike!(SIB!(crayon))` error instantiating |
| fail_compilation/fail344.d(23): while evaluating: `static assert(Alike!(SIB!(crayon)))` |
| fail_compilation/fail344.d(28): Error: template instance `fail344.SIB!(crayon).SIB.opDispatch!"E"` error instantiating |
| --- |
| */ |
| |
| int crayon; |
| |
| struct SIB(alias junk) |
| { |
| template Alike(V) { |
| enum bool Alike = Q == V.garbage; |
| } |
| void opDispatch(string s)() { |
| static assert(Alike!(SIB!(crayon))); |
| } |
| } |
| |
| void main() { |
| SIB!(SIB!(crayon).E)(3.0); |
| } |