remove ZeroDivisionError since mruby gives float for integer division

This commit is contained in:
Yukihiro Matsumoto
2012-05-24 21:10:23 +09:00
parent 34d9043c81
commit d9227aa41d
2 changed files with 1 additions and 27 deletions
+1 -1
View File
@@ -443,7 +443,7 @@ mrb_init_exception(mrb_state *mrb)
#ifdef INCLUDE_ENCODING
mrb_define_class(mrb, "EncodingError", mrb->eStandardError_class);
#endif
mrb_define_class(mrb, "ZeroDivisionError", mrb->eStandardError_class); /* 15.2.30 */
// mrb_define_class(mrb, "ZeroDivisionError", mrb->eStandardError_class); /* 15.2.30 */
mrb_define_class(mrb, "FloatDomainError", eRangeError);
mrb_define_class(mrb, "KeyError", eIndexError);
-26
View File
@@ -37,12 +37,6 @@
#define fmod(x,y) fmodf(x,y)
#endif
void
mrb_num_zerodiv(mrb_state *mrb)
{
mrb_raise(mrb, E_ZERODIVISION_ERROR, "divided by 0");
}
static mrb_float
mrb_to_flo(mrb_state *mrb, mrb_value val)
{
@@ -252,7 +246,6 @@ flodivmod(mrb_state *mrb, mrb_float x, mrb_float y, mrb_float *divp, mrb_float *
{
mrb_float div, mod;
if (y == 0.0) mrb_num_zerodiv(mrb);
mod = fmod(x, y);
if (isinf(x) && !isinf(y) && !isnan(y))
div = x;
@@ -744,7 +737,6 @@ fixdivmod(mrb_state *mrb, mrb_int x, mrb_int y, mrb_int *divp, mrb_int *modp)
{
mrb_int div, mod;
if (y == 0) mrb_num_zerodiv(mrb);
if (y < 0) {
if (x < 0)
div = -x / -y;
@@ -1042,24 +1034,6 @@ fix_to_f(mrb_state *mrb, mrb_value num)
return mrb_float_value(val);
}
/*
* Document-class: ZeroDivisionError
*
* Raised when attempting to divide an integer by 0.
*
* 42 / 0
*
* <em>raises the exception:</em>
*
* ZeroDivisionError: divided by 0
*
* Note that only division by an exact 0 will raise that exception:
*
* 42 / 0.0 #=> Float::INFINITY
* 42 / -0.0 #=> -Float::INFINITY
* 0 / 0.0 #=> NaN
*/
/*
* Document-class: FloatDomainError
*