# New Ticket Created by  Patrick R. Michaud 
# Please include the string:  [perl #41047]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=41047 >


It appears that the :multi pragma doesn't work if :outer is present.
Sample code:

    $ cat x.pir
    .sub main :main
        new $P0, .String
        assign $P0, 'arg0'
        new $P1, .String
        assign $P1, 'arg1'
    
        $P99 = "foo"($P0)
    
        $P99 = "foo"($P0, $P1)
    
        $P99 = "bar"($P0)
    
        $P99 = "bar"($P0, $P1)
    .end
    
    
    .sub "foo" :multi(_)
        .param pmc x
        print "foo(_)  : "
        say x
        .return (x)
    .end
    
    .sub "foo" :multi(_,_)
        .param pmc x
        .param pmc y
        print "foo(_,_): "
        print x
        print " "
        say y
        .return (y)
    .end
    
    .sub "bar" :outer("main") :multi(_)
        .param pmc x
        print "bar(_)  : "
        say x
        .return (x)
    .end
    
    .sub "bar" :outer("main") :multi(_,_)
        .param pmc x
        .param pmc y
        print "bar(_,_): "
        print x
        print " "
        say y
        .return (y)
    .end
    $ ./parrot x.pir
    foo(_)  : arg0
    foo(_,_): arg0 arg1
    Null PMC access in invoke()
    current instr.: 'main' pc 44 (x.pir:11)
    $

Pm

Reply via email to