* 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:
nobu 2016-08-19 02:39:09 +00:00
Родитель 6f22777fcf
Коммит ec8f8fa4c8
3 изменённых файлов: 11 добавлений и 1 удалений

Просмотреть файл

@ -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>
* vm.c (vm_set_main_stack): TOPLEVEL_BINDING must be built.

Просмотреть файл

@ -2659,7 +2659,7 @@ primary : literal
$<val>1 = cmdarg_stack;
CMDARG_SET(0);
}
expr {SET_LEX_STATE(EXPR_ENDARG);} rparen
stmt {SET_LEX_STATE(EXPR_ENDARG);} rparen
{
CMDARG_SET($<val>1);
/*%%%*/

Просмотреть файл

@ -827,6 +827,11 @@ eom
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
def not_label(x) @result = x; @not_label ||= nil end