summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/kernel.c4
-rw-r--r--test/t/kernel.rb5
2 files changed, 6 insertions, 3 deletions
diff --git a/src/kernel.c b/src/kernel.c
index af6a49be1..54b5f23b6 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -722,9 +722,7 @@ mrb_obj_singleton_methods(mrb_state *mrb, mrb_bool recur, mrb_value obj)
static mrb_value
mrb_obj_methods(mrb_state *mrb, mrb_bool recur, mrb_value obj, mrb_method_flag_t flag)
{
- if (recur)
- return mrb_class_instance_method_list(mrb, recur, mrb_class(mrb, obj), 0);
- return mrb_obj_singleton_methods(mrb, recur, obj);
+ return mrb_class_instance_method_list(mrb, recur, mrb_class(mrb, obj), 0);
}
/* 15.3.1.3.31 */
/*
diff --git a/test/t/kernel.rb b/test/t/kernel.rb
index 6df2294d5..927166283 100644
--- a/test/t/kernel.rb
+++ b/test/t/kernel.rb
@@ -423,6 +423,11 @@ end
assert('Kernel#public_methods', '15.3.1.3.38') do
assert_equal Array, public_methods.class
+ class Foo
+ def foo
+ end
+ end
+ assert_equal [:foo], Foo.new.public_methods(false)
end
# Kernel#puts is defined in mruby-print mrbgem. '15.3.1.3.39'