ripper: Fix opassign when assignment to backref variables

This commit is contained in:
Nobuyoshi Nakada 2024-05-12 15:38:22 +09:00
parent a1fb6cc978
commit 5695c5df95
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465
2 changed files with 2 additions and 2 deletions

View File

@ -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)) %*/
}
;

View File

@ -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