for mod_parrot i want to support both passing both PMCs and native types
to the apache API, depending on the HLL. MMD was doing a great
job handling this for me until i ran into a problem.
given the following methods:
.sub bar method, @MULTI(Foo, string)
.sub bar method, @MULTI(Foo, pmc)
.sub bar method, @MULTI(Foo)
and assuming 'Foo' is an object PMC, here's what happens when i call
'bar' with various arguments:
$I0 = find_type 'Foo'
$P0 = new $I0
$P0.'bar'() # calls the empty arg version of bar
$P0.'bar'("a string") # calls the string version of bar
$P1 = new PerlString
$P1 = "a perl string"
$P0.'bar'($P1) # XXX calls the empty arg version of bar
the pmc version of bar() is never called, even when passing a PMC. if i
change the prototype to @MULTI(Foo, PerlString), i can pass the PerlString
to that, but i'd prefer to be able to pass any arbitrary PMC without
explicitly specifying its type in the method.