* eval.c (rb_using_module): clear method cache after applying
  refinements.

* eval.c (mod_using, top_using): remove redundant type checks.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2013-12-13 03:53:20 +00:00
Родитель b07bdbc2b3
Коммит 4547d773c2
1 изменённых файлов: 1 добавлений и 4 удалений

5
eval.c
Просмотреть файл

@ -1176,6 +1176,7 @@ rb_using_module(NODE *cref, VALUE module)
{
Check_Type(module, T_MODULE);
using_module_recursive(cref, module);
rb_clear_method_cache_by_class(rb_cObject);
}
VALUE
@ -1295,9 +1296,7 @@ mod_using(VALUE self, VALUE module)
if (prev_cfp && prev_cfp->self != self) {
rb_raise(rb_eRuntimeError, "Module#using is not called on self");
}
Check_Type(module, T_MODULE);
rb_using_module(cref, module);
rb_clear_method_cache_by_class(rb_cObject);
return self;
}
@ -1431,9 +1430,7 @@ top_using(VALUE self, VALUE module)
rb_raise(rb_eRuntimeError,
"main.using is permitted only at toplevel");
}
Check_Type(module, T_MODULE);
rb_using_module(cref, module);
rb_clear_method_cache_by_class(rb_cObject);
return self;
}