diff --git a/parse.y b/parse.y index 278c5b0296..003d067835 100644 --- a/parse.y +++ b/parse.y @@ -2090,6 +2090,14 @@ arg_value : arg ; aref_args : none + | command + { + /*%%%*/ + value_expr($1); + $$ = NEW_LIST($1, &@$); + /*% %*/ + /*% ripper: args_add!(args_new!, $1) %*/ + } | args trailer { $$ = $1; diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index dee9187a9c..b14cdbe898 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -1279,6 +1279,11 @@ def test_command_with_cmd_brace_block assert_valid_syntax('obj::foo (1) {}') end + def test_method_call_with_args_and_no_parens_in_array + assert_equal(["1"], [sprintf "1"]) + assert_equal(["2"], [sprintf "%d", 2]) + end + private def not_label(x) @result = x; @not_label ||= nil end