ruby-changes:8846
From: matz <ko1@a...>
Date: Fri, 28 Nov 2008 01:02:16 +0900 (JST)
Subject: [ruby-changes:8846] Ruby:r20381 (trunk): * numeric.c (flodivmod): floating point division should raise
matz 2008-11-28 01:01:54 +0900 (Fri, 28 Nov 2008) New Revision: 20381 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20381 Log: * numeric.c (flodivmod): floating point division should raise ZeroDivisionError as integer division. [incompatible] Modified files: trunk/ChangeLog trunk/numeric.c trunk/test/ruby/test_float.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 20380) +++ ChangeLog (revision 20381) @@ -1,3 +1,8 @@ +Fri Nov 28 00:12:00 2008 Yukihiro Matsumoto <matz@r...> + + * numeric.c (flodivmod): floating point division should raise + ZeroDivisionError as integer division. [incompatible] + Thu Nov 27 23:54:37 2008 Yukihiro Matsumoto <matz@r...> * gc.c (gc_mark): still needs to check stack depth during GC. Index: numeric.c =================================================================== --- numeric.c (revision 20380) +++ numeric.c (revision 20381) @@ -678,6 +678,7 @@ { double div, mod; + if (y == 0.0) rb_num_zerodiv(); #ifdef HAVE_FMOD mod = fmod(x, y); #else Index: test/ruby/test_float.rb =================================================================== --- test/ruby/test_float.rb (revision 20380) +++ test/ruby/test_float.rb (revision 20381) @@ -172,9 +172,7 @@ assert_raise(TypeError) { 2.0.divmod(nil) } inf = 1.0 / 0.0 - a, b = inf.divmod(0) - assert(a.infinite?) - assert(b.nan?) + assert_raise(ZeroDivisionError) {inf.divmod(0)} a, b = (2.0**32).divmod(1.0) assert_equal(2**32, a) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/