Skip to content

Commit de65464

Browse files
committed
Adapt error messages to new uncurried representation.
1 parent 3699ea0 commit de65464

File tree

6 files changed

+100
-72
lines changed

6 files changed

+100
-72
lines changed

jscomp/ml/typecore.ml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2108,7 +2108,7 @@ and type_expect_ ?in_function ?(recarg=Rejected) env sexp ty_expected =
21082108
| Lident "Uncurried$" ->
21092109
let arity = Ast_uncurried.attributes_to_arity sexp.pexp_attributes in
21102110
let uncurried_typ = Ast_uncurried.mk_js_fn ~env ~arity (newvar()) in
2111-
unify_exp_types loc env uncurried_typ ty_expected
2111+
unify_exp_types loc env ty_expected uncurried_typ
21122112
| _ -> ());
21132113
type_construct env loc lid sarg ty_expected sexp.pexp_attributes
21142114
| Pexp_variant(l, sarg) ->
@@ -3666,16 +3666,6 @@ let report_error env ppf = function
36663666
fprintf ppf "Variable %s must occur on both sides of this | pattern"
36673667
(Ident.name id);
36683668
spellcheck_idents ppf id valid_idents
3669-
| Expr_type_clash (
3670-
(_, {desc = Tarrow _}) ::
3671-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),_,_),_,_)}) :: _
3672-
) ->
3673-
fprintf ppf "This function is a curried function where an uncurried function is expected"
3674-
| Expr_type_clash (
3675-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),a,_),_,_)}) ::
3676-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),b,_),_,_)}) :: _
3677-
) when a <> b ->
3678-
fprintf ppf "This function has %s but was expected %s" a b
36793669
| Expr_type_clash (
36803670
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),a,_),_,_)}) ::
36813671
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),b,_),_,_)}) :: _

jscomp/super_errors/super_typecore.ml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,12 @@ let print_expr_type_clash env trace ppf = begin
119119
show_extra_help ppf env trace;
120120
end
121121

122+
let reportArityMismatch ~arityA ~arityB ppf =
123+
fprintf ppf "This function expected @{<info>%s@} %s, but got @{<error>%s@}"
124+
arityA
125+
(if arityA = "1" then "argument" else "arguments")
126+
arityB
127+
122128
let reportJsFnArityMismatch ~arityA ~arityB ppf =
123129
let extractArity s =
124130
if Ext_string.starts_with s "arity" then
@@ -128,12 +134,9 @@ let reportJsFnArityMismatch ~arityA ~arityB ppf =
128134
else
129135
raise (Invalid_argument "Unrecognized arity type name.")
130136
in
131-
let firstNumber = extractArity arityA in
132-
fprintf ppf "This function expected @{<info>%s@} %s, but got @{<error>%s@}"
133-
firstNumber
134-
(if firstNumber = "1" then "argument" else "arguments")
135-
(extractArity arityB)
136-
137+
let arityA = extractArity arityA in
138+
let arityB = extractArity arityB in
139+
reportArityMismatch ~arityA ~arityB ppf
137140

138141
(* Pasted from typecore.ml. Needed for some cases in report_error below *)
139142
(* Records *)
@@ -177,13 +180,24 @@ let report_error env ppf = function
177180
| Expr_type_clash (
178181
(_, {desc = Tarrow _}) ::
179182
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),_,_),_,_)}) :: _
180-
) ->
183+
)
184+
| Expr_type_clash (
185+
(_, {desc = Tarrow _}) ::
186+
(_, {desc = Tconstr (Pident {name = "uncurried$"},_,_)}) :: _
187+
) ->
181188
fprintf ppf "This function is a curried function where an uncurried function is expected"
182189
| Expr_type_clash (
183190
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),arityA,_),_,_)}) ::
184191
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),arityB,_),_,_)}) :: _
185192
) when arityA <> arityB ->
186193
reportJsFnArityMismatch ~arityA ~arityB ppf
194+
| Expr_type_clash (
195+
(_, {desc = Tconstr (Pident {name = "uncurried$"},[_; tA],_)}) ::
196+
(_, {desc = Tconstr (Pident {name = "uncurried$"},[_; tB],_)}) :: _
197+
) when Ast_uncurried.type_to_arity tA <> Ast_uncurried.type_to_arity tB ->
198+
let arityA = Ast_uncurried.type_to_arity tA |> string_of_int in
199+
let arityB = Ast_uncurried.type_to_arity tB |> string_of_int in
200+
reportArityMismatch ~arityA ~arityB ppf
187201
| Expr_type_clash (
188202
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),a,_),_,_)}) ::
189203
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),b,_),_,_)}) :: _

