mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
parse.y: lparen_arg statement
* parse.y (primary): allow parenthesised statement as a method argument. [Feature #12686] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6f22777fcf
commit
ec8f8fa4c8
3 changed files with 11 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Fri Aug 19 11:39:06 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* parse.y (primary): allow parenthesised statement as a method
|
||||||
|
argument. [Feature #12686]
|
||||||
|
|
||||||
Fri Aug 19 09:12:45 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Fri Aug 19 09:12:45 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* vm.c (vm_set_main_stack): TOPLEVEL_BINDING must be built.
|
* vm.c (vm_set_main_stack): TOPLEVEL_BINDING must be built.
|
||||||
|
|
2
parse.y
2
parse.y
|
@ -2659,7 +2659,7 @@ primary : literal
|
||||||
$<val>1 = cmdarg_stack;
|
$<val>1 = cmdarg_stack;
|
||||||
CMDARG_SET(0);
|
CMDARG_SET(0);
|
||||||
}
|
}
|
||||||
expr {SET_LEX_STATE(EXPR_ENDARG);} rparen
|
stmt {SET_LEX_STATE(EXPR_ENDARG);} rparen
|
||||||
{
|
{
|
||||||
CMDARG_SET($<val>1);
|
CMDARG_SET($<val>1);
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
|
|
|
@ -827,6 +827,11 @@ eom
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_parenthesised_statement_argument
|
||||||
|
assert_syntax_error("foo(bar rescue nil)", /unexpected modifier_rescue/)
|
||||||
|
assert_valid_syntax("foo (bar rescue nil)")
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def not_label(x) @result = x; @not_label ||= nil end
|
def not_label(x) @result = x; @not_label ||= nil end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue