summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-20 03:24:59 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-20 03:24:59 +0000
commite63df5319855c1b4ebba0498a466c3806dedba99 (patch)
tree3541d5b3f730ad63215ec50167b152d50dac9500 /test
parent85cb4ee236ee14ec00aebcd90130555ce909d3a2 (diff)
* parse.y (lex_state_e, IS_END, IS_SPCARG, parser_yylex): separate
the state after vcall. [ruby-core:29578] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_parse.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/ruby/test_parse.rb b/test/ruby/test_parse.rb
index 49ecfc56ed..aa664ebd44 100644
--- a/test/ruby/test_parse.rb
+++ b/test/ruby/test_parse.rb
@@ -823,4 +823,28 @@ x = __ENCODING__
c.instance_eval { remove_class_variable(:@var) }
end
end
+
+ def result(arg = nil, &pro)
+ pro || arg
+ end
+
+ def test_method_and_lvar
+ result = nil
+ bug3163 = '[ruby-core:29578]'
+ assert_equal(%[bug3163], (result %[bug3163]), bug3163)
+ assert_equal(/bug3163/x, (result /bug3163/x), bug3163)
+ pro = proc {}
+ assert_equal(pro, (result &pro), bug3163)
+ assert_equal(bug3163, (result *bug3163), bug3163)
+ f = g = nil
+ assert_raise(SyntaxError, bug3163) {eval("result ?f : g")}
+ assert_equal("123\n", eval("result <<FOO\n123\nFOO"), bug3163)
+
+ bug3163_2 = '[ruby-core:29594]'
+ one = 1
+ assert_equal(+1, (result +one), bug3163_2)
+ assert_equal(-1, (result -one), bug3163_2)
+
+ assert_equal({:a => 1}, (result a: 1))
+ end
end