digitalmars.D.bugs - [Issue 5105] New: Member function template cannot be synchronized
- d-bugmail puremagic.com (48/48) Oct 23 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5105
- d-bugmail puremagic.com (21/21) Jan 29 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5105
- d-bugmail puremagic.com (12/12) Feb 06 2011 http://d.puremagic.com/issues/show_bug.cgi?id=5105
http://d.puremagic.com/issues/show_bug.cgi?id=5105 Summary: Member function template cannot be synchronized Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: patch, rejects-valid Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: rsinfu gmail.com --- DMD doesn't allow member function templates in synchronized class: -------------------- void main() { auto c = new C; c.foo(10); // (4) } synchronized shared class C { void foo(T)(T a) {} // (8) } -------------------- test.d(8): Error: function test.C.foo!(int).foo synchronized function foo must be a member of a class test.d(4): Error: template instance test.C.foo!(int) error instantiating -------------------- Patch against dmd r727: -------------------- --- src/func.c +++ src/func.c -1551,7 +1551,8 void FuncDeclaration::semantic3(Scope *sc) if (isSynchronized()) { /* Wrap the entire function body in a synchronized statement */ - ClassDeclaration *cd = parent->isClassDeclaration(); + AggregateDeclaration *ad = isThis(); + ClassDeclaration *cd = ad ? ad->isClassDeclaration() : NULL; if (cd) { #if TARGET_WINDOS -------------------- -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Oct 23 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5105 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug yahoo.com.au Depends on| |5504 The patch works for a simplified test case: void main() { auto c = new C; c.foo(10); } synchronized class C { void foo(T)(T a) {} } Since DMD2.051, the original test case hits bug 5504. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 29 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5105 Don <clugdbug yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed: https://github.com/D-Programming-Language/dmd/commit/f25d6e98609259de5714b805f45f16880dd3031b -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Feb 06 2011