From: "rwstauner (Randy Stauner) via ruby-core" Date: 2026-11-02T18:15:46+00:00 Subject: [ruby-core:127301] [Ruby Bug#22496] Lazy enumerator `.each_with_index` no longer executes block Issue #22496 has been reported by rwstauner (Randy Stauner). ---------------------------------------- Bug #22496: Lazy enumerator `.each_with_index` no longer executes block https://bugs.ruby-lang.org/issues/22496 * Author: rwstauner (Randy Stauner) * Status: Open * Backport: 3.3: DONTNEED, 3.4: DONTNEED, 4.0: DONTNEED ---------------------------------------- The fix for #21142 changed the behavior such that `lazy#each_with_index { ... }` is no longer running the block and just returning the enumerator. 4.0: ``` $ ruby -ve 'arr = []; p 3.times.lazy.each { |*a| arr << a }; p arr;' ruby 4.0.7 (2026-09-15 revision 229531a6cf) +PRISM [x86_64-linux] 3 [[0], [1], [2]] $ ruby -ve 'arr = []; p 3.times.lazy.each_with_index { |*a| arr << a }; p arr;' ruby 4.0.7 (2026-09-15 revision 229531a6cf) +PRISM [x86_64-linux] 3 [[0, 0], [1, 1], [2, 2]] ``` 4.1.0dev: ``` $ ruby -ve 'arr = []; p 3.times.lazy.each { |*a| arr << a }; p arr;' ruby 4.1.0dev (2026-10-28T17:51:51Z master 5127bd0dbc) +PRISM [x86_64-linux] 3 [[0], [1], [2]] $ ruby -ve 'arr = []; p 3.times.lazy.each_with_index { |*a| arr << a }; p arr;' ruby 4.1.0dev (2026-10-28T17:51:51Z master 5127bd0dbc) +PRISM [x86_64-linux] #>:each_with_index(0)> [] ``` This seems inconsistent and likely unintentional. We must be missing tests for this case. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/