diff --git a/mrblib/10error.rb b/mrblib/10error.rb index 24ed68d4b..98d4d2a76 100644 --- a/mrblib/10error.rb +++ b/mrblib/10error.rb @@ -1,10 +1,3 @@ -class FloatDomainError < RangeError -end - -# ISO 15.2.26 -class RegexpError < StandardError -end - # ISO 15.2.31 class NameError < StandardError attr_accessor :name diff --git a/src/error.c b/src/error.c index 9d92ed8b0..1c7fa9370 100644 --- a/src/error.c +++ b/src/error.c @@ -710,7 +710,9 @@ mrb_init_exception(mrb_state *mrb) mrb->eStandardError_class = mrb_define_class_id(mrb, MRB_SYM(StandardError), mrb->eException_class); /* 15.2.23 */ mrb_define_class_id(mrb, MRB_SYM(ArgumentError), E_STANDARD_ERROR); /* 15.2.24 */ mrb_define_class_id(mrb, MRB_SYM(LocalJumpError), E_STANDARD_ERROR); /* 15.2.25 */ - mrb_define_class_id(mrb, MRB_SYM(RangeError), E_STANDARD_ERROR); /* 15.2.26 */ + struct RClass *range_error = mrb_define_class_id(mrb, MRB_SYM(RangeError), E_STANDARD_ERROR); /* 15.2.26 */ + mrb_define_class_id(mrb, MRB_SYM(FloatDomainError), range_error); + mrb_define_class_id(mrb, MRB_SYM(RegexpError), E_STANDARD_ERROR); /* 15.2.27 */ struct RClass *runtime_error = mrb_define_class_id(mrb, MRB_SYM(RuntimeError), E_STANDARD_ERROR); /* 15.2.28 */ mrb_define_class_id(mrb, MRB_SYM(FrozenError), runtime_error); mrb_define_class_id(mrb, MRB_SYM(TypeError), E_STANDARD_ERROR); /* 15.2.29 */