mirror of
https://github.com/ruby/ruby.git
synced 2025-09-20 19:14:00 +02:00
Squashed commit of the following: [Backport #16516]
commitc98c492578
Author: Nobuyoshi Nakada <nobu@ruby-lang.org> Date: Fri Jan 17 16:56:53 2020 +0900 Added test forf38b3e8c70
commitf38b3e8c70
Author: Nobuyoshi Nakada <nobu@ruby-lang.org> Date: Thu Jan 16 18:34:31 2020 +0900 Fixed the location of args node with numbered parameter
This commit is contained in:
parent
a9284ecb90
commit
5bdbee96e4
3 changed files with 15 additions and 2 deletions
6
parse.y
6
parse.y
|
@ -11377,7 +11377,11 @@ static NODE *
|
||||||
args_with_numbered(struct parser_params *p, NODE *args, int max_numparam)
|
args_with_numbered(struct parser_params *p, NODE *args, int max_numparam)
|
||||||
{
|
{
|
||||||
if (max_numparam > NO_PARAM) {
|
if (max_numparam > NO_PARAM) {
|
||||||
if (!args) args = new_args_tail(p, 0, 0, 0, 0);
|
if (!args) {
|
||||||
|
YYLTYPE loc = RUBY_INIT_YYLLOC();
|
||||||
|
args = new_args_tail(p, 0, 0, 0, 0);
|
||||||
|
nd_set_loc(args, &loc);
|
||||||
|
}
|
||||||
args->nd_ainfo->pre_args_num = max_numparam;
|
args->nd_ainfo->pre_args_num = max_numparam;
|
||||||
}
|
}
|
||||||
return args;
|
return args;
|
||||||
|
|
|
@ -42,10 +42,11 @@ class TestAst < Test::Unit::TestCase
|
||||||
class Helper
|
class Helper
|
||||||
attr_reader :errors
|
attr_reader :errors
|
||||||
|
|
||||||
def initialize(path)
|
def initialize(path, src: nil)
|
||||||
@path = path
|
@path = path
|
||||||
@errors = []
|
@errors = []
|
||||||
@debug = false
|
@debug = false
|
||||||
|
@ast = RubyVM::AbstractSyntaxTree.parse(src) if src
|
||||||
end
|
end
|
||||||
|
|
||||||
def validate_range
|
def validate_range
|
||||||
|
@ -312,4 +313,10 @@ class TestAst < Test::Unit::TestCase
|
||||||
assert_equal(false, kwrest.call('**nil'))
|
assert_equal(false, kwrest.call('**nil'))
|
||||||
assert_equal([:a], kwrest.call('**a'))
|
assert_equal([:a], kwrest.call('**a'))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_ranges_numbered_parameter
|
||||||
|
helper = Helper.new(__FILE__, src: "1.times {_1}")
|
||||||
|
helper.validate_range
|
||||||
|
assert_equal([], helper.errors)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1451,6 +1451,8 @@ eom
|
||||||
assert_valid_syntax("->{#{c};->{_1};end;_1}\n")
|
assert_valid_syntax("->{#{c};->{_1};end;_1}\n")
|
||||||
assert_valid_syntax("->{_1;#{c};->{_1};end}\n")
|
assert_valid_syntax("->{_1;#{c};->{_1};end}\n")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
1.times {_1}
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_value_expr_in_condition
|
def test_value_expr_in_condition
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue