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:
parent
415e9cef0d
commit
c8854d2ca4
3 changed files with 9 additions and 13 deletions
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue