Don <> 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 <> 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):

          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:
------- You are receiving this mail because: -------

Reply via email to