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++;
}