[Ironpython-users] TryGetNonInheritedValueHelper/TryGetNonInheritedMethodHelper

Slide slide.o.mix at gmail.com
Thu Feb 9 14:11:40 CET 2012


Hmmm, ok, that may be beyond my current knowledge of the internals :-)

On Wed, Feb 8, 2012 at 10:36 PM, Dino Viehland <dinov at microsoft.com> wrote:

>  The reason we don't keep looking through the type hierarchy is because
> we should have generated code which does the  dispatch to the base method -
> that's much more efficient then searching at doing a dynamic invoke at
> runtime.  We generate the code in
> NewTypeMaker.EmitBaseClassCallCheckForProperties which ultimately calls
> EmitBaseMethodDispatch which checks if we can do the base-method dispatch
> and emits the code which throws when the method is abstract.
>
> I think what's probably happening is that we're overriding the interface
> slot and the class slot independently.  The class slot dispatches to the
> base virtual method correctly, but we see the interface method as abstract
> and emit code to throw.  EmitBaseMethodDispatch probably just needs to do a
> Type.GetInterfaceMap on the base type and map it to the correct base method
> if the method is abstract and the method is declared on an interface type.
>
> *From:* ironpython-users-bounces+dinov=exchange.microsoft.com at python.org [
> mailto:ironpython-users-bounces+dinov=exchange.microsoft.com at python.org<ironpython-users-bounces+dinov=exchange.microsoft.com at python.org>]
> *On Behalf Of *Slide
> *Sent:* Wednesday, February 08, 2012 7:56 PM
> *To:* ironpython-users at python.org
> *Subject:* [Ironpython-users]
> TryGetNonInheritedValueHelper/TryGetNonInheritedMethodHelper
>
> While looking a little bit into [1] I found that the two methods above in
> UserTypeOps.cs stop when they get to .NET types. If I remove the condition
> to stop at .NET types, the issue no longer appears. Is there a reason that
> these two methods are not looking at .NET types?
>
>
> Thanks,
>
> slide
>
> [1]  *http://ironpython.codeplex.com/workitem/32166*<http://ironpython.codeplex.com/workitem/32166>
>
>
> --
> Website: *http://earl-of-code.com* <http://earl-of-code.com>
>
>



-- 
Website: http://earl-of-code.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20120209/57bc5344/attachment.html>


More information about the Ironpython-users mailing list