Superclass of eigenclass in 1.8.6

  • Thread starter Paolo Nusco Perrotta
  • Start date
P

Paolo Nusco Perrotta

Test script:

class Object
# good old eigenclass accessor
def eigenclass; class << self; self; end; end
end

class A; end
class B < A; end
b = B.new

p "super of eigen of b: #{b.eigenclass.superclass}"
p "super of eigen of B: #{B.eigenclass.superclass}"
p "super of eigen of A: #{A.eigenclass.superclass}"

Ruby 1.8.2 and Ruby 1.9 give the same result:

MacNusco:/usr/bin nusco$ ruby -v /strange.rb
ruby 1.8.2 (2004-12-25) [universal-darwin8.0]
"super of eigen of b: B"
"super of eigen of B: #<Class:A>"
"super of eigen of A: #<Class:Object>"

This is what I expected, and consistent with the way method lookup
works for singleton methods in both objects and classes. On the other
hand, Ruby 1.8.5 and 1.8.6 surprised me:

MacNusco:/ nusco$ ruby -v /strange.rb
ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]
"super of eigen of b: #<Class:B>"
"super of eigen of B: #<Class:Class>"
"super of eigen of A: #<Class:Class>"

What the heck?


Paolo Perrotta
Bologna, Italy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,774
Messages
2,569,596
Members
45,135
Latest member
VeronaShap
Top