summaryrefslogtreecommitdiff
path: root/vm_method.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm_method.c')
-rw-r--r--vm_method.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/vm_method.c b/vm_method.c
index 697621258c..ffe6f12166 100644
--- a/vm_method.c
+++ b/vm_method.c
@@ -605,8 +605,14 @@ rb_method_entry_make(VALUE klass, ID mid, VALUE defined_class, rb_method_visibil
rb_clear_method_cache_by_class(klass);
/* check mid */
- if (klass == rb_cObject && mid == idInitialize) {
- rb_warn("redefining Object#initialize may cause infinite loop");
+ if (klass == rb_cObject) {
+ switch (mid) {
+ case idInitialize:
+ case idRespond_to_missing:
+ case idMethodMissing:
+ case idRespond_to:
+ rb_warn("redefining Object#%s may cause infinite loop", rb_id2name(mid));
+ }
}
/* check mid */
if (mid == object_id || mid == id__send__) {