File tree Expand file tree Collapse file tree 2 files changed +16
-11
lines changed Expand file tree Collapse file tree 2 files changed +16
-11
lines changed Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ class QAST::Node {
31
31
32
32
method named ($ value = NO_VALUE) {
33
33
if $ value =:= NO_VALUE {
34
- " "
34
+ NQPMu
35
35
}
36
36
else {
37
37
self . HOW . mixin(self , QAST ::SpecialArg);
Original file line number Diff line number Diff line change @@ -858,15 +858,19 @@ my class MASTCompilerInstance {
858
858
my int $ pos_slurpy := 0 ;
859
859
my int $ named_slurpy := 0 ;
860
860
for $ block . params {
861
- if $ _ . named {
862
- # Don't count towards arity or count.
863
- if $ _ . slurpy { $ named_slurpy := 1 }
864
- }
865
- elsif $ _ . slurpy {
866
- if $ pos_slurpy {
867
- nqp ::die(" Only one slurpy positional allowed" );
861
+ if $ _ . slurpy {
862
+ if $ _ . named {
863
+ $ named_slurpy := 1
864
+ }
865
+ else {
866
+ if $ pos_slurpy {
867
+ nqp ::die(" Only one slurpy positional allowed" );
868
+ }
869
+ $ pos_slurpy := 1 ;
868
870
}
869
- $ pos_slurpy := 1 ;
871
+ }
872
+ elsif nqp :: defined ($ _ . named) {
873
+ # Don't count towards arity or count.
870
874
}
871
875
elsif $ _ . default {
872
876
if $ pos_slurpy {
@@ -899,7 +903,7 @@ my class MASTCompilerInstance {
899
903
my $ param_kind := self . type_to_register_kind($ var . returns );
900
904
my $ opslot := @ kind_to_op_slot [$ param_kind ];
901
905
902
- my $ opname_index := ($ var . named
906
+ my $ opname_index := (nqp :: defined ( $ var . named)
903
907
?? (nqp ::islist($ var . named) ?? 16 !! 8 )
904
908
!! 0 )
905
909
+ ($ var . default ?? 4 !! 0 ) + $ opslot ;
@@ -917,7 +921,8 @@ my class MASTCompilerInstance {
917
921
$ opname := " param_sp" ;
918
922
}
919
923
}
920
- elsif $ var . named -> $ name {
924
+ elsif nqp :: defined ($ var . named) {
925
+ my $ name := $ var . named;
921
926
if nqp ::islist($ name ) {
922
927
unless nqp :: elems ($ name ) == 2 {
923
928
nqp ::die(" Can only support a single fallback name for a named parameter" );
You can’t perform that action at this time.
0 commit comments