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









d-bugmail puremagic.com 