summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-05-12 15:38:22 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2024-05-12 15:38:22 +0900
commit5695c5df95460ed9949e1c8f8ca89b4a5c5cc4dd (patch)
treeea825c98960456b9f05cebb7a2ea6d3cd04fe14e
parenta1fb6cc978ffba6c4a8284a4fcca3efcef684714 (diff)
ripper: Fix opassign when assignment to backref variables
-rw-r--r--parse.y2
-rw-r--r--test/ripper/test_parser_events.rb2
2 files changed, 2 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index 838f273760..5fe9babefa 100644
--- a/parse.y
+++ b/parse.y
@@ -3382,7 +3382,7 @@ command_asgn : lhs '=' lex_ctxt command_rhs
rb_backref_error(p, $1);
/*% %*/
$$ = NEW_ERROR(&@$);
- /*% ripper[error]: backref_error(p, $1, assign!(var_field(p, get_value($:1)), $:4)) %*/
+ /*% ripper[error]: backref_error(p, $1, opassign!(var_field(p, get_value($:1)), $:2, $:4)) %*/
}
;
diff --git a/test/ripper/test_parser_events.rb b/test/ripper/test_parser_events.rb
index 8f393e79ee..dc94da01ee 100644
--- a/test/ripper/test_parser_events.rb
+++ b/test/ripper/test_parser_events.rb
@@ -289,7 +289,7 @@ class TestRipper::ParserEvents < Test::Unit::TestCase
result =
parse('$& += cmd 1, 2', :on_assign_error) {thru_assign_error = true}
assert_equal true, thru_assign_error
- assert_equal '[assign_error(assign(var_field($&),command(cmd,[1,2])))]', result
+ assert_equal '[assign_error(opassign(var_field($&),+=,command(cmd,[1,2])))]', result
end
def test_assign_error_const_qualified