diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2024-05-28 14:49:39 -0400 |
|---|---|---|
| committer | Kevin Newton <kddnewton@gmail.com> | 2024-05-28 15:30:32 -0400 |
| commit | bc3199bb298d9d29d66aedeb1139715893ebfea8 (patch) | |
| tree | 845be9304983eae2c9b81e36bc568ab896354951 | |
| parent | 13307cd9444d17dff2da1d0ff03efcede23ad88d (diff) | |
[PRISM] Enable TestAssignmentGen#test_assignment
| -rw-r--r-- | prism_compile.c | 12 | ||||
| -rw-r--r-- | test/.excludes-prism/TestAssignmentGen.rb | 1 |
2 files changed, 9 insertions, 4 deletions
diff --git a/prism_compile.c b/prism_compile.c index 7880e6d231..022305effe 100644 --- a/prism_compile.c +++ b/prism_compile.c @@ -4036,9 +4036,15 @@ pm_compile_target_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR *cons // // for i, j in []; end // - if (state != NULL) state->position--; + size_t before_position; + if (state != NULL) { + before_position = state->position; + state->position--; + } + pm_compile_multi_target_node(iseq, node, parents, writes, cleanup, scope_node, state); - if (state != NULL) state->position++; + if (state != NULL) state->position = before_position; + break; } default: @@ -4095,7 +4101,7 @@ pm_compile_multi_target_node(rb_iseq_t *iseq, const pm_node_t *node, LINK_ANCHOR if (state == NULL) state = &target_state; size_t base_position = state->position; - size_t splat_position = has_rest ? 1 : 0; + size_t splat_position = (has_rest || has_posts) ? 1 : 0; // Next, we'll iterate through all of the leading targets. for (size_t index = 0; index < lefts->size; index++) { diff --git a/test/.excludes-prism/TestAssignmentGen.rb b/test/.excludes-prism/TestAssignmentGen.rb deleted file mode 100644 index 5f3bb12ef7..0000000000 --- a/test/.excludes-prism/TestAssignmentGen.rb +++ /dev/null @@ -1 +0,0 @@ -exclude(:test_assignment, "https://github.com/ruby/prism/issues/2370") |
