Skip to content

Commit 7abc1c4

Browse files
committed
type annotations to specialize code
1 parent 2de9e2f commit 7abc1c4

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

typing/ctype.ml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -397,10 +397,11 @@ let rec class_type_arity =
397397
(*******************************************)
398398
(* Miscellaneous operations on row types *)
399399
(*******************************************)
400+
type row_fields = (Asttypes.label * Types.row_field) list
401+
type row_pairs = (Asttypes.label * Types.row_field * Types.row_field) list
402+
let sort_row_fields : row_fields -> row_fields = List.sort (fun (p,_) (q,_) -> compare (p : string) q)
400403

401-
let sort_row_fields = List.sort (fun (p,_) (q,_) -> compare p q)
402-
403-
let rec merge_rf r1 r2 pairs fi1 fi2 =
404+
let rec merge_rf (r1 : row_fields) (r2 : row_fields) (pairs : row_pairs) (fi1 : row_fields) (fi2 : row_fields) =
404405
match fi1, fi2 with
405406
(l1,f1 as p1)::fi1', (l2,f2 as p2)::fi2' ->
406407
if l1 = l2 then merge_rf r1 r2 ((l1,f1,f2)::pairs) fi1' fi2' else
@@ -409,7 +410,7 @@ let rec merge_rf r1 r2 pairs fi1 fi2 =
409410
| [], _ -> (List.rev r1, List.rev_append r2 fi2, pairs)
410411
| _, [] -> (List.rev_append r1 fi1, List.rev r2, pairs)
411412

412-
let merge_row_fields fi1 fi2 =
413+
let merge_row_fields (fi1 : row_fields) (fi2 : row_fields) : row_fields * row_fields * row_pairs =
413414
match fi1, fi2 with
414415
[], _ | _, [] -> (fi1, fi2, [])
415416
| [p1], _ when not (List.mem_assoc (fst p1) fi2) -> (fi1, fi2, [])

0 commit comments

Comments
 (0)