const_defined? to check superclasses; ref #2593

parent 50f54529
......@@ -854,16 +854,6 @@ mrb_vm_cv_set(mrb_state *mrb, mrb_sym sym, mrb_value v)
mrb_mod_cv_set(mrb, c, sym, v);
}
MRB_API mrb_bool
mrb_const_defined(mrb_state *mrb, mrb_value mod, mrb_sym sym)
{
struct RClass *m = mrb_class_ptr(mod);
iv_tbl *t = m->iv;
if (!t) return FALSE;
return iv_get(mrb, t, sym, NULL);
}
static void
mod_const_check(mrb_state *mrb, mrb_value mod)
{
......@@ -1113,6 +1103,12 @@ retry:
return FALSE;
}
MRB_API mrb_bool
mrb_const_defined(mrb_state *mrb, mrb_value mod, mrb_sym id)
{
return mrb_const_defined_0(mrb, mrb_class_ptr(mod), id, TRUE, TRUE);
}
MRB_API mrb_bool
mrb_const_defined_at(mrb_state *mrb, struct RClass *klass, mrb_sym id)
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment