mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 16:44:01 +02:00
* parse.y (mlhs_basic): fixed handling splat in middle of mlhs. a
patch from Andy Keep in [ruby-core:26163] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
02ddc9a893
commit
14f13abb85
3 changed files with 46 additions and 22 deletions
|
@ -1,4 +1,7 @@
|
||||||
Tue Oct 20 14:50:51 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Tue Oct 20 15:07:37 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* parse.y (mlhs_basic): fixed handling splat in middle of mlhs. a
|
||||||
|
patch from Andy Keep in [ruby-core:26163]
|
||||||
|
|
||||||
* parse.y (parser_here_document): dispatch delayed heredoc
|
* parse.y (parser_here_document): dispatch delayed heredoc
|
||||||
contents. based on a patch from Andy Keep in [ruby-core:24855].
|
contents. based on a patch from Andy Keep in [ruby-core:24855].
|
||||||
|
|
3
parse.y
3
parse.y
|
@ -1436,7 +1436,8 @@ mlhs_basic : mlhs_head
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
$$ = NEW_MASGN($1, NEW_POSTARG($3,$5));
|
$$ = NEW_MASGN($1, NEW_POSTARG($3,$5));
|
||||||
/*%
|
/*%
|
||||||
$$ = mlhs_add_star($1, $3);
|
$1 = mlhs_add_star($1, $3);
|
||||||
|
$$ = mlhs_add($1, $5);
|
||||||
%*/
|
%*/
|
||||||
}
|
}
|
||||||
| mlhs_head tSTAR
|
| mlhs_head tSTAR
|
||||||
|
|
|
@ -216,6 +216,46 @@ class TestRipper_ParserEvents < Test::Unit::TestCase
|
||||||
assert_equal("heredoc1\nheredoc2\n", heredoc, bug1921)
|
assert_equal("heredoc1\nheredoc2\n", heredoc, bug1921)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_massign
|
||||||
|
thru_massign = false
|
||||||
|
parse("a, b = 1, 2", :on_massign) {thru_massign = true}
|
||||||
|
assert_equal true, thru_massign
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mlhs_add
|
||||||
|
thru_mlhs_add = false
|
||||||
|
parse("a, b = 1, 2", :on_mlhs_add) {thru_mlhs_add = true}
|
||||||
|
assert_equal true, thru_mlhs_add
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mlhs_add_star
|
||||||
|
bug2232 = '[ruby-core:26163]'
|
||||||
|
|
||||||
|
thru_mlhs_add_star = false
|
||||||
|
tree = parse("a, *b = 1, 2", :on_mlhs_add_star) {thru_mlhs_add_star = true}
|
||||||
|
assert_equal true, thru_mlhs_add_star
|
||||||
|
assert_match /mlhs_add_star\(mlhs_add\(mlhs_new\(\),a\),b\)/, tree
|
||||||
|
thru_mlhs_add_star = false
|
||||||
|
tree = parse("a, *b, c = 1, 2", :on_mlhs_add_star) {thru_mlhs_add_star = true}
|
||||||
|
assert_equal true, thru_mlhs_add_star
|
||||||
|
assert_match /mlhs_add\(mlhs_add_star\(mlhs_add\(mlhs_new\(\),a\),b\),mlhs_add\(mlhs_new\(\),c\)\)/, tree, bug2232
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mlhs_new
|
||||||
|
thru_mlhs_new = false
|
||||||
|
parse("a, b = 1, 2", :on_mlhs_new) {thru_mlhs_new = true}
|
||||||
|
assert_equal true, thru_mlhs_new
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_mlhs_paren
|
||||||
|
thru_mlhs_paren = false
|
||||||
|
parse("a, b = 1, 2", :on_mlhs_paren) {thru_mlhs_paren = true}
|
||||||
|
assert_equal false, thru_mlhs_paren
|
||||||
|
thru_mlhs_paren = false
|
||||||
|
parse("(a, b) = 1, 2", :on_mlhs_paren) {thru_mlhs_paren = true}
|
||||||
|
assert_equal true, thru_mlhs_paren
|
||||||
|
end
|
||||||
|
|
||||||
=begin
|
=begin
|
||||||
def test_brace_block
|
def test_brace_block
|
||||||
assert_equal true, $thru__brace_block
|
assert_equal true, $thru__brace_block
|
||||||
|
@ -333,30 +373,10 @@ class TestRipper_ParserEvents < Test::Unit::TestCase
|
||||||
assert_equal true, $thru__iter_block
|
assert_equal true, $thru__iter_block
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_massign
|
|
||||||
assert_equal true, $thru__massign
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_method_add_arg
|
def test_method_add_arg
|
||||||
assert_equal true, $thru__method_add_arg
|
assert_equal true, $thru__method_add_arg
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_mlhs_add
|
|
||||||
assert_equal true, $thru__mlhs_add
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_mlhs_add_star
|
|
||||||
assert_equal true, $thru__mlhs_add_star
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_mlhs_new
|
|
||||||
assert_equal true, $thru__mlhs_new
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_mlhs_paren
|
|
||||||
assert_equal true, $thru__mlhs_paren
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_module
|
def test_module
|
||||||
assert_equal true, $thru__module
|
assert_equal true, $thru__module
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue