Current spec: "Type is the type being tested. It must be syntactically correct, but it need not be semantically correct.". template foo() { static assert(false); // 1 void bar() { static assert(false); // 2 } } enum x = is(foo!()); ---- The original test case compiles without errors. If (1) is commented out: Error: static assert (false) is false If (2) is commented out, there is no error.
This seems to have been fixed.