diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-06-14 18:09:45 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2019-06-14 18:17:50 +0900 |
commit | d365fd5a024254d7c105a62a015a7ea29ccf3e5d (patch) | |
tree | 4019cf0a16552f1cee1d3e0268aa3b1b84471a39 | |
parent | d780c3662484d6072b3a6945b840049de72c2096 (diff) | |
download | ruby-d365fd5a024254d7c105a62a015a7ea29ccf3e5d.tar.gz |
An operator is not allowed just after `|>`
https://twitter.com/yukihiro_matz/status/1139454774640726019
-rw-r--r-- | parse.y | 8 | ||||
-rw-r--r-- | test/ruby/test_syntax.rb | 1 |
2 files changed, 5 insertions, 4 deletions
@@ -1499,28 +1499,28 @@ expr : command_call | pipeline ; -pipeline : expr tPIPE operation2 opt_paren_args +pipeline : expr tPIPE operation opt_paren_args { /*%%%*/ $$ = new_command_qcall(p, ID2VAL(idPIPE), $1, $3, $4, Qnull, &@3, &@$); /*% %*/ /*% ripper: command_call!($1, ID2VAL(idPIPE), $3, $4) %*/ } - | expr tPIPE operation2 opt_paren_args brace_block + | expr tPIPE operation opt_paren_args brace_block { /*%%%*/ $$ = new_command_qcall(p, ID2VAL(idPIPE), $1, $3, $4, $5, &@3, &@$); /*% %*/ /*% ripper: method_add_block!(command_call!($1, ID2VAL(idPIPE), $3, $4), $5) %*/ } - | expr tPIPE operation2 command_args + | expr tPIPE operation command_args { /*%%%*/ $$ = new_command_qcall(p, ID2VAL(idPIPE), $1, $3, $4, Qnull, &@3, &@$); /*% %*/ /*% ripper: command_call!($1, ID2VAL(idPIPE), $3, $4) %*/ } - | expr tPIPE operation2 command_args do_block + | expr tPIPE operation command_args do_block { /*%%%*/ $$ = new_command_qcall(p, ID2VAL(idPIPE), $1, $3, $4, $5, &@3, &@$); diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index d2638c79b4..4e8ffe56fb 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -1385,6 +1385,7 @@ eom assert_equal("121", eval('x = 12 |> pow(2) |> to_s 11')) assert_equal(12, x) assert_equal([2, 4, 6], eval("1.. |> take 3\n|> map do @1 * 2 end")) + assert_syntax_error('a|>-b', /unexpected '-'/) end private |