Make the metaclass of Refinement explicitly

Otherwise, singleton methods of Module are not inherited unless
Refinement.singleton_class is called.
This commit is contained in:
Shugo Maeda 2021-10-26 19:34:27 +09:00
Родитель 8a49c7e481
Коммит 37395ffa05
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 2DFE34085E97CE47
2 изменённых файлов: 6 добавлений и 0 удалений

Просмотреть файл

@ -689,6 +689,8 @@ Init_class_hierarchy(void)
RBASIC_SET_CLASS(rb_cObject, rb_cClass); RBASIC_SET_CLASS(rb_cObject, rb_cClass);
RBASIC_SET_CLASS(rb_cRefinement, rb_cClass); RBASIC_SET_CLASS(rb_cRefinement, rb_cClass);
RBASIC_SET_CLASS(rb_cBasicObject, rb_cClass); RBASIC_SET_CLASS(rb_cBasicObject, rb_cClass);
ENSURE_EIGENCLASS(rb_cRefinement);
} }

Просмотреть файл

@ -2668,6 +2668,10 @@ class TestRefinement < Test::Unit::TestCase
end end
end end
def test_inherit_singleton_methods_of_module
assert_equal([], Refinement.used_modules)
end
private private
def eval_using(mod, s) def eval_using(mod, s)