diff options
author | Tanaka Akira <akr@fsij.org> | 2019-07-15 14:17:27 +0900 |
---|---|---|
committer | Tanaka Akira <akr@fsij.org> | 2019-07-15 14:17:27 +0900 |
commit | e4c1b199961cc5fa34c02b2225bbc14b75259fd2 (patch) | |
tree | c70ac073b78caeed867349dbb8751fa7c3b0a7f4 /test/ruby/test_lambda.rb | |
parent | 711dfec3fa9623c5e8ef6f5ce3627f8f1a85f19d (diff) | |
download | ruby-e4c1b199961cc5fa34c02b2225bbc14b75259fd2.tar.gz |
add tests for orphan/not-orphan proc/lambda.
Diffstat (limited to 'test/ruby/test_lambda.rb')
-rw-r--r-- | test/ruby/test_lambda.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/ruby/test_lambda.rb b/test/ruby/test_lambda.rb index a30ea483e4..b9412d4540 100644 --- a/test/ruby/test_lambda.rb +++ b/test/ruby/test_lambda.rb @@ -195,4 +195,31 @@ class TestLambdaParameters < Test::Unit::TestCase assert_match(/^#{ Regexp.quote(__FILE__) }$/, file) assert_equal(exp_lineno, lineno, "must be at the beginning of the block") end + + def test_not_orphan_return + assert_equal(42, Module.new { extend self + def m1(&b) b.call end; def m2(); m1(&-> { return 42 }) end }.m2) + assert_equal(42, Module.new { extend self + def m1(&b) b end; def m2(); m1(&-> { return 42 }).call end }.m2) + assert_equal(42, Module.new { extend self + def m1(&b) b end; def m2(); m1(&-> { return 42 }) end }.m2.call) + end + + def test_not_orphan_break + assert_equal(42, Module.new { extend self + def m1(&b) b.call end; def m2(); m1(&-> { break 42 }) end }.m2) + assert_equal(42, Module.new { extend self + def m1(&b) b end; def m2(); m1(&-> { break 42 }).call end }.m2) + assert_equal(42, Module.new { extend self + def m1(&b) b end; def m2(); m1(&-> { break 42 }) end }.m2.call) + end + + def test_not_orphan_next + assert_equal(42, Module.new { extend self + def m1(&b) b.call end; def m2(); m1(&-> { next 42 }) end }.m2) + assert_equal(42, Module.new { extend self + def m1(&b) b end; def m2(); m1(&-> { next 42 }).call end }.m2) + assert_equal(42, Module.new { extend self + def m1(&b) b end; def m2(); m1(&-> { next 42 }) end }.m2.call) + end end |