@@ -10,7 +10,7 @@ let debugLogTypeArgContext {env; typeArgs; typeParams} =
10
10
let rec hasTvar (ty : Types.type_expr ) : bool =
11
11
match ty.desc with
12
12
| Tvar _ -> true
13
- | Tarrow (_ , ty1 , ty2 , _ ) -> hasTvar ty1 || hasTvar ty2
13
+ | Tarrow (_ , ty1 , ty2 , _ , _ ) -> hasTvar ty1 || hasTvar ty2
14
14
| Ttuple tyl -> List. exists hasTvar tyl
15
15
| Tconstr (_ , tyl , _ ) -> List. exists hasTvar tyl
16
16
| Tobject (ty , _ ) -> hasTvar ty
@@ -116,8 +116,8 @@ let instantiateType ~typeParams ~typeArgs (t : Types.type_expr) =
116
116
| Tsubst t -> loop t
117
117
| Tvariant rd -> {t with desc = Tvariant (rowDesc rd)}
118
118
| Tnil -> t
119
- | Tarrow (lbl , t1 , t2 , c ) ->
120
- {t with desc = Tarrow (lbl, loop t1, loop t2, c)}
119
+ | Tarrow (lbl , t1 , t2 , c , arity ) ->
120
+ {t with desc = Tarrow (lbl, loop t1, loop t2, c, arity )}
121
121
| Ttuple tl -> {t with desc = Ttuple (tl |> List. map loop)}
122
122
| Tobject (t , r ) -> {t with desc = Tobject (loop t, r)}
123
123
| Tfield (n , k , t1 , t2 ) -> {t with desc = Tfield (n, k, loop t1, loop t2)}
@@ -169,8 +169,8 @@ let instantiateType2 ?(typeArgContext : typeArgContext option)
169
169
| Tsubst t -> loop t
170
170
| Tvariant rd -> {t with desc = Tvariant (rowDesc rd)}
171
171
| Tnil -> t
172
- | Tarrow (lbl , t1 , t2 , c ) ->
173
- {t with desc = Tarrow (lbl, loop t1, loop t2, c)}
172
+ | Tarrow (lbl , t1 , t2 , c , arity ) ->
173
+ {t with desc = Tarrow (lbl, loop t1, loop t2, c, arity )}
174
174
| Ttuple tl -> {t with desc = Ttuple (tl |> List. map loop)}
175
175
| Tobject (t , r ) -> {t with desc = Tobject (loop t, r)}
176
176
| Tfield (n , k , t1 , t2 ) -> {t with desc = Tfield (n, k, loop t1, loop t2)}
@@ -242,7 +242,7 @@ let rec extractFunctionType ~env ~package typ =
242
242
let rec loop ~env acc (t : Types.type_expr ) =
243
243
match t.desc with
244
244
| Tlink t1 | Tsubst t1 | Tpoly (t1 , [] ) -> loop ~env acc t1
245
- | Tarrow (label , tArg , tRet , _ ) -> loop ~env ((label, tArg) :: acc) tRet
245
+ | Tarrow (label , tArg , tRet , _ , _ ) -> loop ~env ((label, tArg) :: acc) tRet
246
246
| Tconstr (Pident {name = "function$" } , [t ; _ ], _ ) ->
247
247
extractFunctionType ~env ~package t
248
248
| Tconstr (path , typeArgs , _ ) -> (
@@ -281,7 +281,7 @@ let rec extractFunctionType2 ?typeArgContext ~env ~package typ =
281
281
let rec loop ?typeArgContext ~env acc (t : Types.type_expr ) =
282
282
match t.desc with
283
283
| Tlink t1 | Tsubst t1 | Tpoly (t1 , [] ) -> loop ?typeArgContext ~env acc t1
284
- | Tarrow (label , tArg , tRet , _ ) ->
284
+ | Tarrow (label , tArg , tRet , _ , _ ) ->
285
285
loop ?typeArgContext ~env ((label, tArg) :: acc) tRet
286
286
| Tconstr (Pident {name = "function$" } , [t ; _ ], _ ) ->
287
287
extractFunctionType2 ?typeArgContext ~env ~package t
@@ -912,12 +912,12 @@ let getArgs ~env (t : Types.type_expr) ~full =
912
912
| Tpoly (t1, [] )
913
913
| Tconstr (Pident {name = "function$" } , [t1 ; _ ], _ ) ->
914
914
getArgsLoop ~full ~env ~current ArgumentPosition t1
915
- | Tarrow (Labelled l , tArg , tRet , _ ) ->
915
+ | Tarrow (Labelled l , tArg , tRet , _ , _ ) ->
916
916
(SharedTypes.Completable. Labelled l, tArg)
917
917
:: getArgsLoop ~full ~env ~current ArgumentPosition tRet
918
- | Tarrow (Optional l , tArg , tRet , _ ) ->
918
+ | Tarrow (Optional l , tArg , tRet , _ , _ ) ->
919
919
(Optional l, tArg) :: getArgsLoop ~full ~env ~current ArgumentPosition tRet
920
- | Tarrow (Nolabel, tArg , tRet , _ ) ->
920
+ | Tarrow (Nolabel, tArg , tRet , _ , _ ) ->
921
921
(Unlabelled {argumentPosition = currentArgumentPosition}, tArg)
922
922
:: getArgsLoop ~full ~env
923
923
~current ArgumentPosition:(currentArgumentPosition + 1 )
0 commit comments