[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]