Project

General

Profile

Feature #7657

Array#& doesn't accept Enumerables

Added by Nevir (Ian MacLeod) about 8 years ago. Updated about 3 years ago.

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

Description

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#&?

Also available in: Atom PDF