[Ironruby-core] super(foo) doesn't work correctly when subclassing Ruby classes implemented in C#

Charles Strahan charles.c.strahan at gmail.com
Fri Jul 30 10:23:36 EDT 2010

Tomas, have you had a chance to look at this?  It looks like we can't safely
subclass anything in the standard library (or yaml) in IronRuby.

Just wanted to see if you could confirm.  If so, I'd bump up the priority of
the CodePlex ticket - this is a pretty big incompatibility with MRI.


On Thu, Jul 29, 2010 at 1:03 AM, Charles Strahan <
charles.c.strahan at gmail.com> wrote:

> I've found an odd bug.  I think this is Tomas' territory, but I could be
> wrong.  I've already opened an issue on codeplex (
> http://ironruby.codeplex.com/workitem/4957), but I figured I'd mention it
> here to generate some discussion.
> First, here's a quick repro of the bug:
> class File2 < File
>   def initialize
>     super("foobar.txt")
>   end
> end
> File2.new
> # TypeError: can't convert String into Fixnum
> What's going on here?  Well, it looks like IronRuby has arbitrarily picked
> a constructor overload to use when it finds a call to super.  If I instead
> put "super(1)", it would work just fine.  This same problem seems to plague
> any RubyClass that was implemented in C# using the IronRuby library APIs.
> Could someone give me a sanity check, please?  You'll notice that the code
> snippet above works just fine on MRI, so I don't think I've lost my marbles
> just yet :).
> -Charles
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20100730/7c7acdda/attachment.html>

More information about the Ironruby-core mailing list