diff options
author | wanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-21 14:38:17 +0000 |
---|---|---|
committer | wanabe <wanabe@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-08-21 14:38:17 +0000 |
commit | df5f6825dbd90cb3568ee7ba35da0eec61226ba8 (patch) | |
tree | 2822fe1f1ff8641b8ea9c0b7837664a1ad53960e /test/ruby | |
parent | 72c811a3d8a4bfe4b98219f225cc20784e373122 (diff) | |
download | ruby-df5f6825dbd90cb3568ee7ba35da0eec61226ba8.tar.gz |
* test/ruby/test_super.rb: add test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29065 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_super.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/ruby/test_super.rb b/test/ruby/test_super.rb index 8de1e2fa7e..66faa70a76 100644 --- a/test/ruby/test_super.rb +++ b/test/ruby/test_super.rb @@ -139,4 +139,49 @@ class TestSuper < Test::Unit::TestCase } assert_match(/implicit argument passing of super from method defined by define_method/, e.message) end + + class SubSeq + def initialize + @first=11 + @first or fail + end + + def subseq + @first or fail + end + end + + class Indexed + def subseq + SubSeq.new + end + end + + Overlaid = proc do + class << self + def subseq + super.instance_eval(& Overlaid) + end + end + end + + def test_overlaid + assert_nothing_raised('[ruby-dev:40959]') do + overlaid = proc do |obj| + def obj.reverse + super + end + end + overlaid.call(str = "123") + overlaid.call(ary = [1,2,3]) + str.reverse + end + + assert_nothing_raised('[ruby-core:27230]') do + mid=Indexed.new + mid.instance_eval(&Overlaid) + mid.subseq + mid.subseq + end + end end |