-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implicit for..in
comprehension conflicts with the following in
keyword on the same depth.
#923
Comments
rhendric
added a commit
to rhendric/LiveScript
that referenced
this issue
Sep 23, 2016
This issue involved a lexer flag that was set in a for comprehension and never cleared when the comprehension closed. The fix consists of clearing all lexer flags at the current delimiter depth every time a close delimiter is encountered. (It may be that this makes some occurrences of `@fset _ false` elsewhere in the lexer redundant; to be safe, I didn't attempt to remove any of them in this commit.)
It's always fun when you see a new issue and you know exactly what instruction must be missing to produce that effect. 😄 Nice catch. |
gkz
added a commit
that referenced
this issue
Sep 27, 2016
@rhendric : before I stopped working on this, I was planning a migration of loophead handling to parser stage (instead of current lexer hacks)... Anyway good job figuring out the lexer fix! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The implicit version of
for..in
comprehension (the version without thein
keyword) causes compilation error on line, where thein
keyword is used, and is on the same depth. And by depth I don't mean indent, it is something different, something internal.Minimal example:
Extended example, with diverse ways of increasing the depth:
I noticed, that only comprehensions are affected by this bug, and only those without the
in
keyword.The construction
for a => ..
doesn't cause an error.The
in
expression also has to be somehow wrapped. This:is not erroneous.
The text was updated successfully, but these errors were encountered: