Fix problems with blocks in variable declaration expressions #345
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes an issue with using blocks in variable declarations:
Before the PR, the block caused an exception, caused by how we manage variables on the MethodScope objects.
We expect them to be set exactly once, when the variable declaration parsing is completed.
However, if we have a block, the block needs a marker for us to know whether it's on the stack, which is an
Internal
variable added to the variable array.The array may have been set (if we have a block in the method after the variable declarations), or it may not have been set yet (if we have a block in the variable declarations).
This fixes the error when we haven't set the variables yet.
@daumayr @sophie-kaleba could one of you review this and approve the PR, or suggest improvements, perhaps missing tests?