aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-06-13 22:19:47 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-06-13 22:19:47 +0900
commitaa7211836b769231a2a8ef6b6ec2fd0ec882ef29 (patch)
treee0a6bf725ecd79bdc2122a6c44f932d6cc8f0469
parent043f010c28e82ea38978bf8ed885416f133b5b75 (diff)
downloadruby-aa7211836b769231a2a8ef6b6ec2fd0ec882ef29.tar.gz
Continue to the next line beginning with a pipeline
-rw-r--r--parse.y3
-rw-r--r--test/ruby/test_syntax.rb1
2 files changed, 3 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index a31139fbef..58f0e4b615 100644
--- a/parse.y
+++ b/parse.y
@@ -8678,10 +8678,11 @@ parser_yylex(struct parser_params *p)
case '\13': /* '\v' */
space_seen = 1;
break;
+ case '|':
case '&':
case '.': {
dispatch_delayed_token(p, tIGNORED_NL);
- if (peek(p, '.') == (c == '&')) {
+ if (c == '|' ? peek(p, '>') : (peek(p, '.') == (c == '&'))) {
pushback(p, c);
dispatch_scan_event(p, tSP);
goto retry;
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index b3e2183830..d2638c79b4 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -1384,6 +1384,7 @@ eom
x = nil
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"))
end
private