[ruby-dev:49282] [Ruby trunk - Bug #10653] do-end block in ternary operator is syntax error
From:
nagachika00@...
Date:
2015-10-05 17:00:06 UTC
List:
ruby-dev #49282
Issue #10653 has been updated by Tomoyuki Chikanaga.
Backport changed from 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: REQUIRED to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONE
r50409, r51616, r51617 and r51624 were backported into `ruby_2_2` branch at r52046.
With r50409 a minor incompatibility is introduced ({ %w"key": 0 } cause SyntaxError).
I'm not confident the incompatibility is essential part of this fixes, but the accurate surgery is required to eliminate the incompatibility. I gave up.
----------------------------------------
Bug #10653: do-end block in ternary operator is syntax error
https://bugs.ruby-lang.org/issues/10653#change-54367
* 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: DONE
----------------------------------------
- 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/