Project

General

Profile

Actions

Bug #17216

closed

Enumerator::Chain doesn't support all Enumerator methods

Added by jeremie (Jérémie Laval) over 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
[ruby-core:100302]

Description

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:

[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:

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

Related issues 1 (0 open1 closed)

Has duplicate Ruby master - Feature #17347: Enumerator::Chain of Enumerator::Lazy should be lazyClosedActions
Actions

Also available in: Atom PDF