diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2021-04-04 23:40:30 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2021-04-04 23:40:30 +0000 |
commit | 8890779077a556bc56f5f68944988551a9cd78e6 (patch) | |
tree | 24553b0ebb202f24d690dd7641417ef4e87ded2b | |
parent | 8bfee861356c8402f11e6979bf57e25c18dd2a12 (diff) |
merge revision(s) a55eb9a2af7950d180d9d31ffde2bce66710f44f: [Backport #17572]
Make reciprocal properly of non-integral rational [Bug #17572]
---
rational.c | 2 +-
test/ruby/test_rational.rb | 7 +++++++
2 files changed, 8 insertions(+), 1 deletion(-)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | rational.c | 2 | ||||
-rw-r--r-- | test/ruby/test_rational.rb | 7 | ||||
-rw-r--r-- | version.h | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/rational.c b/rational.c index 435a68f421..1038059e4f 100644 --- a/rational.c +++ b/rational.c @@ -1865,7 +1865,7 @@ VALUE rb_rational_reciprocal(VALUE x) { get_dat1(x); - return f_rational_new_no_reduce2(CLASS_OF(x), dat->den, dat->num); + return nurat_convert(CLASS_OF(x), dat->den, dat->num, FALSE); } /* diff --git a/test/ruby/test_rational.rb b/test/ruby/test_rational.rb index a8cdf22a49..2957e1bfc8 100644 --- a/test/ruby/test_rational.rb +++ b/test/ruby/test_rational.rb @@ -598,6 +598,13 @@ class Rational_Test < Test::Unit::TestCase assert_nothing_raised(TypeError, '[Bug #5020] [ruby-dev:44088]') do Rational(1,2).coerce(Complex(1,1)) end + + assert_raise(ZeroDivisionError) do + 1 / 0r.coerce(0+0i)[0] + end + assert_raise(ZeroDivisionError) do + 1 / 0r.coerce(0.0+0i)[0] + end end class ObjectX @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.6.7" #define RUBY_RELEASE_DATE "2021-04-05" -#define RUBY_PATCHLEVEL 185 +#define RUBY_PATCHLEVEL 186 #define RUBY_RELEASE_YEAR 2021 #define RUBY_RELEASE_MONTH 4 |