Actions
Feature #6354
openRemove escape (break/return/redo/next support) from class/module scope
Feature #6354:
Remove escape (break/return/redo/next support) from class/module scope
Description
Let's remove global escape (break/return/redo/next support) from class/module scope.
Yes, it introduces incompatibility. However, anyone use it?
I think the following examples are evil (difficult to understand).
examples:¶
1.times{
class C
break # break from 1.times
end
}
1.times{
class C
module M
break # break from 1.times
end
end
}
3.times{|n|
p n # repeat print 0
class C
redo
end
}
->{
class C
return return from outer lambda block
end
}.call
->{
proc{
class C
return # return from outer lambda (not proc) block
end
}.call
}.call
etc, etc.
Actions