Charles Strahan
2010-Jul-29 06:03 UTC
[Ironruby-core] super(foo) doesn''t work correctly when subclassing Ruby classes implemented in C#
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/20100729/d0a5b2f8/attachment.html>
Charles Strahan
2010-Jul-30 14:23 UTC
[Ironruby-core] super(foo) doesn''t work correctly when subclassing Ruby classes implemented in C#
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. Cheers, -Charles 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>