[Ironruby-core] IronRuby 0.9.2 bug - super(.S, 1*&):433 @1 not supported on foreign meta-objects

Orion Edwards orion.edwards at gmail.com
Sun Nov 8 21:27:32 EST 2009


I have the following code, which used to work under IronRuby 0.9.1 and
earlier

class Object
  def method_missing(sym, *args, &block)
    if sym.to_s =~ /blah regex/
      # do stuff
    else
      super # call through to underlying ruby method_missing
    end
  end
end

Under 0.9.1 this worked across the board, and under 0.9.2 it works for most
objects, but suddenly for COM objects it's throwing an exception on the call
to 'super'

Repro code:

load_assembly "microsoft.office.interop.word"
word = Microsoft.Office.Interop.Word.ApplicationClass.new
word.fdsfgdsf
System::NotSupportedException: super(.S,1*&):482 @1 not supported on foreign
meta-objects
        from (irb):12:in `method_missing'
        from (irb):16
        from C:/Dev/TEST/ruby/lib/ruby/1.8/irb.rb:150:in `eval_input'
        from :0:in `eval'
        from C:/Dev/TEST/ruby/lib/ruby/1.8/irb.rb:263:in `signal_status'
        from C:/Dev/TEST/ruby/lib/ruby/1.8/irb.rb:147:in `eval_input'
        from C:/Dev/TEST/ruby/lib/ruby/1.8/irb.rb:146:in `eval_input'
        from C:/Dev/TEST/ruby/lib/ruby/1.8/irb.rb:70:in `start'
        from C:/Dev/TEST/ruby/lib/ruby/1.8/irb.rb:69:in `start'
        from C:/Dev/TEST/ruby/bin/iirb:13
        from :0:in `loop'
        from :0:in `catch'
        from :0:in `catch'

I'd be more than happy to work around it by not calling super if the object
is a "foreign meta-object", but how can I tell that?

Cheers, Orion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20091109/0d1d11e1/attachment-0001.html>


More information about the Ironruby-core mailing list