1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* vm_insnhelper.c (vm_search_super_method): do not skip calling

same methods in super.
  [Bug #3351]
* test/ruby/test_super.rb: fix a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2015-07-06 09:02:34 +00:00
parent 415e9cef0d
commit c8854d2ca4
3 changed files with 9 additions and 13 deletions

View file

@ -1,3 +1,11 @@
Mon Jul 6 17:59:05 2015 Koichi Sasada <ko1@atdot.net>
* vm_insnhelper.c (vm_search_super_method): do not skip calling
same methods in super.
[Bug #3351]
* test/ruby/test_super.rb: fix a test.
Mon Jul 6 17:59:11 2015 SHIBATA Hiroshi <hsbt@ruby-lang.org>
* ext/tk/tcltklib.c: removed deprecated safe level.

View file

@ -228,11 +228,8 @@ class TestSuper < Test::Unit::TestCase
A.send(:include, Override)
end
# [Bug #3351]
def test_double_include
assert_equal([:Base, :Override], DoubleInclude::B.new.foo)
# should be changed as follows?
# assert_equal([:Base, :Override, :Override], DoubleInclude::B.new.foo)
assert_equal([:Base, :Override, :Override], DoubleInclude::B.new.foo, "[Bug #3351]")
end
module DoubleInclude2

View file

@ -2277,15 +2277,6 @@ vm_search_super_method(rb_thread_t *th, rb_control_frame_t *reg_cfp, rb_call_inf
/* TODO: use inline cache */
ci->me = rb_callable_method_entry(ci->klass, ci->mid);
ci->call = vm_call_super_method;
while (iseq && !iseq->klass) {
iseq = iseq->parent_iseq;
}
if (ci->me && ci->me->def->type == VM_METHOD_TYPE_ISEQ && def_iseq_ptr(ci->me->def) == iseq) {
ci->klass = RCLASS_SUPER(ci->me->defined_class);
ci->me = rb_callable_method_entry(ci->klass, ci->mid);
}
}
/* yield */