[Bug #21439] Fix PM_SPLAT_NODE compilation error in for loops#13597
Merged
eileencodes merged 1 commit intoruby:masterfrom Jun 12, 2025
Merged
[Bug #21439] Fix PM_SPLAT_NODE compilation error in for loops#13597eileencodes merged 1 commit intoruby:masterfrom
PM_SPLAT_NODE compilation error in for loops#13597eileencodes merged 1 commit intoruby:masterfrom
Conversation
PM_SPLAT_NODE compilation error in for loops
This commit fixes a crash that occurred when using splat nodes (*) as the index variable in for loops. The error "Unexpected node type for index in for node: PM_SPLAT_NODE" was thrown because the compiler didn't know how to handle splat nodes in this context. The fix allows code like `for *x in [[1,2], [3,4]]` to compile and execute correctly, where the splat collects each sub-array.
6aa07ad to
369866b
Compare
eileencodes
approved these changes
Jun 12, 2025
sms021019
pushed a commit
to sms021019/ruby
that referenced
this pull request
Jun 17, 2025
…#13597) [Bug #21439] Fix PM_SPLAT_NODE compilation error in for loops This commit fixes a crash that occurred when using splat nodes (*) as the index variable in for loops. The error "Unexpected node type for index in for node: PM_SPLAT_NODE" was thrown because the compiler didn't know how to handle splat nodes in this context. The fix allows code like `for *x in [[1,2], [3,4]]` to compile and execute correctly, where the splat collects each sub-array.
k0kubun
added a commit
that referenced
this pull request
Jul 14, 2025
[Bug #21439] Fix `PM_SPLAT_NODE` compilation error in for loops (#13597) [Bug #21439] Fix PM_SPLAT_NODE compilation error in for loops This commit fixes a crash that occurred when using splat nodes (*) as the index variable in for loops. The error "Unexpected node type for index in for node: PM_SPLAT_NODE" was thrown because the compiler didn't know how to handle splat nodes in this context. The fix allows code like `for *x in [[1,2], [3,4]]` to compile and execute correctly, where the splat collects each sub-array.
Earlopain
added a commit
to Earlopain/ruby
that referenced
this pull request
Oct 27, 2025
Fixes [Bug #21648] This is a followup to ruby#13597. This handled named splats, but also doesn't emit the same instructions that parse.y would. It seemed to work regardless, now that case also emits the same instructions.
Earlopain
added a commit
to Earlopain/ruby
that referenced
this pull request
Oct 27, 2025
Fixes [Bug #21648] This is a followup to ruby#13597. The added test passed but didn't emit the same instructions. This also handles bare splats and aligns instructions for all cases
kddnewton
pushed a commit
that referenced
this pull request
Oct 27, 2025
Fixes [Bug #21648] This is a followup to #13597. The added test passed but didn't emit the same instructions. This also handles bare splats and aligns instructions for all cases
k0kubun
added a commit
that referenced
this pull request
Dec 8, 2025
[PATCH] Correctly compile splats in for-loop index in prism Fixes [Bug #21648] This is a followup to #13597. The added test passed but didn't emit the same instructions. This also handles bare splats and aligns instructions for all cases
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 commit fixes a crash that occurred when using splat nodes (*) as the index variable in for loops. The error "Unexpected node type for index in for node: PM_SPLAT_NODE" was thrown because the compiler didn't know how to handle splat nodes in this context.
The fix allows code like
for *x in [[1,2], [3,4]]to compile and execute correctly, where the splat collects each sub-array.