Ivan Porto Carrero
2009-May-20 06:54 UTC
[Ironruby-core] interface generic w/ generic methods
Hi
I''m observing the following behavior when I try to implement a CLR
interface
with generic method definitions.
So let''s say an interface contains the following method definition
public interface IRubyEngine {
T CreateInstance<T>(RubyClass rubyClass);
}
in ruby
class MyEngine
include IRubyEngine
end
So far so good nothing has actually been created yet.
MyEngine.new => raises
(master) ? ir
IronRuby 0.4.0.0 on .NET 2.0.50727.4918
Copyright (c) Microsoft Corporation. All rights reserved.
>>> require ''bin/System.Web.Mvc.IronRuby.dll''
=> true>>> class MyEngine
... include System::Web::Mvc::IronRuby::Core::IRubyEngine
... end
=> MyEngine>>> MyEngine.new
mscorlib:0:in `_TermCreateClass'': Method
''ExecuteFile'' in type
''IronRuby.Classes.Object$1'' from assembly
''Snippets.scripting,
Version=0.0.0.
0, Culture=neutral, PublicKeyToken=null'' does not have an
implementation.
(System::TypeLoadException)
from mscorlib:0:in `CreateTypeNoLock''
from mscorlib:0:in `CreateType''
from
c:\tools\ironruby\ndp\fx\src\core\microsoft\scripting\Actions\DynamicMetaObjectBinder.cs:96:in
`Bind''
from
c:\tools\ironruby\ndp\fx\src\core\microsoft\scripting\Actions\CallSiteBinder.cs:79:in
`BindDelegate''
from :0
>>> exit
in the console output above it complains about a different method but the
idea is the same. that method def was T ExecuteFile<T>(string path, bool
throwIfNotExist);
Do I put this on codeplex or is that the expected behavior?
---
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto Carrero
Blog: http://flanders.co.nz
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/ironruby-core/attachments/20090520/3a30eff4/attachment.html>
Two points: 1) We should probably have a clearer error message in this case. 2)
That seems to be a bug since the behavior is different if IRubyEngine declares
non-generic methods.
Please file a bug on CP with both points.
JD
?there is no try
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at
rubyforge.org] On Behalf Of Ivan Porto Carrero
Sent: Tuesday, May 19, 2009 11:54 PM
To: ironruby-core
Subject: [Ironruby-core] interface generic w/ generic methods
Hi
I''m observing the following behavior when I try to implement a CLR
interface with generic method definitions.
So let''s say an interface contains the following method definition
public interface IRubyEngine {
T CreateInstance<T>(RubyClass rubyClass);
}
in ruby
class MyEngine
include IRubyEngine
end
So far so good nothing has actually been created yet.
MyEngine.new => raises
(master) ? ir
IronRuby 0.4.0.0 on .NET 2.0.50727.4918
Copyright (c) Microsoft Corporation. All rights reserved.
>>> require ''bin/System.Web.Mvc.IronRuby.dll''
=> true>>> class MyEngine
... include System::Web::Mvc::IronRuby::Core::IRubyEngine
... end
=> MyEngine>>> MyEngine.new
mscorlib:0:in `_TermCreateClass'': Method
''ExecuteFile'' in type
''IronRuby.Classes.Object$1'' from assembly
''Snippets.scripting, Version=0.0.0.
0, Culture=neutral, PublicKeyToken=null'' does not have an
implementation. (System::TypeLoadException)
from mscorlib:0:in `CreateTypeNoLock''
from mscorlib:0:in `CreateType''
from
c:\tools\ironruby\ndp\fx\src\core\microsoft\scripting\Actions\DynamicMetaObjectBinder.cs:96:in
`Bind''
from
c:\tools\ironruby\ndp\fx\src\core\microsoft\scripting\Actions\CallSiteBinder.cs:79:in
`BindDelegate''
from :0
>>> exit
in the console output above it complains about a different method but the idea
is the same. that method def was T ExecuteFile<T>(string path, bool
throwIfNotExist);
Do I put this on codeplex or is that the expected behavior?
---
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto Carrero
Blog: http://flanders.co.nz
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/ironruby-core/attachments/20090520/9802bb3f/attachment.html>