Change begin-else-end without rescue from warning to syntax error
begin p :foo else p :bar end # => :foo # => :bar
[1,2,3].each do p :foo else p :bar end # => :foo # => :bar
begin-else-end without rescue is useless and dangerous. (especially, do-else-end is easy to mistake)
In actually, programmer never intend to write like these.
Ruby interpreter can guard this case by syntax error.
Actions #1 [ruby-core:86145]
Updated by matz (Yukihiro Matsumoto) about 5 years ago
Actions #2 [ruby-core:86151]
Updated by mame (Yusuke Endoh) about 5 years ago
I'm not against the removeal.
BTW, surprisingly, the following code works "as intended."
def fib(x) if x >= 2 a = fib(x - 1) b = fib(x - 2) return a + b end else x end p fib(10) #=> 55