digitalmars.D.bugs - [Issue 1464] New: "static" foreach breaks CTFE
- d-bugmail puremagic.com (29/29) Aug 31 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1464
- BCS (4/41) Aug 31 2007 That compiles at all? in the 1.x versions you can't have an alias of a
- Reiner Pope (3/47) Aug 31 2007 It's aliasing the template instantiation, not the tuple. It should
- BCS (7/15) Aug 31 2007 I'm looking at the above line.
- d-bugmail puremagic.com (9/9) Sep 28 2007 http://d.puremagic.com/issues/show_bug.cgi?id=1464
http://d.puremagic.com/issues/show_bug.cgi?id=1464
Summary: "static" foreach breaks CTFE
Product: D
Version: 2.003
Platform: PC
OS/Version: Windows
Status: NEW
Keywords: rejects-valid
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: reiner.pope gmail.com
The following code gives compile-time error, "cannot evaluate gen() at compile
time." Removing the "i" from the foreach fixes this.
template Tuple(T...)
{
alias T val;
}
alias Tuple!(int) Tup;
string gen()
{
foreach (i, type; Tup.val)
{
}
return null;
}
string text = gen();
--
Aug 31 2007
d-bugmail puremagic.com wrote:
http://d.puremagic.com/issues/show_bug.cgi?id=1464
Summary: "static" foreach breaks CTFE
Product: D
Version: 2.003
Platform: PC
OS/Version: Windows
Status: NEW
Keywords: rejects-valid
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: reiner.pope gmail.com
The following code gives compile-time error, "cannot evaluate gen() at compile
time." Removing the "i" from the foreach fixes this.
template Tuple(T...)
{
alias T val;
}
alias Tuple!(int) Tup;
string gen()
{
foreach (i, type; Tup.val)
{
}
return null;
}
string text = gen();
That compiles at all? in the 1.x versions you can't have an alias of a
tuple in a template other than if the tuple name is the same as the name
of the template (It's a known bug, not a language restriction)
Aug 31 2007
BCS wrote:d-bugmail puremagic.com wrote:It's aliasing the template instantiation, not the tuple. It should compile in 1.x as well as 2.x.http://d.puremagic.com/issues/show_bug.cgi?id=1464 Summary: "static" foreach breaks CTFE Product: D Version: 2.003 Platform: PC OS/Version: Windows Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: reiner.pope gmail.com The following code gives compile-time error, "cannot evaluate gen() at compile time." Removing the "i" from the foreach fixes this. template Tuple(T...) { alias T val; } alias Tuple!(int) Tup; string gen() { foreach (i, type; Tup.val) { } return null; } string text = gen();That compiles at all? in the 1.x versions you can't have an alias of a tuple in a template other than if the tuple name is the same as the name of the template (It's a known bug, not a language restriction)
Aug 31 2007
Reiner Pope wrote:I'm looking at the above line. http://d.puremagic.com/issues/show_bug.cgi?id=1241 However I seem to remember that the problem is a bit more general than the fist listed case. Well I'll gave to revisit some of that.It's aliasing the template instantiation, not the tuple. It should compile in 1.x as well as 2.x.template Tuple(T...) { alias T val; }
Aug 31 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1464
bugzilla digitalmars.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
Fixed dmd 1.021 and 2.004
--
Sep 28 2007









BCS <BCS pathlink.com> 