From e63df5319855c1b4ebba0498a466c3806dedba99 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 20 Apr 2010 03:24:59 +0000 Subject: * 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 --- test/ruby/test_parse.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'test') 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 < 1}, (result a: 1)) + end end -- cgit v1.2.3