aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parse.y4
-rw-r--r--test/ruby/test_syntax.rb5
2 files changed, 7 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index 606daab7d8..21be51cb74 100644
--- a/parse.y
+++ b/parse.y
@@ -1351,7 +1351,7 @@ command : fcall command_args %prec tLOWEST
{
/*%%%*/
$1->nd_args = $2;
- nd_set_last_loc($1, nd_last_loc($2));
+ nd_set_last_loc($1, @2.end_pos);
$$ = $1;
/*% %*/
/*% ripper: command!($1, $2) %*/
@@ -1363,7 +1363,7 @@ command : fcall command_args %prec tLOWEST
$1->nd_args = $2;
$$ = method_add_block(p, $1, $3, &@$);
fixpos($$, $1);
- nd_set_last_loc($1, nd_last_loc($2));
+ nd_set_last_loc($1, @2.end_pos);
/*% %*/
/*% ripper: method_add_block!(command!($1, $2), $3) %*/
}
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index 564fc21c47..28f563046f 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -179,6 +179,11 @@ class TestSyntax < Test::Unit::TestCase
bug13756 = '[ruby-core:82113] [Bug #13756]'
assert_valid_syntax("defined? foo(**{})", bug13756)
end;
+ assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}")
+ begin;
+ bug15271 = '[ruby-core:89648] [Bug #15271]'
+ assert_valid_syntax("a **{}", bug15271)
+ end;
end
def test_keyword_self_reference