@@ -894,16 +894,18 @@ class QRegex::P6Regex::Actions is HLL::Actions {
894
894
if $ rxtype eq ' concat' || $ rxtype eq ' goal' || $ rxtype eq ' conjseq' {
895
895
for $ ast . list {
896
896
my % x := capnames($ _ , $ count );
897
- for % x { % capnames {$ _ . key } := + % capnames {$ _ . key } + $ _ . value ; }
897
+ for % x {
898
+ % capnames {$ _ . key } := nqp ::add_i((% capnames {$ _ . key } // 0 ), $ _ . value );
899
+ }
898
900
$ count := % x {' ' };
899
901
}
900
902
}
901
903
elsif $ rxtype eq ' altseq' || $ rxtype eq ' alt' {
902
- my $ max := $ count ;
904
+ my int $ max := $ count ;
903
905
for $ ast . list {
904
906
my % x := capnames($ _ , $ count );
905
907
for % x {
906
- % capnames {$ _ . key } := + % capnames {$ _ . key } < 2 && % x {$ _ . key } == 1 ?? 1 !! 2 ;
908
+ % capnames {$ _ . key } := ( % capnames {$ _ . key } // 0 ) < 2 && % x {$ _ . key } == 1 ?? 1 !! 2 ;
907
909
}
908
910
$ max := % x {' ' } if % x {' ' } > $ max ;
909
911
}
@@ -914,7 +916,7 @@ class QRegex::P6Regex::Actions is HLL::Actions {
914
916
if $ name eq ' ' { $ name := $ count ; $ ast . name ($ name ); }
915
917
my @ names := nqp :: split (' =' , $ name );
916
918
for @ names {
917
- my $ n := nqp ::radix(10 , $ _ , 0 , 0 )[0 ];
919
+ my int $ n := nqp ::radix(10 , $ _ , 0 , 0 )[0 ];
918
920
if $ _ eq ' 0' || $ n > 0 {
919
921
$ count := $ n + 1 ;
920
922
% capnames {$ n } := 1
@@ -936,7 +938,7 @@ class QRegex::P6Regex::Actions is HLL::Actions {
936
938
}
937
939
}
938
940
my % x := capnames($ ast [0 ], $ count );
939
- for % x { % capnames {$ _ . key } := + % capnames {$ _ . key } + % x {$ _ . key } }
941
+ for % x { % capnames {$ _ . key } := nqp ::add_i(( % capnames {$ _ . key } // 0 ), % x {$ _ . key }) }
940
942
$ count := % x {' ' };
941
943
}
942
944
elsif $ rxtype eq ' quant' || $ rxtype eq ' dynquant' {
0 commit comments