diff --git a/jscomp/super_errors/super_typecore.ml b/jscomp/super_errors/super_typecore.ml index 6b0c0f8fea..73151413e2 100644 --- a/jscomp/super_errors/super_typecore.ml +++ b/jscomp/super_errors/super_typecore.ml @@ -153,12 +153,21 @@ let report_error env ppf = function | Some (actual, expected) -> collect_missing_arguments actual expected | None -> assert false in + let print_arguments = + Format.pp_print_list + ~pp_sep:(fun ppf _ -> fprintf ppf ",@ ") + (fun ppf (label, argtype) -> + if label = "" then fprintf ppf "@[%a@]" type_expr argtype + else fprintf ppf "@[(~%s: %a)@]" label type_expr argtype + ) + in match missing_arguments with + | Some [singleArgument] -> + fprintf ppf "@[@{This call is missing a final argument@} of type@ %a@]" + print_arguments [singleArgument] | Some arguments -> - fprintf ppf "You're missing arguments: @[%a@]" (Format.pp_print_list ~pp_sep:(fun ppf _ -> fprintf ppf ", ") (fun ppf (label, argtype) -> - if label = "" then type_expr ppf argtype - else fprintf ppf "~%s: %a" label type_expr argtype - )) arguments + fprintf ppf "@[@{This call is missing final arguments@} of type:@ %a@]" + print_arguments arguments | None -> check_bs_arity_mismatch ppf trace; super_report_unification_error ppf env trace