ruby-changes:17067
From: wanabe <ko1@a...>
Date: Sat, 21 Aug 2010 23:40:57 +0900 (JST)
Subject: [ruby-changes:17067] Ruby:r29065 (trunk): * test/ruby/test_super.rb: add test.
wanabe 2010-08-21 23:38:17 +0900 (Sat, 21 Aug 2010) New Revision: 29065 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29065 Log: * test/ruby/test_super.rb: add test. Modified files: trunk/test/ruby/test_super.rb Index: test/ruby/test_super.rb =================================================================== --- test/ruby/test_super.rb (revision 29064) +++ test/ruby/test_super.rb (revision 29065) @@ -139,4 +139,49 @@ } 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 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/