diff options
Diffstat (limited to 'vm_method.c')
-rw-r--r-- | vm_method.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/vm_method.c b/vm_method.c index 1a6e965e44..120e8b0563 100644 --- a/vm_method.c +++ b/vm_method.c @@ -2332,7 +2332,13 @@ rb_alias(VALUE klass, ID alias_name, ID original_name) alias_me = method_entry_set(target_klass, alias_name, orig_me, visi, orig_me->owner); RB_OBJ_WRITE(alias_me, &alias_me->owner, target_klass); - RB_OBJ_WRITE(alias_me, &alias_me->defined_class, orig_me->defined_class); + + if (RB_TYPE_P(target_klass, T_MODULE)) { + // defined_class should not be set + } + else { + RB_OBJ_WRITE(alias_me, &alias_me->defined_class, orig_me->defined_class); + } } } |