What    |Removed                     |Added
                 CC|                            |[EMAIL PROTECTED]
           Keywords|                            |rejects-valid
            Summary|incorrect static assert     |incorrect behaviour of
                   |behavior                    |IsExpression on invalid
                   |                            |template instance

------- Comment #5 from [EMAIL PROTECTED]  2008-11-24 07:15 -------
The original issue isn't a bug, since the point of IsExpression is that
semantic errors never escape it - it just evaluates to false instead.

But the issue raised from comment 2 onwards is certainly a bug, and the
behaviour is quite strange.

import std.stdio;
class Templ(T) { this(){ unknown_identifier; } }

void main() {
    pragma(msg, "In main: " ~ is(Templ!(int)).stringof);
In main: 0

But add this line at the very end

pragma(msg, "Global: " ~ is(Templ!(int)).stringof);
Global: 1
In main: 1
bz2167a.d(2): Error: undefined identifier unknown_identifier
bz2167a.d(2): Error: identifier has no effect in expression


Reply via email to