[Ironruby-core] Annoymous class extending a module doesn't return expected kind_of

Curt Hagenlocher curth at microsoft.com
Mon Oct 6 01:13:28 EDT 2008


This is working for me with our internal sources but not with what's current in RubyForge.  I think we might be a few days behind on the sync -- you should see it working after the next one happens.

-----Original Message-----
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Ben Hall
Sent: Sunday, October 05, 2008 6:28 PM
To: ironruby-core at rubyforge.org
Subject: [Ironruby-core] Annoymous class extending a module doesn't return expected kind_of

Hi guys,

I've been bashing my head again this problem for the last few days
where the object I expected wasn't passed around, tonight I decided to
break it down and focus on a much small part.  Turns out, I was
looking in the wrong part.

This is what I think the problem is. The code is creating an anonymous
class which is extending a module.  The code then does a kind_of? to
decide what to do with it.

>From what I can tell, it looks like the kind_of doesn't recognize the
modules it is extending.  This is the code which demonstrates the
problem:

Code Repro:
module AAA
   class << self
     def a
      puts "Hello"
     end
   end

  def myAAA
    klass = Class.new do
        extend AAA
    end

    puts "Am I a type of what I extended (AAA)?"
    puts klass.kind_of?(AAA)
  end
end

class XYZ
  include AAA
end

$a = XYZ.new
$a.myAAA


With MRI, true is returned.  With IronRuby, false is returned.

Output:

E:\IronRuby\trunk\build\debug>ruby array_test
Am I a type of what I extended (AAA)?
true

E:\IronRuby\trunk\build\debug>ir array_test
Am I a type of what I extended (AAA)?
false


This has blocked me moving on.  Anyone got any ideas?

Any help on this would be great!

Thanks

Ben
Blog.BenHall.me.uk
_______________________________________________
Ironruby-core mailing list
Ironruby-core at rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core



More information about the Ironruby-core mailing list