mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
parse.y: fix f_label result
* parse.y (f_label): return tLABEL value as it is. [ruby-core:67315] [Bug #10693] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49140 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b9c630f999
commit
3977fd332f
3 changed files with 26 additions and 5 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Sun Jan 4 21:32:52 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* parse.y (f_label): return tLABEL value as it is.
|
||||||
|
[ruby-core:67315] [Bug #10693]
|
||||||
|
|
||||||
Sun Jan 4 14:02:37 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sun Jan 4 14:02:37 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* test/lib/test/unit/parallel.rb (run): expand the file name to be
|
* test/lib/test/unit/parallel.rb (run): expand the file name to be
|
||||||
|
|
4
parse.y
4
parse.y
|
@ -4729,9 +4729,9 @@ f_arg : f_arg_item
|
||||||
f_label : tLABEL
|
f_label : tLABEL
|
||||||
{
|
{
|
||||||
ID id = get_id($1);
|
ID id = get_id($1);
|
||||||
$$ = formal_argument(id);
|
arg_var(formal_argument(id));
|
||||||
arg_var($$);
|
|
||||||
current_arg = id;
|
current_arg = id;
|
||||||
|
$$ = $1;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -751,15 +751,31 @@ class TestRipper::ParserEvents < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_params
|
def test_params
|
||||||
|
arg = nil
|
||||||
thru_params = false
|
thru_params = false
|
||||||
parse('a {||}', :on_params) {thru_params = true}
|
parse('a {||}', :on_params) {|_, *v| thru_params = true; arg = v}
|
||||||
assert_equal true, thru_params
|
assert_equal true, thru_params
|
||||||
|
assert_equal [nil, nil, nil, nil, nil, nil, nil], arg
|
||||||
thru_params = false
|
thru_params = false
|
||||||
parse('a {|x|}', :on_params) {thru_params = true}
|
parse('a {|x|}', :on_params) {|_, *v| thru_params = true; arg = v}
|
||||||
assert_equal true, thru_params
|
assert_equal true, thru_params
|
||||||
|
assert_equal [["x"], nil, nil, nil, nil, nil, nil], arg
|
||||||
thru_params = false
|
thru_params = false
|
||||||
parse('a {|*x|}', :on_params) {thru_params = true}
|
parse('a {|*x|}', :on_params) {|_, *v| thru_params = true; arg = v}
|
||||||
assert_equal true, thru_params
|
assert_equal true, thru_params
|
||||||
|
assert_equal [nil, nil, "*x", nil, nil, nil, nil], arg
|
||||||
|
thru_params = false
|
||||||
|
parse('a {|x: 1|}', :on_params) {|_, *v| thru_params = true; arg = v}
|
||||||
|
assert_equal true, thru_params
|
||||||
|
assert_equal [nil, nil, nil, nil, [["x:", "1"]], nil, nil], arg
|
||||||
|
thru_params = false
|
||||||
|
parse('a {|x:|}', :on_params) {|_, *v| thru_params = true; arg = v}
|
||||||
|
assert_equal true, thru_params
|
||||||
|
assert_equal [nil, nil, nil, nil, [["x:", false]], nil, nil], arg
|
||||||
|
thru_params = false
|
||||||
|
parse('a {|**x|}', :on_params) {|_, *v| thru_params = true; arg = v}
|
||||||
|
assert_equal true, thru_params
|
||||||
|
assert_equal [nil, nil, nil, nil, nil, "x", nil], arg
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_paren
|
def test_paren
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue