[parenscript-devel] Bug: lexical renames wrongly extended to CREATE special form

Daniel Gackle danielgackle at gmail.com
Fri Oct 9 20:46:57 UTC 2009


Further to the previous bug report, I noticed that lexical variables are
being renamed unnecessarily in this case:

(ps (let ((x (@ foo x)))
          (blah x)))
 =>
"var x2 = foo.x;
blah(x2);"

Here the generated code isn't incorrect, as in the bug with CREATE, but I
wonder if the two problems aren't related: in each case, PS appears to
mistake a symbol reference for a lexical variable reference.


On Fri, Oct 9, 2009 at 2:00 PM, Daniel Gackle <danielgackle at gmail.com>wrote:

> In this example, the CREATE form is being expanded incorrectly, because the
> symbol A passed to it is not a reference to either of the lexical variables
> in scope.
>
> (ps (let ((a 99))
>           (let ((a 22))
>             (create a 33))))
>
> =>
>
> "var a = 99;
> var a666 = 22;
> { a666 : 33 };"
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/parenscript-devel/attachments/20091009/b23323d9/attachment.html>


More information about the parenscript-devel mailing list