Issue #17216 has been reported by jeremie (J=E9r=E9mie Laval).

----------------------------------------
Bug #17216: Enumerator::Chain doesn't support all Enumerator methods
https://bugs.ruby-lang.org/issues/17216

* Author: jeremie (J=E9r=E9mie Laval)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
Despite the fact that `Enumerator::Chain` (returned by `Enumerator#chain`) =
is supposed to inherit from `Enumerator`, a lot of `Enumerator` methods do =
not work on a chain instance throwing the following error:

```
TypeError (wrong argument type chain (expected enumerator))
```

The following code exhibit the problem:

```ruby
[1, 2, 3].chain([4, 5, 6]).with_index.to_a
```

A workaround is to use `each` (also work with `map`, `to_enum`, and others)=
 to force a conversion back to a plain enumerator which seems superfluous:

```ruby
[1, 2, 3].chain([4, 5, 6]).each.with_index.to_a
```




-- =

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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=3Dunsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>