lib/4.06.1/unstable/js_compiler.ml

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42977,7 +42977,7 @@ and type_expect_ ?in_function ?(recarg=Rejected) env sexp ty_expected =
4297742977
| Lident "Uncurried$" ->
4297842978
let arity = Ast_uncurried.attributes_to_arity sexp.pexp_attributes in
4297942979
let uncurried_typ = Ast_uncurried.mk_js_fn ~env ~arity (newvar()) in
42980-
unify_exp_types loc env uncurried_typ ty_expected
42980+
unify_exp_types loc env ty_expected uncurried_typ
4298142981
| _ -> ());
4298242982
type_construct env loc lid sarg ty_expected sexp.pexp_attributes
4298342983
| Pexp_variant(l, sarg) ->
@@ -44535,16 +44535,6 @@ let report_error env ppf = function
4453544535
fprintf ppf "Variable %s must occur on both sides of this | pattern"
4453644536
(Ident.name id);
4453744537
spellcheck_idents ppf id valid_idents
44538-
| Expr_type_clash (
44539-
(_, {desc = Tarrow _}) ::
44540-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),_,_),_,_)}) :: _
44541-
) ->
44542-
fprintf ppf "This function is a curried function where an uncurried function is expected"
44543-
| Expr_type_clash (
44544-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),a,_),_,_)}) ::
44545-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),b,_),_,_)}) :: _
44546-
) when a <> b ->
44547-
fprintf ppf "This function has %s but was expected %s" a b
4454844538
| Expr_type_clash (
4454944539
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),a,_),_,_)}) ::
4455044540
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),b,_),_,_)}) :: _
@@ -160688,6 +160678,12 @@ let print_expr_type_clash env trace ppf = begin
160688160678
show_extra_help ppf env trace;
160689160679
end
160690160680

160681+
let reportArityMismatch ~arityA ~arityB ppf =
160682+
fprintf ppf "This function expected @{<info>%s@} %s, but got @{<error>%s@}"
160683+
arityA
160684+
(if arityA = "1" then "argument" else "arguments")
160685+
arityB
160686+
160691160687
let reportJsFnArityMismatch ~arityA ~arityB ppf =
160692160688
let extractArity s =
160693160689
if Ext_string.starts_with s "arity" then
@@ -160697,12 +160693,9 @@ let reportJsFnArityMismatch ~arityA ~arityB ppf =
160697160693
else
160698160694
raise (Invalid_argument "Unrecognized arity type name.")
160699160695
in
160700-
let firstNumber = extractArity arityA in
160701-
fprintf ppf "This function expected @{<info>%s@} %s, but got @{<error>%s@}"
160702-
firstNumber
160703-
(if firstNumber = "1" then "argument" else "arguments")
160704-
(extractArity arityB)
160705-
160696+
let arityA = extractArity arityA in
160697+
let arityB = extractArity arityB in
160698+
reportArityMismatch ~arityA ~arityB ppf
160706160699

160707160700
(* Pasted from typecore.ml. Needed for some cases in report_error below *)
160708160701
(* Records *)
@@ -160746,13 +160739,24 @@ let report_error env ppf = function
160746160739
| Expr_type_clash (
160747160740
(_, {desc = Tarrow _}) ::
160748160741
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),_,_),_,_)}) :: _
160749-
) ->
160742+
)
160743+
| Expr_type_clash (
160744+
(_, {desc = Tarrow _}) ::
160745+
(_, {desc = Tconstr (Pident {name = "uncurried$"},_,_)}) :: _
160746+
) ->
160750160747
fprintf ppf "This function is a curried function where an uncurried function is expected"
160751160748
| Expr_type_clash (
160752160749
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),arityA,_),_,_)}) ::
160753160750
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),arityB,_),_,_)}) :: _
160754160751
) when arityA <> arityB ->
160755160752
reportJsFnArityMismatch ~arityA ~arityB ppf
160753+
| Expr_type_clash (
160754+
(_, {desc = Tconstr (Pident {name = "uncurried$"},[_; tA],_)}) ::
160755+
(_, {desc = Tconstr (Pident {name = "uncurried$"},[_; tB],_)}) :: _
160756+
) when Ast_uncurried.type_to_arity tA <> Ast_uncurried.type_to_arity tB ->
160757+
let arityA = Ast_uncurried.type_to_arity tA |> string_of_int in
160758+
let arityB = Ast_uncurried.type_to_arity tB |> string_of_int in
160759+
reportArityMismatch ~arityA ~arityB ppf
160756160760
| Expr_type_clash (
160757160761
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),a,_),_,_)}) ::
160758160762
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),b,_),_,_)}) :: _

