File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -379,7 +379,30 @@ class QAST::Compiler is HLL::Compiler {
379
379
$ decls . push_pirop(' .param pmc CALL_SIG :call_sig' );
380
380
}
381
381
else {
382
+ my @ pos_params ;
383
+ my @ named_params ;
384
+ my $ slurpy_pos ;
385
+ my $ slurpy_named ;
382
386
for $ block . params {
387
+ if $ _ . slurpy && $ _ . named {
388
+ $ slurpy_named := $ _ ;
389
+ }
390
+ elsif $ _ . slurpy {
391
+ $ slurpy_pos := $ _ ;
392
+ }
393
+ elsif $ _ . named {
394
+ nqp :: push (@ named_params , $ _ );
395
+ }
396
+ else {
397
+ nqp :: push (@ pos_params , $ _ );
398
+ }
399
+ }
400
+ my @ sorted_params ;
401
+ nqp :: push (@ sorted_params , $ _ ) for @ pos_params ;
402
+ nqp :: push (@ sorted_params , $ slurpy_pos ) if $ slurpy_pos ;
403
+ nqp :: push (@ sorted_params , $ _ ) for @ named_params ;
404
+ nqp :: push (@ sorted_params , $ slurpy_named ) if $ slurpy_named ;
405
+ for @ sorted_params {
383
406
my @ param := [' .param' ];
384
407
385
408
my $ reg_type ;
You can’t perform that action at this time.
0 commit comments