[ruby-dev:49424] [Ruby trunk - Bug #11804] 52931 以降、caseでInfinityを使用するとFloatDomainErrorが発生する

From: spiketeika@...
Date: 2015-12-11 08:26:16 UTC
List: ruby-dev #49424
Issue #11804 has been updated by Kaneko Yuichiro.

Subject changed from 52693 =E4=BB=A5=E9=99=8D=E3=80=81case=E3=81=A7Infinity=
=E3=82=92=E4=BD=BF=E7=94=A8=E3=81=99=E3=82=8B=E3=81=A8FloatDomainError=E3=
=81=8C=E7=99=BA=E7=94=9F=E3=81=99=E3=82=8B to 52931 =E4=BB=A5=E9=99=8D=E3=
=80=81case=E3=81=A7Infinity=E3=82=92=E4=BD=BF=E7=94=A8=E3=81=99=E3=82=8B=E3=
=81=A8FloatDomainError=E3=81=8C=E7=99=BA=E7=94=9F=E3=81=99=E3=82=8B

----------------------------------------
Bug #11804: 52931 =E4=BB=A5=E9=99=8D=E3=80=81case=E3=81=A7Infinity=E3=82=92=
=E4=BD=BF=E7=94=A8=E3=81=99=E3=82=8B=E3=81=A8FloatDomainError=E3=81=8C=E7=
=99=BA=E7=94=9F=E3=81=99=E3=82=8B
https://bugs.ruby-lang.org/issues/11804#change-55460

* Author: Kaneko Yuichiro
* Status: Open
* Priority: Normal
* Assignee:=20
* ruby -v: ruby 2.3.0dev (2015-12-11 trunk 53027) [x86_64-darwin14]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
=E4=BB=A5=E4=B8=8B=E3=81=AE=E3=82=88=E3=81=86=E3=81=AA=E3=82=B1=E3=83=BC=E3=
=82=B9=E3=81=A7=E3=81=99=E3=80=82

```ruby
  def test_infinity
    inf =3D 1.0/0.0

    result =3D case inf
             when true then 1
             when false then 0
             else
               inf.to_i rescue nil
             end

    assert_nil result
  end
```

52930=E3=81=AE=E5=A0=B4=E5=90=88

```
# Running tests:

Finished tests in 0.136572s, 51.2550 tests/s, 314.8522 assertions/s.
7 tests, 43 assertions, 0 failures, 0 errors, 0 skips
```

52931=E3=81=AE=E5=A0=B4=E5=90=88

```
[4/7] TestCase#test_infinity =3D 0.00 s
  1) Error:
TestCase#test_infinity:
FloatDomainError: Infinity
    ruby/test/ruby/test_case.rb:156:in `test_infinity'

Finished tests in 0.135196s, 51.7767 tests/s, 310.6601 assertions/s.
7 tests, 42 assertions, 0 failures, 1 errors, 0 skips
```

=E3=81=AA=E3=81=8A`when`=E3=81=AE=E3=81=82=E3=81=A8=E3=81=8CString=E3=81=AE=
=E3=81=BF=E3=81=AE=E3=82=B1=E3=83=BC=E3=82=B9=E3=81=A0=E3=81=A82.2.3=E3=81=
=A7=E3=82=82=E4=BE=8B=E5=A4=96=E3=81=8C=E7=99=BA=E7=94=9F=E3=81=97=E3=81=BE=
=E3=81=99=E3=80=82

```ruby
irb(main):001:0> RUBY_VERSION
=3D> "2.2.3"
irb(main):002:0>     inf =3D 1.0/0.0
=3D> Infinity
irb(main):003:0>
irb(main):004:0*     result =3D case inf
irb(main):005:1>              when 'str' then :string
irb(main):006:1>              else
irb(main):007:1*                inf.to_i rescue nil
irb(main):008:1>              end
FloatDomainError: Infinity
	from (irb):4
	from .rbenv/versions/2.2.3/bin/irb:11:in `<main>'
```




--=20
https://bugs.ruby-lang.org/

In This Thread

Prev Next