lib/4.06.1/unstable/js_playground_compiler.ml

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42977,7 +42977,7 @@ and type_expect_ ?in_function ?(recarg=Rejected) env sexp ty_expected =
4297742977
| Lident "Uncurried$" ->
4297842978
let arity = Ast_uncurried.attributes_to_arity sexp.pexp_attributes in
4297942979
let uncurried_typ = Ast_uncurried.mk_js_fn ~env ~arity (newvar()) in
42980-
unify_exp_types loc env uncurried_typ ty_expected
42980+
unify_exp_types loc env ty_expected uncurried_typ
4298142981
| _ -> ());
4298242982
type_construct env loc lid sarg ty_expected sexp.pexp_attributes
4298342983
| Pexp_variant(l, sarg) ->
@@ -44535,16 +44535,6 @@ let report_error env ppf = function
4453544535
fprintf ppf "Variable %s must occur on both sides of this | pattern"
4453644536
(Ident.name id);
4453744537
spellcheck_idents ppf id valid_idents
44538-
| Expr_type_clash (
44539-
(_, {desc = Tarrow _}) ::
44540-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),_,_),_,_)}) :: _
44541-
) ->
44542-
fprintf ppf "This function is a curried function where an uncurried function is expected"
44543-
| Expr_type_clash (
44544-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),a,_),_,_)}) ::
44545-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),b,_),_,_)}) :: _
44546-
) when a <> b ->
44547-
fprintf ppf "This function has %s but was expected %s" a b
4454844538
| Expr_type_clash (
4454944539
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),a,_),_,_)}) ::
4455044540
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),b,_),_,_)}) :: _
@@ -169161,6 +169151,10 @@ let rec printOutTypeDoc (outType : Outcometree.out_type) =
169161169151
when isArityIdent ident ->
169162169152
(* Js.Fn.arity2<(int, int) => int> -> (. int, int) => int*)
169163169153
printOutArrowType ~uncurried:true arrowType
169154+
| Otyp_constr (Oide_ident "uncurried$", [(Otyp_arrow _ as arrowType); _arity])
169155+
->
169156+
(* uncurried$<(int, int) => int, [#2]> -> (. int, int) => int *)
169157+
printOutArrowType ~uncurried:true arrowType
169164169158
| Otyp_constr (outIdent, []) -> printOutIdentDoc ~allowUident:false outIdent
169165169159
| Otyp_manifest (typ1, typ2) ->
169166169160
Doc.concat [printOutTypeDoc typ1; Doc.text " = "; printOutTypeDoc typ2]
@@ -170790,6 +170784,12 @@ let print_expr_type_clash env trace ppf = begin
170790170784
show_extra_help ppf env trace;
170791170785
end
170792170786

170787+
let reportArityMismatch ~arityA ~arityB ppf =
170788+
fprintf ppf "This function expected @{<info>%s@} %s, but got @{<error>%s@}"
170789+
arityA
170790+
(if arityA = "1" then "argument" else "arguments")
170791+
arityB
170792+
170793170793
let reportJsFnArityMismatch ~arityA ~arityB ppf =
170794170794
let extractArity s =
170795170795
if Ext_string.starts_with s "arity" then
@@ -170799,12 +170799,9 @@ let reportJsFnArityMismatch ~arityA ~arityB ppf =
170799170799
else
170800170800
raise (Invalid_argument "Unrecognized arity type name.")
170801170801
in
170802-
let firstNumber = extractArity arityA in
170803-
fprintf ppf "This function expected @{<info>%s@} %s, but got @{<error>%s@}"
170804-
firstNumber
170805-
(if firstNumber = "1" then "argument" else "arguments")
170806-
(extractArity arityB)
170807-
170802+
let arityA = extractArity arityA in
170803+
let arityB = extractArity arityB in
170804+
reportArityMismatch ~arityA ~arityB ppf
170808170805

170809170806
(* Pasted from typecore.ml. Needed for some cases in report_error below *)
170810170807
(* Records *)
@@ -170848,13 +170845,24 @@ let report_error env ppf = function
170848170845
| Expr_type_clash (
170849170846
(_, {desc = Tarrow _}) ::
170850170847
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),_,_),_,_)}) :: _
170851-
) ->
170848+
)
170849+
| Expr_type_clash (
170850+
(_, {desc = Tarrow _}) ::
170851+
(_, {desc = Tconstr (Pident {name = "uncurried$"},_,_)}) :: _
170852+
) ->
170852170853
fprintf ppf "This function is a curried function where an uncurried function is expected"
170853170854
| Expr_type_clash (
170854170855
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),arityA,_),_,_)}) ::
170855170856
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),arityB,_),_,_)}) :: _
170856170857
) when arityA <> arityB ->
170857170858
reportJsFnArityMismatch ~arityA ~arityB ppf
170859+
| Expr_type_clash (
170860+
(_, {desc = Tconstr (Pident {name = "uncurried$"},[_; tA],_)}) ::
170861+
(_, {desc = Tconstr (Pident {name = "uncurried$"},[_; tB],_)}) :: _
170862+
) when Ast_uncurried.type_to_arity tA <> Ast_uncurried.type_to_arity tB ->
170863+
let arityA = Ast_uncurried.type_to_arity tA |> string_of_int in
170864+
let arityB = Ast_uncurried.type_to_arity tB |> string_of_int in
170865+
reportArityMismatch ~arityA ~arityB ppf
170858170866
| Expr_type_clash (
170859170867
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),a,_),_,_)}) ::
170860170868
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),b,_),_,_)}) :: _

