diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | numeric.c | 2 | ||||
-rw-r--r-- | test/ruby/test_numeric.rb | 10 |
3 files changed, 16 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Tue Feb 16 18:24:38 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * numeric.c (compare_with_zero): fix variable name, rb_cmperr + requires VALUEs but not an ID. + Tue Feb 16 17:34:18 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> * dir.c (rb_dir_s_empty_p): add Dir.empty? method, which tells the @@ -168,7 +168,7 @@ compare_with_zero(VALUE num, ID mid) VALUE zero = INT2FIX(0); VALUE r = rb_check_funcall(num, mid, 1, &zero); if (r == Qundef) { - rb_cmperr(mid, zero); + rb_cmperr(num, zero); } return r; } diff --git a/test/ruby/test_numeric.rb b/test/ruby/test_numeric.rb index 89e11d0ff8..5c55539d91 100644 --- a/test/ruby/test_numeric.rb +++ b/test/ruby/test_numeric.rb @@ -348,4 +348,14 @@ class TestNumeric < Test::Unit::TestCase assert_not_operator(1, :eql?, 1.0) assert_not_operator(1, :eql?, 2) end + + def test_coerced_remainder + assert_separately([], <<-'end;') + x = Class.new do + def coerce(a) [self, a]; end + def %(a) self; end + end.new + assert_raise(ArgumentError) {1.remainder(x)} + end; + end end |