From: "ko1 (Koichi Sasada)" Date: 2012-04-25T12:12:18+09:00 Subject: [ruby-core:44612] [ruby-trunk - Feature #6354][Open] Remove escape (break/return/redo/next support) from class/module scope Issue #6354 has been reported by ko1 (Koichi Sasada). ---------------------------------------- Feature #6354: Remove escape (break/return/redo/next support) from class/module scope https://bugs.ruby-lang.org/issues/6354 Author: ko1 (Koichi Sasada) Status: Open Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: Target version: 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. -- http://bugs.ruby-lang.org/