Ticket #199 (closed todo: fixed)
fix handling of vtable methods
|Reported by:||whiteknight||Owned by:||whiteknight|
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.