digitalmars.D.bugs - [Issue 9990] New: templates with function alias cause forward reference error
- d-bugmail puremagic.com (48/48) Apr 25 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9990
- d-bugmail puremagic.com (15/15) Apr 25 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9990
- d-bugmail puremagic.com (11/11) Apr 26 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9990
- d-bugmail puremagic.com (9/9) Apr 28 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9990
http://d.puremagic.com/issues/show_bug.cgi?id=9990 Summary: templates with function alias cause forward reference error Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: SebastianGraf t-online.de 04:43:50 PDT --- import std.stdio; struct S { string field; } auto initS() { return S("hi"); } class C(alias init) { private S _s; this() { _s = init(); } auto createProxy() { struct Proxy { private S* s; void print() { writeln(s.field); } } return Proxy(&_s); } } // alias SC = C!(initS); static assert(!is(typeof(C!(initS)))); void main() { alias SC = C!(initS); auto c = new SC; c.createProxy().print(); } This prints out "hi". If I alias SC at the global level instead, I get a compiler error: hi.d(24): Error: template instance hi.C!(initS) forward reference of function initS Line 24 is the line with the offending global alias. I think the global version should also compile. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 25 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9990 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |pull, rejects-valid Reduced test case: auto initS() { return "hi"; } class C(alias init) {} alias SC = C!(initS); Compiler fix: https://github.com/D-Programming-Language/dmd/pull/1936 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 25 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9990 Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/7f6f1acdf25b2c968102587c9da0d1b033eea6e6 fix Issue 9990 - templates with function alias cause forward reference error https://github.com/D-Programming-Language/dmd/commit/661ac097995a79674a07db38469e58e5cf9e530a Issue 9990 - templates with function alias cause forward reference error -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 26 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9990 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 28 2013