summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--numeric.c2
-rw-r--r--test/ruby/test_numeric.rb10
3 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 12a8145f14..813d90f4ff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/numeric.c b/numeric.c
index 5e70cafdc9..6f094c1cde 100644
--- a/numeric.c
+++ b/numeric.c
@@ -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