From: zekefast@... Date: 2014-04-10T09:46:36+00:00 Subject: [ruby-core:61942] [ruby-trunk - Bug #9723] [Open] #size does not trigger evaluation of lazy enumerator. Issue #9723 has been reported by Zeke Fast. ---------------------------------------- Bug #9723: #size does not trigger evaluation of lazy enumerator. https://bugs.ruby-lang.org/issues/9723 * Author: Zeke Fast * Status: Open * Priority: Normal * Assignee: * Category: core * Target version: * ruby -v: 2.1.1 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- Here is the code which shows weird behariour ### Steps to reproduce `$ irb 2.1.1 :001 > [1, 2, 3].lazy.select{ |e| e%2 == 1}.size => nil 2.1.1 :002 > [1, 2, 3].lazy.select{ |e| e%2 == 1}.to_a => [1, 3] 2.1.1 :003 > [1, 2, 3].lazy.size => 3` ### Expected `[1, 2, 3].lazy.select{ |e| e%2 == 1}.size` to return number of elements like `[1, 2, 3].lazy.size` did. ### Actual `[1, 2, 3].lazy.select{ |e| e%2 == 1}.size` returns **nil**. ### Environment Ruby: ruby 2.0.0p457 (2014-03-03) [x86_64-linux-gnu] RVM: rvm 1.25.22 (stable) by Wayne E. Seguin , Michal Papis [https://rvm.io/] OS: Linux xxxxxx 3.13-1-amd64 #1 SMP Debian 3.13.7-1 (2014-03-25) x86_64 GNU/Linux -- https://bugs.ruby-lang.org/