May 01, 2010 [Issue 4137] New: Undefined identifier error in is(typeof()) | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=4137 Summary: Undefined identifier error in is(typeof()) Product: D Version: unspecified Platform: x86 OS/Version: Windows Status: NEW Keywords: diagnostic Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: bearophile_hugs@eml.cc --- Comment #0 from bearophile_hugs@eml.cc 2010-05-01 05:38:35 PDT --- I don't know if there are ways to solve this problem, I hope this isn't another situation like bug 3950. This is wrong D2 code. The template Foo has the type parameter T while inside it uses the parameter R: template Foo(T) { enum bool Foo = is(typeof(R.length)); } void main() { assert(Foo!(int[])); } The program compiles with no errors with dmd 2.043 and at run time produces: core.exception.AssertError@test2(5): Assertion failure But to help debugging, I'd like the compiler to point R as a undefined identifier (even with the 'did you mean...') at compile-time. Is this possible? -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
May 01, 2010 [Issue 4137] Undefined identifier error in is(typeof()) | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=4137 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla@digitalmars.com Resolution| |INVALID --- Comment #1 from Walter Bright <bugzilla@digitalmars.com> 2010-05-01 09:45:29 PDT --- This is expected & documented behavior. Compilation failures inside "is" expressions cause the is expression result to be false. A lot of template code relies on this. If you want an error on R being undefined, use it somewhere else in addition to inside the "is" expression. -- 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