summaryrefslogtreecommitdiff
path: root/spec/ruby/language/fixtures/break.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/language/fixtures/break.rb')
-rw-r--r--spec/ruby/language/fixtures/break.rb38
1 files changed, 33 insertions, 5 deletions
diff --git a/spec/ruby/language/fixtures/break.rb b/spec/ruby/language/fixtures/break.rb
index 50e7fcf5d9..217c20a2c0 100644
--- a/spec/ruby/language/fixtures/break.rb
+++ b/spec/ruby/language/fixtures/break.rb
@@ -106,6 +106,34 @@ module BreakSpecs
note :d
end
+ def looped_break_in_captured_block
+ note :begin
+ looped_delegate_block do |i|
+ note :prebreak
+ break if i == 1
+ note :postbreak
+ end
+ note :end
+ end
+
+ def looped_delegate_block(&block)
+ note :preloop
+ 2.times do |i|
+ note :predele
+ yield_value(i, &block)
+ note :postdele
+ end
+ note :postloop
+ end
+ private :looped_delegate_block
+
+ def yield_value(value)
+ note :preyield
+ yield value
+ note :postyield
+ end
+ private :yield_value
+
def method(v)
yield v
end
@@ -135,7 +163,7 @@ module BreakSpecs
# on the call stack when the lambda is invoked.
def break_in_defining_scope(value=true)
note :a
- note lambda {
+ note -> {
note :b
if value
break :break
@@ -149,7 +177,7 @@ module BreakSpecs
def break_in_nested_scope
note :a
- l = lambda do
+ l = -> do
note :b
break :break
note :c
@@ -169,7 +197,7 @@ module BreakSpecs
def break_in_nested_scope_yield
note :a
- l = lambda do
+ l = -> do
note :b
break :break
note :c
@@ -189,7 +217,7 @@ module BreakSpecs
def break_in_nested_scope_block
note :a
- l = lambda do
+ l = -> do
note :b
break :break
note :c
@@ -223,7 +251,7 @@ module BreakSpecs
# active on the call stack when the lambda is invoked.
def create_lambda
note :la
- l = lambda do
+ l = -> do
note :lb
break :break
note :lc