[ruby-core:109879] [Ruby master Bug#19004] Complex can be nested by Complex.polar
From:
"msnm (Masahiro Nomoto)" <noreply@...>
Date:
2022-09-10 17:46:15 UTC
List:
ruby-core #109879
Issue #19004 has been reported by msnm (Masahiro Nomoto).
----------------------------------------
Bug #19004: Complex can be nested by Complex.polar
https://bugs.ruby-lang.org/issues/19004
* Author: msnm (Masahiro Nomoto)
* Status: Open
* Priority: Normal
* ruby -v: 3.1.2
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
`Complex.polar` with one argument can return a "nested" Complex instance, whose real part is also a Complex one.
```ruby
puts RUBY_DESCRIPTION
# ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
p Complex.polar(1+0i)
# ((1+0i)+0i)
p 5.times.inject(1) { |num, _| Complex.polar(num) }
# (((((1+0i)+0i)+0i)+0i)+0i)
```
In Ruby < 2.7 , it simply raises an error when the argument is an instance of Complex (i.e. `obj.real? == false`).
```ruby
puts RUBY_DESCRIPTION
# ruby 2.6.10p210 (2022-04-12 revision 67958) [x86_64-linux]
p Complex.polar(1+0i)
# TypeError (not a real)
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>