Project

General

Profile

Feature #17347

Enumerator::Chain of Enumerator::Lazy should be lazy

Added by asilano (Chris Howlett) about 2 months ago. Updated about 2 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:101100]

Description

ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux]

Consider the following script:

a = [1,2,3].lazy
p a
b = [4,5,6].lazy
p b
c = a + b
p c

This gives the output:

#<Enumerator::Lazy: [1, 2, 3]>
#<Enumerator::Lazy: [4, 5, 6]>
#<Enumerator::Chain: [#<Enumerator::Lazy: [1, 2, 3]>, #<Enumerator::Lazy: [4, 5, 6]>]>

Note that c is just Enumerator::Chain; but all its component enumerators are lazy, so it would be nice if c were lazy.

That is, I'd like the output to be:

#<Enumerator::Lazy: [1, 2, 3]>
#<Enumerator::Lazy: [4, 5, 6]>
#<Enumerator::Lazy: #<Enumerator::Chain: [#<Enumerator::Lazy: [1, 2, 3]>, #<Enumerator::Lazy: [4, 5, 6]>]>>

Related issues

Is duplicate of Ruby master - Bug #17216: Enumerator::Chain doesn't support all Enumerator methodsOpenActions
#1

Updated by nobu (Nobuyoshi Nakada) about 2 months ago

  • Is duplicate of Bug #17216: Enumerator::Chain doesn't support all Enumerator methods added

Updated by asilano (Chris Howlett) about 2 months ago

Is it a duplicate? I can see it's similar, but I'm not entirely sure fixing #17216 will fix this. Willing to be wrong, though.

Also available in: Atom PDF