summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Evans <code@jeremyevans.net>2020-09-01 09:19:03 -0700
committerJeremy Evans <code@jeremyevans.net>2020-09-01 10:52:47 -0700
commit4db4faef0f96bfd3504f5eac454a0308c618ccd6 (patch)
tree2473bbea06c125cf17676c913e76833b81e81e57
parente080a4cdeeb55dddb6247ffd2563d2dc8b84c919 (diff)
Revert "Fix Range#{max,minmax} for range with integer beginning and non-integer end"
This reverts commit 8900a25581822759daca528d46a75e0b743fc22e.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3500
-rw-r--r--range.c21
-rw-r--r--test/ruby/test_range.rb13
2 files changed, 5 insertions, 29 deletions
diff --git a/range.c b/range.c
index 124d9faa51b..5e1103ce578 100644
--- a/range.c
+++ b/range.c
@@ -1235,13 +1235,6 @@ range_max(int argc, VALUE *argv, VALUE range)
if (c > 0)
return Qnil;
if (EXCL(range)) {
- if (RB_INTEGER_TYPE_P(b) && !RB_INTEGER_TYPE_P(e)) {
- VALUE end = e;
- e = rb_funcall(e, rb_intern("floor"), 0);
- if (!RTEST(rb_funcall(e, rb_intern("=="), 1, end))) {
- return e;
- }
- }
if (!RB_INTEGER_TYPE_P(e)) {
rb_raise(rb_eTypeError, "cannot exclude non Integer end value");
}
@@ -1254,9 +1247,6 @@ range_max(int argc, VALUE *argv, VALUE range)
}
return rb_funcall(e, '-', 1, INT2FIX(1));
}
- if (RB_INTEGER_TYPE_P(b) && !RB_INTEGER_TYPE_P(e)) {
- e = rb_funcall(e, rb_intern("floor"), 0);
- }
return e;
}
}
@@ -1604,14 +1594,9 @@ r_cover_range_p(VALUE range, VALUE beg, VALUE end, VALUE val)
else if (cmp_end >= 0) {
return TRUE;
}
- if (RB_INTEGER_TYPE_P(val_beg) && RB_INTEGER_TYPE_P(beg) &&
- RB_INTEGER_TYPE_P(val_end) != RB_INTEGER_TYPE_P(end)) {
- val_max = val_end;
- }
- else {
- val_max = rb_rescue2(r_call_max, val, 0, Qnil, rb_eTypeError, (VALUE)0);
- if (val_max == Qnil) return FALSE;
- }
+
+ val_max = rb_rescue2(r_call_max, val, 0, Qnil, rb_eTypeError, (VALUE)0);
+ if (val_max == Qnil) return FALSE;
return r_less(end, val_max) >= 0;
}
diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb
index 0b3f6c68f62..07a092858e0 100644
--- a/test/ruby/test_range.rb
+++ b/test/ruby/test_range.rb
@@ -107,13 +107,11 @@ class TestRange < Test::Unit::TestCase
assert_equal(1, (1...2).max)
assert_raise(RangeError) { (1..).max }
assert_raise(RangeError) { (1...).max }
- assert_equal(2, (1..2.1).max)
- assert_equal(2, (1...2.1).max)
assert_equal(2.0, (1.0..2.0).max)
assert_equal(nil, (2.0..1.0).max)
assert_raise(TypeError) { (1.0...2.0).max }
- assert_equal(1, (1...1.5).max)
+ assert_raise(TypeError) { (1...1.5).max }
assert_raise(TypeError) { (1.5...2).max }
assert_equal(-0x80000002, ((-0x80000002)...(-0x80000001)).max)
@@ -139,13 +137,11 @@ class TestRange < Test::Unit::TestCase
assert_equal([1, 1], (1...2).minmax)
assert_raise(RangeError) { (1..).minmax }
assert_raise(RangeError) { (1...).minmax }
- assert_equal([1, 2], (1..2.1).minmax)
- assert_equal([1, 2], (1...2.1).minmax)
assert_equal([1.0, 2.0], (1.0..2.0).minmax)
assert_equal([nil, nil], (2.0..1.0).minmax)
assert_raise(TypeError) { (1.0...2.0).minmax }
- assert_equal([1, 1], (1..1.5).minmax)
+ assert_raise(TypeError) { (1...1.5).minmax }
assert_raise(TypeError) { (1.5...2).minmax }
assert_equal([-0x80000002, -0x80000002], ((-0x80000002)...(-0x80000001)).minmax)
@@ -660,12 +656,7 @@ class TestRange < Test::Unit::TestCase
assert_not_operator(1..10, :cover?, 3...2)
assert_not_operator(1..10, :cover?, 3...3)
assert_not_operator('aa'..'zz', :cover?, 'aa'...'zzz')
-
assert_not_operator(1..10, :cover?, 1...10.1)
- assert_not_operator(1...10.1, :cover?, 1..10.1)
- assert_operator(1..10.1, :cover?, 1...10.1)
- assert_operator(1..10.1, :cover?, 1...10)
- assert_operator(1..10.1, :cover?, 1..10)
end
def test_beg_len