Will Coleda (via RT) wrote:
# New Ticket Created by Will Coleda # Please include the string: [perl #59704] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=59704 >


sub main :main
 $P1 = new 'Integer'
 $P1 = 2
 $P2 = new 'Integer'
 $P2 = 3
 $P3 = $P1 ** $P2
 $S0 = typeof $P3
 say $S0
 $P3 = $P1 ** 3
 $S0 = typeof $P3
 say $S0
end

generates "Float\nInteger", I'm pretty sure that before the MMD merge it
would have been "Integer\nInteger".

I've TODO'd some partcl tests until this is resolved.

The semantics of inherited vtable functions and multiple dispatch changed in the MMD branch. In the old system, an inherited vtable function would be completely ignored for the small subset of vtable functions that commonly multiply dispatch. The new semantics respect inherited vtable functions.

There was a VTABLE 'pow' in scalar that had previously been ignored in Integer, but was now being used (it called 'set_number_native' which morphed the destination to a Float). So, I changed scalar's 'pow' to a MULTI in r31880, and it works fine.

Allison

Reply via email to