From 2e26fa48ffade18988e63eb9e0c9f9e2d7474576 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 30 Dec 2015 02:28:59 +0000 Subject: forwardable.rb: adjust backtrace by tail call * lib/forwardable.rb (def_instance_delegator): adjust backtrace of method body by tail call optimization. adjusting the delegated target is still done by deleting backtrace. * lib/forwardable.rb (def_single_delegator): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/test_forwardable.rb | 2 ++ 1 file changed, 2 insertions(+) (limited to 'test') diff --git a/test/test_forwardable.rb b/test/test_forwardable.rb index a474e4ad76..550280de19 100644 --- a/test/test_forwardable.rb +++ b/test/test_forwardable.rb @@ -187,6 +187,7 @@ class TestForwardable < Test::Unit::TestCase extend Forwardable def_delegator :bar, :baz + def_delegator :caller, :itself, :c class Exception end @@ -197,6 +198,7 @@ class TestForwardable < Test::Unit::TestCase Foo.new.baz } assert_not_match(/\/forwardable\.rb/, e.backtrace[0]) + assert_equal(caller(0, 1)[0], Foo.new.c[0]) end class Foo2 < BasicObject -- cgit v1.2.3