overriding unsafe methods


When inheriting of a class with unsafe methods there are some problems
public abstract class DrawableOverrule : Overrule
public virtual int SetAttributes(Drawable drawable, DrawableTraits traits);
[return: MarshalAs(UnmanagedType.U1)]
public virtual bool WorldDraw(Drawable drawable, WorldDraw wd);
When subclassing this class in IronRuby it isn't allowed to call super in this method because that will throw an error
class MySubClass < DrawableOverride
def world_draw(drawable, wd)
   super  # yields an exception on RubyOverloadResolver.MapSpecialParamaters()
The expected behaviour is probably that there is no exception and things work
Closed Jul 22, 2009 at 11:03 PM by jredville
regression spec added


TomasMatousek wrote Jun 2, 2009 at 2:53 AM

This is an issue for general super calls, marshalling is not relevant - the assertion needs to be fixed.
We also emitted invalid IL the super method was abstract.