digitalmars.D.bugs - [Issue 540] New: Nested template member function error - "function expected before ()"
- d-bugmail puremagic.com (30/30) Nov 17 2006 http://d.puremagic.com/issues/show_bug.cgi?id=540
- d-bugmail puremagic.com (23/23) Apr 24 2007 http://d.puremagic.com/issues/show_bug.cgi?id=540
- d-bugmail puremagic.com (5/5) Jun 20 2007 http://d.puremagic.com/issues/show_bug.cgi?id=540
- d-bugmail puremagic.com (6/6) Jun 21 2007 http://d.puremagic.com/issues/show_bug.cgi?id=540
- d-bugmail puremagic.com (6/6) Jun 21 2007 http://d.puremagic.com/issues/show_bug.cgi?id=540
- d-bugmail puremagic.com (6/6) Jun 26 2007 http://d.puremagic.com/issues/show_bug.cgi?id=540
- d-bugmail puremagic.com (9/9) Jul 01 2007 http://d.puremagic.com/issues/show_bug.cgi?id=540
- d-bugmail puremagic.com (7/7) Jul 23 2007 http://d.puremagic.com/issues/show_bug.cgi?id=540
http://d.puremagic.com/issues/show_bug.cgi?id=540 Summary: Nested template member function error - "function expected before ()" Product: D Version: 0.174 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: wbaxter gmail.com A template member function with nesting confuses the compiler. It is fine with the equivalent construct existing outside a class. It only breaks when you put it inside the class. class Foo { template myCast(T) { T myCast(U)(U val) { return cast(T) val; } } } void main() { Foo foo = new Foo; int i = foo.myCast!(int)(1.0); } --> Error: function expected before (), not 'foo dotexp template myCast(U)' --
Nov 17 2006
http://d.puremagic.com/issues/show_bug.cgi?id=540 kamm incasoftware.de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kamm incasoftware.de You can also easily trigger this IFTI problem with named template mixins: template A() { static void foo(T)(T t) {} } struct Bar { mixin A!() a; } void main() { A!().foo(1); // works Bar.a.foo!(int)(1); // works Bar.a.foo(1); // error } Error: function expected before (), not 'Bar dotexp template foo(T)' --
Apr 24 2007
http://d.puremagic.com/issues/show_bug.cgi?id=540 This issue is a show stopper for the Arc v.2 release, unless we find a workaround of some sort. --
Jun 20 2007
http://d.puremagic.com/issues/show_bug.cgi?id=540 Created an attachment (id=148) --> (http://d.puremagic.com/issues/attachment.cgi?id=148&action=view) patch to DMD 0.175 --
Jun 21 2007
http://d.puremagic.com/issues/show_bug.cgi?id=540 Here is a patch to DMD 0.175 that fixes this issue (posted december 1st to the announce newsgroup). It is not really well tested, but illustrates that the required change is quite small. --
Jun 21 2007
http://d.puremagic.com/issues/show_bug.cgi?id=540 clayasaurus gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |blocker --
Jun 26 2007
http://d.puremagic.com/issues/show_bug.cgi?id=540 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed DMD 1.018 and DMD 2.002 --
Jul 01 2007
http://d.puremagic.com/issues/show_bug.cgi?id=540 Added to DStress as http://dstress.kuehne.cn/run/t/template_64_A.d http://dstress.kuehne.cn/run/t/template_64_B.d http://dstress.kuehne.cn/run/t/template_64_C.d --
Jul 23 2007