Feature #8449

Array#ary_plus always returns an array

Added by José M. González 11 months ago. Updated 11 months ago.

[ruby-core:55162]
Status:Open
Priority:Normal
Assignee:Nobuyoshi Nakada
Category:core
Target version:-

Description

=begin

Even when Array is subclassified, + operator keeps on returning an Array.

Don't know if it is a bug or intentional, but it has surprised me for sure.

I paste some code for demonstrational purposes:

#!/usr/bin/env ruby
#ary_plus.rb

# Shows an unexpected behavior to me
# when adding Array subclasess.

class Subarray < Array; end

a = Subarray.new
b = Subarray.new

result = a + b
# I was expecting to have a Subarray back

unless result.is_a? Subarray
puts "result is not a [Subarray]"
end

puts "result variable is a [#{result.class.name}]"

=end

History

#1 Updated by Zachary Scott 11 months ago

  • Category set to core
  • Assignee set to Nobuyoshi Nakada

For what it's worth this happens with String too:

class Substring < String; end
=> nil
a = Substring.new
=> ""
b = Substring.new
=> ""
result = a + b
=> ""
result.class
=> String

Maybe nobu can tell us

Also available in: Atom PDF