diff options
| -rw-r--r-- | src/class.c | 2 | ||||
| -rw-r--r-- | test/t/module.rb | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/class.c b/src/class.c index e2ee288f4..1715abff1 100644 --- a/src/class.c +++ b/src/class.c @@ -1758,7 +1758,7 @@ mrb_mod_remove_const(mrb_state *mrb, mrb_value mod) check_const_name(mrb, sym); val = mrb_iv_remove(mrb, mod, sym); if (mrb_undef_p(val)) { - mrb_name_error(mrb, sym, "instance variable %s not defined", mrb_sym2name(mrb, sym)); + mrb_name_error(mrb, sym, "constant %s not defined", mrb_sym2name(mrb, sym)); } return val; } diff --git a/test/t/module.rb b/test/t/module.rb index 286c2c085..6c1c1acda 100644 --- a/test/t/module.rb +++ b/test/t/module.rb @@ -241,6 +241,28 @@ assert('Module#remove_class_variable', '15.2.2.4.39') do not Test4RemoveClassVariable.class_variables.include? :@@cv end +assert('Module#remove_const', '15.2.2.4.40') do + module Test4RemoveConst + ExistingConst = 23 + end + + result = Test4RemoveConst.module_eval { remove_const :ExistingConst } + + name_error = false + begin + Test4RemoveConst.module_eval { remove_const :NonExistingConst } + rescue NameError + name_error = true + end + + # Constant removed from Module + not Test4RemoveConst.const_defined? :ExistingConst and + # Return value of binding + result == 23 and + # Name Error raised when Constant doesn't exist + name_error +end + assert('Module#remove_method', '15.2.2.4.41') do module Test4RemoveMethod class Parent |
