Thread overview | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
June 24, 2008 [Issue 2167] New: is exp doesn't return correct result | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=2167 Summary: is exp doesn't return correct result Product: D Version: 1.030 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: davidl@126.com in bug: http://d.puremagic.com/issues/show_bug.cgi?id=826 a slightly modified version as following passes the test class Foo(T) { this() { unknown_identifier; } } void bar() { bool foobar = is( Foo!(int) ); assert(foobar == false); } void main() { bar(); } but the comment from Thomas Kühne not: http://dstress.kuehne.cn/compile/b/bug_e2ir_520_B.d this bug fails -- |
June 30, 2008 [Issue 2167] static assert hides template errors | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2167 clugdbug@yahoo.com.au changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic Summary|is exp doesn't return |static assert hides template |correct result |errors ------- Comment #1 from clugdbug@yahoo.com.au 2008-06-30 08:17 ------- I think this *is* returning the correct result. The only issue is, that although the template instantiation fails, no error message is printed. (just "static assert is false"). But static assert is a bit wierd (and not terribly useful any more), so I'm not even certain that it is a bug. -- |
June 30, 2008 [Issue 2167] static assert hides template errors | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2167 ------- Comment #2 from 2korden@gmail.com 2008-06-30 08:34 ------- Let me rephrase: class Templ(T) { this(){ unknown_identifier; } } void main() { static assert(false == is(Templ!(int))); // correctly passes } static assert(false == is(Templ!(int))); // fails, yet they are the same, the only difference is a scope -- |
June 30, 2008 [Issue 2167] static assert hides template errors | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2167 ------- Comment #3 from 2korden@gmail.com 2008-06-30 08:49 ------- The following one fails to compile: class Templ(T) { this(){ unknown_identifier; } } static assert(true == is(Templ!(int))); with the following reason: Error: undefined identifier unknown_identifier And so does this: static assert(true == __traits(compiles, Templ!(int))); IMO, incorrect code in __traits(compiles) should not lead to compilation errors. -- |
July 01, 2008 [Issue 2167] incorrect static assert behavior | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2167 davidl@126.com changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|diagnostic | Summary|static assert hides template|incorrect static assert |errors |behavior ------- Comment #4 from davidl@126.com 2008-07-01 12:06 ------- as Koroskin Denis rephrased, it's clearly a misbehavior. -- |
November 24, 2008 [Issue 2167] incorrect behaviour of IsExpression on invalid template instance | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2167 smjg@iname.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |smjg@iname.com Keywords| |rejects-valid Summary|incorrect static assert |incorrect behaviour of |behavior |IsExpression on invalid | |template instance ------- Comment #5 from smjg@iname.com 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 (unknown_identifier) ---------- -- |
November 21, 2012 [Issue 2167] incorrect behaviour of IsExpression on invalid template instance | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2167 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE --- Comment #6 from Don <clugdbug@yahoo.com.au> 2012-11-21 00:47:55 PST --- *** This issue has been marked as a duplicate of issue 965 *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation