instance_methods etc should not include undef'ed method names; based on a patch from @cremno; fix #2613

This commit is contained in:
Yukihiro "Matz" Matsumoto
2014-10-20 11:11:26 +09:00
parent cee3dc58d6
commit 69ba4f0ed5
2 changed files with 2 additions and 1 deletions
+1 -1
View File
@@ -614,7 +614,7 @@ method_entry_loop(mrb_state *mrb, struct RClass* klass, khash_t(st)* set)
khash_t(mt) *h = klass->mt;
if (!h) return;
for (i=0;i<kh_end(h);i++) {
if (kh_exist(h, i)) {
if (kh_exist(h, i) && kh_value(h, i)) {
kh_put(st, mrb, set, kh_key(h, i));
}
}
+1
View File
@@ -469,6 +469,7 @@ assert('Module#undef_method', '15.2.2.4.42') do
assert_true Test4UndefMethod::Parent.new.respond_to?(:hello)
assert_false Test4UndefMethod::Child.new.respond_to?(:hello)
assert_false Test4UndefMethod::GrandChild.new.respond_to?(:hello)
assert_false Test4UndefMethod::Child.instance_methods(false).include? :hello
end
# Not ISO specified