http://d.puremagic.com/issues/show_bug.cgi?id=3326
Don <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch Version|D2 |D1 & D2 Summary|Regression(2.010): $ in |$ in delegate literal |delegate literal causes |causes Access Violation |Access Violation | Severity|regression |major --- Comment #2 from Don <[email protected]> 2010-08-06 00:11:01 PDT --- This isn't a regression, it never worked properly (on D1, it doesn't segfault, but the generated code is wrong). It's happening because __dollar isn't a real variable in the parent scope. I think to fix this properly, either the implementation of __dollar would need to change, OR the delegate literal would need to be inlined; but this case is so obscure, it doesn't matter much. To turn this from wrong-code into a rather obscure rejects-valid: declaration.c, VarDeclaration::checkNestedReference(), line 1441 (D2 svn 599): fdv->closureVars.push(this); L2: ; + // __dollar creates problems because it isn't a real variable + if (ident == Id::dollar) + ::error(loc, "cannnot use $ inside a function literal (Bugzilla 3326)"); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
