From: ronnie@... Date: 2017-02-17T10:59:28+00:00 Subject: [ruby-core:79572] [Ruby trunk Bug#13222] Array#sum inconsistency when init value is non-numeric Issue #13222 has been reported by Akira Matsuda. ---------------------------------------- Bug #13222: Array#sum inconsistency when init value is non-numeric https://bugs.ruby-lang.org/issues/13222 * Author: Akira Matsuda * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.0dev (2017-02-17 trunk 57644) [x86_64-darwin15] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- Since Array#sum skips calling plus for `0` https://github.com/ruby/ruby/blob/c85a58d/array.c#L5831-L5832, it doesn't raise when the receiver array consists of 0 only, even when the "init" value is non-numeric. ``` % ruby -e "p [1].sum('a')" -e:1:in `sum': String can't be coerced into Integer (TypeError) ``` ``` % ruby -e "p [0].sum('a')" "a" ``` ``` % ruby -e "p [0, 0, 0].sum('a')" "a" ``` -- https://bugs.ruby-lang.org/ Unsubscribe: