Feature #14606
Change begin-else-end without rescue from warning to syntax error
Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
Description
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.
Updated by mame (Yusuke Endoh) almost 3 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