[#28561] Ruby::DL vs Ruby::FFI — Aston <blackapache512-ticket@...>

Ruby.DL and FFI libraries are great for programmers like me who are not internet programmers, but are more interested in scientific and number processing etc.

11 messages 2010/03/08

[#28686] trunk (26947) build fail with msys/mingw/vista — Jon <jon.forums@...>

I get the following build failure when msysgit's "c:\git\cmd" dir is on PATH.

8 messages 2010/03/16

[#28687] [Bug #2973] rb_bug - Segmentation fault - error.c:213 — rudolf gavlas <redmine@...>

Bug #2973: rb_bug - Segmentation fault - error.c:213

10 messages 2010/03/16

[#28735] [Bug #2982] Ruby tries to link with both openssl and readline — Lucas Nussbaum <redmine@...>

Bug #2982: Ruby tries to link with both openssl and readline

16 messages 2010/03/18

[#28736] [Bug #2983] Ruby (GPLv2 only) tries to link to with readline (now GPLv3) — Lucas Nussbaum <redmine@...>

Bug #2983: Ruby (GPLv2 only) tries to link to with readline (now GPLv3)

10 messages 2010/03/18

[#28907] [Bug #3000] Open SSL Segfaults — Christian Höltje <redmine@...>

Bug #3000: Open SSL Segfaults

19 messages 2010/03/23

[#28924] [Bug #3005] Ruby core dump - [BUG] rb_sys_fail() - errno == 0 — Sebastian YEPES <redmine@...>

Bug #3005: Ruby core dump - [BUG] rb_sys_fail() - errno == 0

10 messages 2010/03/24

[#28954] [Feature #3010] slow require gems in ruby 1.9.1 — Miao Jiang <redmine@...>

Feature #3010: slow require gems in ruby 1.9.1

15 messages 2010/03/24

[#29179] [Bug #3071] Convert rubygems and rdoc to use psych — Aaron Patterson <redmine@...>

Bug #3071: Convert rubygems and rdoc to use psych

10 messages 2010/03/31

[ruby-core:28395] [Bug #2830] Some methods raise ArgumentError instead of TypeError

From: Marc-Andre Lafortune <redmine@...>
Date: 2010-03-02 04:45:11 UTC
List: ruby-core #28395
Bug #2830: Some methods raise ArgumentError instead of TypeError
http://redmine.ruby-lang.org/issues/show/2830

Author: Marc-Andre Lafortune
Status: Open, Priority: Normal
Assigned to: Marc-Andre Lafortune, Category: core, Target version: 1.9.2
ruby -v: ruby 1.9.2dev (2010-03-02 trunk 26792) [x86_64-darwin10.2.0] 

Some methods of Ruby 1.9 expect integers/reals and call internally nurat_int_value/nurat_int_check. These functions raise an ArgumentError when the argument is not an Integer, instead of a TypeError.

Thus:
  42.gcd(:foo)     # => ArgumentError, should be TypeError
  42.lcm(:foo)     # => ditto
  42.gcdlcm(:foo)  # => ditto
  Rational(:foo,1) # => ditto

Note that on the other hand:
  Rational(nil, 1) # => TypeError
  Rational(:foo)   # => TypeError

In a similar fashion:
  Complex.rect(nil)  # => ArgumentError, should be TypeError
  Complex.polar(nil) # => ditto


Unless there is objection, I will commit the following patch (and fix RubySpec):

diff --git a/complex.c b/complex.c
index 214d3a2..6742257 100644
--- a/complex.c
+++ b/complex.c
@@ -377,7 +377,7 @@ nucomp_real_check(VALUE num)
        break;
       default:
        if (!k_numeric_p(num) || !f_real_p(num))
-           rb_raise(rb_eArgError, "not a real");
+           rb_raise(rb_eTypeError, "not a real");
     }
 }
 
diff --git a/rational.c b/rational.c
index 65d3cf4..f5a6d26 100644
--- a/rational.c
+++ b/rational.c
@@ -419,7 +419,7 @@ nurat_int_check(VALUE num)
        break;
       default:
        if (!k_numeric_p(num) || !f_integer_p(num))
-           rb_raise(rb_eArgError, "not an integer");
+           rb_raise(rb_eTypeError, "not an integer");
     }
 }


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next