summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
Diffstat (limited to 'class.c')
-rw-r--r--class.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/class.c b/class.c
index 4dbf5a2f35..7719b06208 100644
--- a/class.c
+++ b/class.c
@@ -1141,6 +1141,13 @@ rb_prepend_module(VALUE klass, VALUE module)
if (changed) {
rb_vm_check_redefinition_by_prepend(klass);
}
+ if (RB_TYPE_P(klass, T_MODULE)) {
+ rb_subclass_entry_t *iclass = RCLASS_EXT(klass)->subclasses;
+ while (iclass) {
+ include_modules_at(iclass->klass, iclass->klass, module, FALSE);
+ iclass = iclass->next;
+ }
+ }
}
/*