From: "Nevir (Ian MacLeod)" Date: 2013-01-06T09:00:40+09:00 Subject: [ruby-core:51258] [ruby-trunk - Bug #7657][Open] Array#& doesn't accept Enumerables Issue #7657 has been reported by Nevir (Ian MacLeod). ---------------------------------------- Bug #7657: Array#& doesn't accept Enumerables https://bugs.ruby-lang.org/issues/7657 Author: Nevir (Ian MacLeod) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin12.1.0] This seems similar to http://bugs.ruby-lang.org/issues/6923 Example: irb(main):001:0> class Thing irb(main):002:1> include Enumerable irb(main):003:1> def each(*args, &block) irb(main):004:2> [1,2,3,4,5].each(*args, &block) irb(main):005:2> end irb(main):006:1> end => nil irb(main):007:0> Array(Thing.new) & [1,3,5] => [1, 3, 5] irb(main):008:0> [1,3,5] & Thing.new TypeError: can't convert Thing into Array irb(main):009:0> Thing.class_eval do irb(main):010:1* alias_method :to_ary, :to_a irb(main):011:1> end => Thing irb(main):012:0> [1,3,5] & Thing.new => [1, 3, 5] Would it make sense for Enumerable to implement to_ary as well? Or is this purely a bug in Array#&? -- http://bugs.ruby-lang.org/