From: nagachika00@... Date: 2015-09-29T18:32:25+00:00 Subject: [ruby-dev:49267] [Ruby trunk - Bug #10653] do-end block in ternary operator is syntax error Issue #10653 has been updated by Tomoyuki Chikanaga. r51616 should be backported too? ---------------------------------------- Bug #10653: do-end block in ternary operator is syntax error https://bugs.ruby-lang.org/issues/10653#change-54318 * Author: Shinta Koyanagi * Status: Closed * Priority: Normal * Assignee: Yukihiro Matsumoto * ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14] * Backport: 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED ---------------------------------------- - For example ``` ruby -v -e 'true ? 1.tap do |n| p n end : 0' ``` - Result by 2.1.5 ``` ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0] 1 ``` - Result by 2.2.0 ``` ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14] -e:1: syntax error, unexpected keyword_do_cond, expecting ':' true ? 1.tap do |n| p n end : 0 ^ -e:1: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '(' true ? 1.tap do |n| p n end : 0 ^ ``` -- https://bugs.ruby-lang.org/