#199: fix handling of vtable methods
-------------------------+--------------------------------------------------
 Reporter:  whiteknight  |       Owner:  whiteknight
     Type:  todo         |      Status:  new        
 Priority:  normal       |   Milestone:  0.9.1      
Component:  imcc         |     Version:             
 Severity:  medium       |    Keywords:             
     Lang:               |       Patch:             
 Platform:  all          |  
-------------------------+--------------------------------------------------
 In object.pmc, all vtable overrides are invoked with
 Parrot_call_meth_fromc_args. This function passes SELF as an invocant to
 all vtable overrides in PIR. This means that any vtable interfaces that
 aren't also flagged as being methods (either explicitly with :method or
 implicitly by referencing self) will throw an exception because there are
 too many parameters passed (the normal parameters + 1 for the invocant).

 We should update vtable overrides in PIR to always be treated as if they
 have :method as well. I can't imagine a use case where we actually don't
 want a reference to the invocant to be passed. I think this should be
 relatively easy to hack into IMCC, unless somebody comes up with a
 disagreement.

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/199>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to