digitalmars.D.bugs - [Issue 5046] New: Wrong type of implicit 'this' in struct/class templates
- d-bugmail puremagic.com (45/45) Oct 12 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5046
- d-bugmail puremagic.com (11/11) Jul 14 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5046
- d-bugmail puremagic.com (14/14) Jul 18 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5046
http://d.puremagic.com/issues/show_bug.cgi?id=5046 Summary: Wrong type of implicit 'this' in struct/class templates Product: D Version: D2 Platform: x86 OS/Version: All Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: rsinfu gmail.com --- Implicit 'this' references in struct/class templates are wrongly typed under certain circumstance and the following code doesn't compile. -------------------- void main() { auto va = S!("", int)(); auto vb = makeS!("", int)(); } struct S(alias p, T) { T s; T fun() { return s; } // (10) } S!(p, T) makeS(alias p, T)() { return typeof(return)(); } -------------------- % dmd -o- -c test.d test.d(10): Error: this for s needs to be type S not type S!("",int) -------------------- The error does not happen if - Either va or vb is commented out, - Template parameter "alias p" is replaced with "string p", or - "return s" at line (10) is replaced with "return this.s". The Sequence struct in std.range hits this problem. It currently works around the problem by supplying explicit 'this' to all fields. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 12 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5046 Kenji Hara <k.hara.pg gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch CC| |k.hara.pg gmail.com https://github.com/D-Programming-Language/dmd/pull/94 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 14 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5046 Walter Bright <bugzilla digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla digitalmars.com Resolution| |FIXED 20:17:45 PDT --- https://github.com/D-Programming-Language/dmd/commit/d3c324c8b1290c84e4808f9ac040e70a3e27b7f6 https://github.com/D-Programming-Language/dmd/commit/ca51706314e24b1b65a0417fb6529074ef988727 https://github.com/D-Programming-Language/dmd/commit/6052888a19f0dc048c2aae07d03d5b239b0901ff -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jul 18 2011