Thread overview |
---|
November 19, 2006 [Issue 570] New: Bogus recursive mixin error | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=570 Summary: Bogus recursive mixin error Product: D Version: 0.174 Platform: PC OS/Version: Linux Status: NEW Keywords: rejects-valid Severity: major Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: daekharel@gmail.com import std.stdio; template TupleDecls(T, R ...) { T value; static if (R.length) mixin TupleDecls!(R) Inner; } struct TupleStruct(T ...) { mixin TupleDecls!(T); } void main() { alias TupleStruct!(char[], char[]) twoStrings; } --------- The above code generates the following errors when compiling: err.d(6): mixin err.TupleStruct!(char[],char[]).TupleStruct.TupleDecls!(char[],char[]).TupleDecls!(char[]) recursive mixin instantiation err.d(12): template instance err.TupleStruct!(char[],char[]) error instantiating The compiler seems to think that TupleDecls!(char[]) is the same as TupleDecls!(char[], char[]) somehow, and rejects instantiating the former inside the latter as being recursive, even though it's not. -- |
November 19, 2006 [Issue 570] Bogus recursive mixin error | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=570 ------- Comment #1 from daekharel@gmail.com 2006-11-18 21:09 ------- Correction: it is recursive, but not infinitely recursive, as instantiating TupleDecls!(char[], char[]) inside of TupleDecls!(char[], char[]) would be. Also, the compiler accepts this code just fine when the types passed to the template aren't the same, as in TupleDecls!(char[], int). -- |
July 10, 2008 [Issue 570] Bogus recursive mixin error | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=570 bugzilla@digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #2 from bugzilla@digitalmars.com 2008-07-09 22:35 ------- Fixed dmd 1.032 and 2.016 -- |
Copyright © 1999-2021 by the D Language Foundation