digitalmars.D.bugs - [Issue 1460] New: Compiler crash on valid code
- d-bugmail puremagic.com (33/33) Aug 31 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1460
- d-bugmail puremagic.com (7/7) Sep 01 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1460
- d-bugmail puremagic.com (5/5) Sep 02 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1460
- d-bugmail puremagic.com (9/9) Sep 28 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1460
http://d.puremagic.com/issues/show_bug.cgi?id=1460 Summary: Compiler crash on valid code Product: D Version: 1.020 Platform: PC OS/Version: Windows Status: NEW Severity: blocker Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: samukha voliacable.com D 2.003 crashes as well. struct S { int x; } S foo(alias s)() { const S ret = bar(s); return ret; } S bar(S s) { return s; } S baz(int x)() { const S s = {x}; return foo!(s)(); } const r = baz!(1)(); --
Aug 31 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1460 I'll fix the crashing problem, but the resulting code still won't work. That's because the template arguments are evaluated before trying to match them up with a template. That means the const declaration of s is replaced with a struct literal S(1). Struct literals don't match aliases. --
Sep 01 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1460 A regrettable limitation and somewhat inconsistent with cases like passing uninitialized constant to alias parameter (issue 1456) --
Sep 02 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1460 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed dmd 1.021 and 2.004 --
Sep 28 2007