File tree Expand file tree Collapse file tree 8 files changed +116
-3
lines changed Expand file tree Collapse file tree 8 files changed +116
-3
lines changed Original file line number Diff line number Diff line change @@ -242,6 +242,11 @@ val for_all2_no_exn :
242
242
('a -> 'b -> bool) ->
243
243
bool
244
244
245
+ val for_alli :
246
+ 'a array ->
247
+ (int -> 'a -> bool) ->
248
+ bool
249
+
245
250
val map :
246
251
'a array ->
247
252
('a -> 'b) ->
@@ -501,6 +506,14 @@ let rec unsafe_loop index len p xs ys =
501
506
(Array.unsafe_get ys index) &&
502
507
unsafe_loop (succ index) len p xs ys
503
508
509
+ let for_alli a p =
510
+ let n = Array.length a in
511
+ let rec loop i =
512
+ if i = n then true
513
+ else if p i (Array.unsafe_get a i) then loop (succ i)
514
+ else false in
515
+ loop 0
516
+
504
517
let for_all2_no_exn xs ys p =
505
518
let len_xs = Array.length xs in
506
519
let len_ys = Array.length ys in
Original file line number Diff line number Diff line change @@ -1338,6 +1338,11 @@ val for_all2_no_exn :
1338
1338
('a -> 'b -> bool) ->
1339
1339
bool
1340
1340
1341
+ val for_alli :
1342
+ 'a array ->
1343
+ (int -> 'a -> bool) ->
1344
+ bool
1345
+
1341
1346
val map :
1342
1347
'a array ->
1343
1348
('a -> 'b) ->
@@ -1597,6 +1602,14 @@ let rec unsafe_loop index len p xs ys =
1597
1602
(Array.unsafe_get ys index) &&
1598
1603
unsafe_loop (succ index) len p xs ys
1599
1604
1605
+ let for_alli a p =
1606
+ let n = Array.length a in
1607
+ let rec loop i =
1608
+ if i = n then true
1609
+ else if p i (Array.unsafe_get a i) then loop (succ i)
1610
+ else false in
1611
+ loop 0
1612
+
1600
1613
let for_all2_no_exn xs ys p =
1601
1614
let len_xs = Array.length xs in
1602
1615
let len_ys = Array.length ys in
Original file line number Diff line number Diff line change @@ -242,6 +242,11 @@ val for_all2_no_exn :
242
242
('a -> 'b -> bool) ->
243
243
bool
244
244
245
+ val for_alli :
246
+ 'a array ->
247
+ (int -> 'a -> bool) ->
248
+ bool
249
+
245
250
val map :
246
251
'a array ->
247
252
('a -> 'b) ->
@@ -501,6 +506,14 @@ let rec unsafe_loop index len p xs ys =
501
506
(Array.unsafe_get ys index) &&
502
507
unsafe_loop (succ index) len p xs ys
503
508
509
+ let for_alli a p =
510
+ let n = Array.length a in
511
+ let rec loop i =
512
+ if i = n then true
513
+ else if p i (Array.unsafe_get a i) then loop (succ i)
514
+ else false in
515
+ loop 0
516
+
504
517
let for_all2_no_exn xs ys p =
505
518
let len_xs = Array.length xs in
506
519
let len_ys = Array.length ys in
Original file line number Diff line number Diff line change @@ -6971,6 +6971,11 @@ val for_all2_no_exn :
6971
6971
('a -> 'b -> bool) ->
6972
6972
bool
6973
6973
6974
+ val for_alli :
6975
+ 'a array ->
6976
+ (int -> 'a -> bool) ->
6977
+ bool
6978
+
6974
6979
val map :
6975
6980
'a array ->
6976
6981
('a -> 'b) ->
@@ -7230,6 +7235,14 @@ let rec unsafe_loop index len p xs ys =
7230
7235
(Array.unsafe_get ys index) &&
7231
7236
unsafe_loop (succ index) len p xs ys
7232
7237
7238
+ let for_alli a p =
7239
+ let n = Array.length a in
7240
+ let rec loop i =
7241
+ if i = n then true
7242
+ else if p i (Array.unsafe_get a i) then loop (succ i)
7243
+ else false in
7244
+ loop 0
7245
+
7233
7246
let for_all2_no_exn xs ys p =
7234
7247
let len_xs = Array.length xs in
7235
7248
let len_ys = Array.length ys in
Original file line number Diff line number Diff line change @@ -66551,6 +66551,11 @@ val for_all2_no_exn :
66551
66551
('a -> 'b -> bool) ->
66552
66552
bool
66553
66553
66554
+ val for_alli :
66555
+ 'a array ->
66556
+ (int -> 'a -> bool) ->
66557
+ bool
66558
+
66554
66559
val map :
66555
66560
'a array ->
66556
66561
('a -> 'b) ->
@@ -66810,6 +66815,14 @@ let rec unsafe_loop index len p xs ys =
66810
66815
(Array.unsafe_get ys index) &&
66811
66816
unsafe_loop (succ index) len p xs ys
66812
66817
66818
+ let for_alli a p =
66819
+ let n = Array.length a in
66820
+ let rec loop i =
66821
+ if i = n then true
66822
+ else if p i (Array.unsafe_get a i) then loop (succ i)
66823
+ else false in
66824
+ loop 0
66825
+
66813
66826
let for_all2_no_exn xs ys p =
66814
66827
let len_xs = Array.length xs in
66815
66828
let len_ys = Array.length ys in
@@ -88737,7 +88750,10 @@ and expression_desc cxt ~(level:int) f x : cxt =
88737
88750
fields el
88738
88751
(fun x -> Js_op.Lit (Ext_ident.convert x) ))))
88739
88752
(*name convention of Record is slight different from modules*)
88740
- | Caml_block(el,_, _, Blk_record fields) ->
88753
+ | Caml_block(el,mutable_flag, _, Blk_record fields) ->
88754
+ if Ext_array.for_alli fields (fun i v -> string_of_int i = v) then
88755
+ expression_desc cxt ~level f (Array (el, mutable_flag))
88756
+ else
88741
88757
expression_desc cxt ~level f (Object
88742
88758
((Ext_list.combine_array fields el (fun i -> Js_op.Lit i))))
88743
88759
Original file line number Diff line number Diff line change @@ -66551,6 +66551,11 @@ val for_all2_no_exn :
66551
66551
('a -> 'b -> bool) ->
66552
66552
bool
66553
66553
66554
+ val for_alli :
66555
+ 'a array ->
66556
+ (int -> 'a -> bool) ->
66557
+ bool
66558
+
66554
66559
val map :
66555
66560
'a array ->
66556
66561
('a -> 'b) ->
@@ -66810,6 +66815,14 @@ let rec unsafe_loop index len p xs ys =
66810
66815
(Array.unsafe_get ys index) &&
66811
66816
unsafe_loop (succ index) len p xs ys
66812
66817
66818
+ let for_alli a p =
66819
+ let n = Array.length a in
66820
+ let rec loop i =
66821
+ if i = n then true
66822
+ else if p i (Array.unsafe_get a i) then loop (succ i)
66823
+ else false in
66824
+ loop 0
66825
+
66813
66826
let for_all2_no_exn xs ys p =
66814
66827
let len_xs = Array.length xs in
66815
66828
let len_ys = Array.length ys in
@@ -88737,7 +88750,10 @@ and expression_desc cxt ~(level:int) f x : cxt =
88737
88750
fields el
88738
88751
(fun x -> Js_op.Lit (Ext_ident.convert x) ))))
88739
88752
(*name convention of Record is slight different from modules*)
88740
- | Caml_block(el,_, _, Blk_record fields) ->
88753
+ | Caml_block(el,mutable_flag, _, Blk_record fields) ->
88754
+ if Ext_array.for_alli fields (fun i v -> string_of_int i = v) then
88755
+ expression_desc cxt ~level f (Array (el, mutable_flag))
88756
+ else
88741
88757
expression_desc cxt ~level f (Object
88742
88758
((Ext_list.combine_array fields el (fun i -> Js_op.Lit i))))
88743
88759
Original file line number Diff line number Diff line change @@ -9333,6 +9333,11 @@ val for_all2_no_exn :
9333
9333
('a -> 'b -> bool) ->
9334
9334
bool
9335
9335
9336
+ val for_alli :
9337
+ 'a array ->
9338
+ (int -> 'a -> bool) ->
9339
+ bool
9340
+
9336
9341
val map :
9337
9342
'a array ->
9338
9343
('a -> 'b) ->
@@ -9592,6 +9597,14 @@ let rec unsafe_loop index len p xs ys =
9592
9597
(Array.unsafe_get ys index) &&
9593
9598
unsafe_loop (succ index) len p xs ys
9594
9599
9600
+ let for_alli a p =
9601
+ let n = Array.length a in
9602
+ let rec loop i =
9603
+ if i = n then true
9604
+ else if p i (Array.unsafe_get a i) then loop (succ i)
9605
+ else false in
9606
+ loop 0
9607
+
9595
9608
let for_all2_no_exn xs ys p =
9596
9609
let len_xs = Array.length xs in
9597
9610
let len_ys = Array.length ys in
Original file line number Diff line number Diff line change @@ -6627,6 +6627,11 @@ val for_all2_no_exn :
6627
6627
('a -> 'b -> bool) ->
6628
6628
bool
6629
6629
6630
+ val for_alli :
6631
+ 'a array ->
6632
+ (int -> 'a -> bool) ->
6633
+ bool
6634
+
6630
6635
val map :
6631
6636
'a array ->
6632
6637
('a -> 'b) ->
@@ -6886,6 +6891,14 @@ let rec unsafe_loop index len p xs ys =
6886
6891
(Array.unsafe_get ys index) &&
6887
6892
unsafe_loop (succ index) len p xs ys
6888
6893
6894
+ let for_alli a p =
6895
+ let n = Array.length a in
6896
+ let rec loop i =
6897
+ if i = n then true
6898
+ else if p i (Array.unsafe_get a i) then loop (succ i)
6899
+ else false in
6900
+ loop 0
6901
+
6889
6902
let for_all2_no_exn xs ys p =
6890
6903
let len_xs = Array.length xs in
6891
6904
let len_ys = Array.length ys in
@@ -381947,7 +381960,10 @@ and expression_desc cxt ~(level:int) f x : cxt =
381947
381960
fields el
381948
381961
(fun x -> Js_op.Lit (Ext_ident.convert x) ))))
381949
381962
(*name convention of Record is slight different from modules*)
381950
- | Caml_block(el,_, _, Blk_record fields) ->
381963
+ | Caml_block(el,mutable_flag, _, Blk_record fields) ->
381964
+ if Ext_array.for_alli fields (fun i v -> string_of_int i = v) then
381965
+ expression_desc cxt ~level f (Array (el, mutable_flag))
381966
+ else
381951
381967
expression_desc cxt ~level f (Object
381952
381968
((Ext_list.combine_array fields el (fun i -> Js_op.Lit i))))
381953
381969
You can’t perform that action at this time.
0 commit comments