lib/4.06.1/whole_compiler.ml

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -97972,7 +97972,7 @@ and type_expect_ ?in_function ?(recarg=Rejected) env sexp ty_expected =
9797297972
| Lident "Uncurried$" ->
9797397973
let arity = Ast_uncurried.attributes_to_arity sexp.pexp_attributes in
9797497974
let uncurried_typ = Ast_uncurried.mk_js_fn ~env ~arity (newvar()) in
97975-
unify_exp_types loc env uncurried_typ ty_expected
97975+
unify_exp_types loc env ty_expected uncurried_typ
9797697976
| _ -> ());
9797797977
type_construct env loc lid sarg ty_expected sexp.pexp_attributes
9797897978
| Pexp_variant(l, sarg) ->
@@ -99530,16 +99530,6 @@ let report_error env ppf = function
9953099530
fprintf ppf "Variable %s must occur on both sides of this | pattern"
9953199531
(Ident.name id);
9953299532
spellcheck_idents ppf id valid_idents
99533-
| Expr_type_clash (
99534-
(_, {desc = Tarrow _}) ::
99535-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),_,_),_,_)}) :: _
99536-
) ->
99537-
fprintf ppf "This function is a curried function where an uncurried function is expected"
99538-
| Expr_type_clash (
99539-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),a,_),_,_)}) ::
99540-
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),b,_),_,_)}) :: _
99541-
) when a <> b ->
99542-
fprintf ppf "This function has %s but was expected %s" a b
9954399533
| Expr_type_clash (
9954499534
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),a,_),_,_)}) ::
9954599535
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),b,_),_,_)}) :: _
@@ -183406,6 +183396,10 @@ let rec printOutTypeDoc (outType : Outcometree.out_type) =
183406183396
when isArityIdent ident ->
183407183397
(* Js.Fn.arity2<(int, int) => int> -> (. int, int) => int*)
183408183398
printOutArrowType ~uncurried:true arrowType
183399+
| Otyp_constr (Oide_ident "uncurried$", [(Otyp_arrow _ as arrowType); _arity])
183400+
->
183401+
(* uncurried$<(int, int) => int, [#2]> -> (. int, int) => int *)
183402+
printOutArrowType ~uncurried:true arrowType
183409183403
| Otyp_constr (outIdent, []) -> printOutIdentDoc ~allowUident:false outIdent
183410183404
| Otyp_manifest (typ1, typ2) ->
183411183405
Doc.concat [printOutTypeDoc typ1; Doc.text " = "; printOutTypeDoc typ2]
@@ -184949,6 +184943,12 @@ let print_expr_type_clash env trace ppf = begin
184949184943
show_extra_help ppf env trace;
184950184944
end
184951184945

184946+
let reportArityMismatch ~arityA ~arityB ppf =
184947+
fprintf ppf "This function expected @{<info>%s@} %s, but got @{<error>%s@}"
184948+
arityA
184949+
(if arityA = "1" then "argument" else "arguments")
184950+
arityB
184951+
184952184952
let reportJsFnArityMismatch ~arityA ~arityB ppf =
184953184953
let extractArity s =
184954184954
if Ext_string.starts_with s "arity" then
@@ -184958,12 +184958,9 @@ let reportJsFnArityMismatch ~arityA ~arityB ppf =
184958184958
else
184959184959
raise (Invalid_argument "Unrecognized arity type name.")
184960184960
in
184961-
let firstNumber = extractArity arityA in
184962-
fprintf ppf "This function expected @{<info>%s@} %s, but got @{<error>%s@}"
184963-
firstNumber
184964-
(if firstNumber = "1" then "argument" else "arguments")
184965-
(extractArity arityB)
184966-
184961+
let arityA = extractArity arityA in
184962+
let arityB = extractArity arityB in
184963+
reportArityMismatch ~arityA ~arityB ppf
184967184964

184968184965
(* Pasted from typecore.ml. Needed for some cases in report_error below *)
184969184966
(* Records *)
@@ -185007,13 +185004,24 @@ let report_error env ppf = function
185007185004
| Expr_type_clash (
185008185005
(_, {desc = Tarrow _}) ::
185009185006
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),_,_),_,_)}) :: _
185010-
) ->
185007+
)
185008+
| Expr_type_clash (
185009+
(_, {desc = Tarrow _}) ::
185010+
(_, {desc = Tconstr (Pident {name = "uncurried$"},_,_)}) :: _
185011+
) ->
185011185012
fprintf ppf "This function is a curried function where an uncurried function is expected"
185012185013
| Expr_type_clash (
185013185014
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),arityA,_),_,_)}) ::
185014185015
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js"},"Fn",_),arityB,_),_,_)}) :: _
185015185016
) when arityA <> arityB ->
185016185017
reportJsFnArityMismatch ~arityA ~arityB ppf
185018+
| Expr_type_clash (
185019+
(_, {desc = Tconstr (Pident {name = "uncurried$"},[_; tA],_)}) ::
185020+
(_, {desc = Tconstr (Pident {name = "uncurried$"},[_; tB],_)}) :: _
185021+
) when Ast_uncurried.type_to_arity tA <> Ast_uncurried.type_to_arity tB ->
185022+
let arityA = Ast_uncurried.type_to_arity tA |> string_of_int in
185023+
let arityB = Ast_uncurried.type_to_arity tB |> string_of_int in
185024+
reportArityMismatch ~arityA ~arityB ppf
185017185025
| Expr_type_clash (
185018185026
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),a,_),_,_)}) ::
185019185027
(_, {desc = Tconstr (Pdot (Pdot(Pident {name = "Js_OO"},"Meth",_),b,_),_,_)}) :: _

res_syntax/src/res_outcome_printer.ml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@ let rec printOutTypeDoc (outType : Outcometree.out_type) =
223223
when isArityIdent ident ->
224224
(* Js.Fn.arity2<(int, int) => int> -> (. int, int) => int*)
225225
printOutArrowType ~uncurried:true arrowType
226+
| Otyp_constr (Oide_ident "uncurried$", [(Otyp_arrow _ as arrowType); _arity])
227+
->
228+
(* uncurried$<(int, int) => int, [#2]> -> (. int, int) => int *)
229+
printOutArrowType ~uncurried:true arrowType
226230
| Otyp_constr (outIdent, []) -> printOutIdentDoc ~allowUident:false outIdent
227231
| Otyp_manifest (typ1, typ2) ->
228232
Doc.concat [printOutTypeDoc typ1; Doc.text " = "; printOutTypeDoc typ2]

0 commit comments

Comments
 (0)