package ocaml-base-compiler
val longident : Format.formatter -> Longident.t -> unit
val ident : Format.formatter -> Ident.t -> unit
val tree_of_path : Path.t -> Outcometree.out_ident
val path : Format.formatter -> Path.t -> unit
val string_of_path : Path.t -> string
val type_path : Format.formatter -> Path.t -> unit
Print a type path taking account of -short-paths
. Calls should be within wrap_printing_env
.
module Out_name : sig ... end
Print a list of paths, using the same naming context to avoid name collisions
val raw_type_expr : Format.formatter -> Types.type_expr -> unit
val string_of_label : Asttypes.arg_label -> string
val wrap_printing_env : error:bool -> Env.t -> (unit -> 'a) -> 'a
module Naming_context : sig ... end
module Conflicts : sig ... end
The Conflicts
module keeps track of conflicts arising when attributing names to identifiers and provides functions that can print explanations for these conflict in error messages
val mark_loops : Types.type_expr -> unit
val reset_and_mark_loops : Types.type_expr -> unit
val reset_and_mark_loops_list : Types.type_expr list -> unit
val type_expr : Format.formatter -> Types.type_expr -> unit
val marked_type_expr : Format.formatter -> Types.type_expr -> unit
The function type_expr
is the safe version of the pair (typed_expr, marked_type_expr)
: it takes care of marking loops in the type expression and resetting type variable names before printing. Contrarily, the function marked_type_expr
should only be called on type expressions whose loops have been marked or it may stackoverflow (see #8860 for examples).
val constructor_arguments :
Format.formatter ->
Types.constructor_arguments ->
unit
val tree_of_type_scheme : Types.type_expr -> Outcometree.out_type
val type_sch : Format.formatter -> Types.type_expr -> unit
val type_scheme : Format.formatter -> Types.type_expr -> unit
val type_scheme_max :
?b_reset_names:bool ->
Format.formatter ->
Types.type_expr ->
unit
val tree_of_value_description :
Ident.t ->
Types.value_description ->
Outcometree.out_sig_item
val value_description :
Ident.t ->
Format.formatter ->
Types.value_description ->
unit
val label : Format.formatter -> Types.label_declaration -> unit
val constructor : Format.formatter -> Types.constructor_declaration -> unit
val tree_of_type_declaration :
Ident.t ->
Types.type_declaration ->
Types.rec_status ->
Outcometree.out_sig_item
val type_declaration :
Ident.t ->
Format.formatter ->
Types.type_declaration ->
unit
val tree_of_extension_constructor :
Ident.t ->
Types.extension_constructor ->
Types.ext_status ->
Outcometree.out_sig_item
val extension_constructor :
Ident.t ->
Format.formatter ->
Types.extension_constructor ->
unit
val extension_only_constructor :
Ident.t ->
Format.formatter ->
Types.extension_constructor ->
unit
val tree_of_module :
Ident.t ->
?ellipsis:bool ->
Types.module_type ->
Types.rec_status ->
Outcometree.out_sig_item
val modtype : Format.formatter -> Types.module_type -> unit
val signature : Format.formatter -> Types.signature -> unit
val tree_of_modtype : Types.module_type -> Outcometree.out_module_type
val tree_of_modtype_declaration :
Ident.t ->
Types.modtype_declaration ->
Outcometree.out_sig_item
val functor_parameters :
sep:(Format.formatter -> unit -> unit) ->
('b -> Format.formatter -> unit) ->
(Ident.t option * 'b) list ->
Format.formatter ->
unit
Print a list of functor parameters while adjusting the printing environment for each functor argument.
Currently, we are disabling disambiguation for functor argument name to avoid the need to track the moving association between identifiers and syntactic names in situation like:
got: (X: sig module type T end) (Y:X.T) (X:sig module type T end) (Z:X.T) expect: (_: sig end) (Y:X.T) (_:sig end) (Z:X.T)
val tree_of_signature : Types.signature -> Outcometree.out_sig_item list
val tree_of_typexp : bool -> Types.type_expr -> Outcometree.out_type
val modtype_declaration :
Ident.t ->
Format.formatter ->
Types.modtype_declaration ->
unit
val class_type : Format.formatter -> Types.class_type -> unit
val tree_of_class_declaration :
Ident.t ->
Types.class_declaration ->
Types.rec_status ->
Outcometree.out_sig_item
val class_declaration :
Ident.t ->
Format.formatter ->
Types.class_declaration ->
unit
val tree_of_cltype_declaration :
Ident.t ->
Types.class_type_declaration ->
Types.rec_status ->
Outcometree.out_sig_item
val cltype_declaration :
Ident.t ->
Format.formatter ->
Types.class_type_declaration ->
unit
val type_expansion :
Types.type_expr ->
Format.formatter ->
Types.type_expr ->
unit
val prepare_expansion :
(Types.type_expr * Types.type_expr) ->
Types.type_expr * Types.type_expr
val report_ambiguous_type_error :
Format.formatter ->
Env.t ->
(Path.t * Path.t) ->
(Path.t * Path.t) list ->
(Format.formatter -> unit) ->
(Format.formatter -> unit) ->
(Format.formatter -> unit) ->
unit
val report_unification_error :
Format.formatter ->
Env.t ->
Errortrace.unification Errortrace.t ->
?type_expected_explanation:(Format.formatter -> unit) ->
(Format.formatter -> unit) ->
(Format.formatter -> unit) ->
unit
val report_equality_error :
Format.formatter ->
Env.t ->
Errortrace.comparison Errortrace.t ->
(Format.formatter -> unit) ->
(Format.formatter -> unit) ->
unit
val report_moregen_error :
Format.formatter ->
Env.t ->
Errortrace.comparison Errortrace.t ->
(Format.formatter -> unit) ->
(Format.formatter -> unit) ->
unit
module Subtype : sig ... end
val print_items :
(Env.t -> Types.signature_item -> 'a option) ->
Env.t ->
Types.signature_item list ->
(Outcometree.out_sig_item * 'a option) list
val printed_signature : string -> Format.formatter -> Types.signature -> unit
printed_signature sourcefile ppf sg
print the signature sg
of sourcefile
with potential warnings for name collisions