diff --git a/range.c b/range.c index bf14c0c7a7..2deb495712 100644 --- a/range.c +++ b/range.c @@ -22,6 +22,8 @@ VALUE rb_cRange; static ID id_beg, id_end, id_excl; #define id_cmp idCmp #define id_succ idSucc +#define id_min idMin +#define id_max idMax static VALUE r_cover_p(VALUE, VALUE, VALUE, VALUE); @@ -1236,7 +1238,10 @@ range_minmax(VALUE range) if (rb_block_given_p()) { return rb_call_super(0, NULL); } - return rb_assoc_new(range_min(0, NULL, range), range_max(0, NULL, range)); + return rb_assoc_new( + rb_funcall(range, id_min, 0), + rb_funcall(range, id_max, 0) + ); } int diff --git a/test/ruby/test_range.rb b/test/ruby/test_range.rb index b37dbbc433..3953b3ecc2 100644 --- a/test/ruby/test_range.rb +++ b/test/ruby/test_range.rb @@ -146,6 +146,9 @@ class TestRange < Test::Unit::TestCase assert_equal([nil, nil], (0...0).minmax) assert_equal([2, 1], (1..2).minmax{|a, b| b <=> a}) + + assert_equal(['a', 'c'], ('a'..'c').minmax) + assert_equal(['a', 'b'], ('a'...'c').minmax) end def test_initialize_twice diff --git a/version.h b/version.h index ad01425605..f7f94bfe72 100644 --- a/version.h +++ b/version.h @@ -2,7 +2,7 @@ # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR #define RUBY_VERSION_TEENY 1 #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR -#define RUBY_PATCHLEVEL 96 +#define RUBY_PATCHLEVEL 97 #define RUBY_RELEASE_YEAR 2020 #define RUBY_RELEASE_MONTH 7