summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
authorJemma Issroff <jemmaissroff@gmail.com>2022-05-05 15:10:36 -0400
committerAaron Patterson <aaron.patterson@gmail.com>2022-05-23 11:04:34 -0700
commit80ad0e751f4c9aa13a581b61b348c34ede7f3956 (patch)
tree6f5e5463b61f6661bd38d2829e11c43c3e924180 /class.c
parent37ccf91bfb73a225cc60413645788ea55e5e852a (diff)
downloadruby-80ad0e751f4c9aa13a581b61b348c34ede7f3956.tar.gz
Remove unnecessary module flag, add module assertions to other module flags
Diffstat (limited to 'class.c')
-rw-r--r--class.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/class.c b/class.c
index e752cf87d9..0255a7c7e6 100644
--- a/class.c
+++ b/class.c
@@ -1268,11 +1268,12 @@ do_include_modules_at(const VALUE klass, VALUE c, VALUE module, int search_super
rb_module_add_to_subclasses_list(m, iclass);
}
- if (FL_TEST(klass, RMODULE_IS_REFINEMENT)) {
+ if (BUILTIN_TYPE(klass) == T_MODULE && FL_TEST(klass, RMODULE_IS_REFINEMENT)) {
VALUE refined_class =
rb_refinement_module_get_refined_class(klass);
rb_id_table_foreach(RCLASS_M_TBL(module), add_refined_method_entry_i, (void *)refined_class);
+ RUBY_ASSERT(BUILTIN_TYPE(c) == T_MODULE);
FL_SET(c, RMODULE_INCLUDED_INTO_REFINEMENT);
}
@@ -1497,7 +1498,7 @@ rb_mod_ancestors(VALUE mod)
{
VALUE p, ary = rb_ary_new();
VALUE refined_class = Qnil;
- if (FL_TEST(mod, RMODULE_IS_REFINEMENT)) {
+ if (BUILTIN_TYPE(mod) == T_MODULE && FL_TEST(mod, RMODULE_IS_REFINEMENT)) {
refined_class = rb_refinement_module_get_refined_class(mod);
}