Author: jonathan Date: Tue Jan 6 10:05:35 2009 New Revision: 35057 Modified: branches/rvar/languages/perl6/src/parser/actions.pm Log: [rakudo] Re-instate functionality of ;;, and set multi_invocant on parameters. This makes some tests that passed for the wrong reasons before now fail, which I'll resolve soon. Modified: branches/rvar/languages/perl6/src/parser/actions.pm ============================================================================== --- branches/rvar/languages/perl6/src/parser/actions.pm (original) +++ branches/rvar/languages/perl6/src/parser/actions.pm Tue Jan 6 10:05:35 2009 @@ -926,7 +926,8 @@ ## loop through parameters of signature my $arity := $<parameter> ?? +@($<parameter>) !! 0; $block.arity($arity); - my $i := 0; + my $i := 0; + my $multi_inv := 1; while $i < $arity { my $var := $( $<parameter>[$i] ); my $name := $var.name(); @@ -967,6 +968,9 @@ } $sigparam.push(PAST::Val.new(:value($readtype),:named('readtype'))); + $sigparam.push(PAST::Val.new(:value($multi_inv),:named('multi_invocant'))); + if substr($<param_sep>[$i], 0, 2) eq ';;' { $multi_inv := 0; } + $loadinit.push($sigparam); $i++; }