package merlin-lib
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=376707aa871f09e9639456d3fbe4b89a21c9ad75c774e94cbbbe67f842b0a500
sha512=a11ea4b8e3520b3ee41ae8198cda34b2816b8dfcdcb99350ef29689a7d62bb66d17ffa075c551aa56d521120b55e6db14a106a31f7b3970ed2aa07e1db3c9b88
doc/merlin-lib.ocaml_typing/Ocaml_typing/Env/index.html
Module Ocaml_typing.EnvSource
type value_unbound_reason = | Val_unbound_instance_variable| Val_unbound_self| Val_unbound_ancestor| Val_unbound_ghost_recursive of Ocaml_parsing.Location.t
type summary = | Env_empty| Env_value of summary * Ident.t * Types.value_description| Env_type of summary * Ident.t * Types.type_declaration| Env_extension of summary * Ident.t * Types.extension_constructor| Env_module of summary * Ident.t * Types.module_presence * Types.module_declaration| Env_modtype of summary * Ident.t * Types.modtype_declaration| Env_class of summary * Ident.t * Types.class_declaration| Env_cltype of summary * Ident.t * Types.class_type_declaration| Env_open of summary * Path.t(*The string set argument of
*)Env_openrepresents a list of module names to skip, i.e. that won't be imported in the toplevel namespace.| Env_functor_arg of summary * Ident.t| Env_constraints of summary * Types.type_declaration Path.Map.t| Env_copy_types of summary| Env_persistent of summary * Ident.t| Env_value_unbound of summary * string * value_unbound_reason| Env_module_unbound of summary * string * module_unbound_reason
type type_descr_kind =
(Types.label_description, Types.constructor_description) Types.type_kindtype lookup_error = | Unbound_value of Ocaml_parsing.Longident.t * unbound_value_hint| Unbound_type of Ocaml_parsing.Longident.t| Unbound_constructor of Ocaml_parsing.Longident.t| Unbound_label of Ocaml_parsing.Longident.t| Unbound_module of Ocaml_parsing.Longident.t| Unbound_class of Ocaml_parsing.Longident.t| Unbound_modtype of Ocaml_parsing.Longident.t| Unbound_cltype of Ocaml_parsing.Longident.t| Unbound_instance_variable of string| Not_an_instance_variable of string| Masked_instance_variable of Ocaml_parsing.Longident.t| Masked_self_variable of Ocaml_parsing.Longident.t| Masked_ancestor_variable of Ocaml_parsing.Longident.t| Structure_used_as_functor of Ocaml_parsing.Longident.t| Abstract_used_as_functor of Ocaml_parsing.Longident.t| Functor_used_as_structure of Ocaml_parsing.Longident.t| Abstract_used_as_structure of Ocaml_parsing.Longident.t| Generative_used_as_applicative of Ocaml_parsing.Longident.t| Illegal_reference_to_recursive_module| Cannot_scrape_alias of Ocaml_parsing.Longident.t * Path.t
val lookup_value :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
Ocaml_parsing.Longident.t ->
t ->
Path.t * Types.value_descriptionval lookup_type :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
Ocaml_parsing.Longident.t ->
t ->
Path.t * Types.type_declarationval lookup_module :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
Ocaml_parsing.Longident.t ->
t ->
Path.t * Types.module_declarationval lookup_modtype :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
Ocaml_parsing.Longident.t ->
t ->
Path.t * Types.modtype_declarationval lookup_class :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
Ocaml_parsing.Longident.t ->
t ->
Path.t * Types.class_declarationval lookup_cltype :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
Ocaml_parsing.Longident.t ->
t ->
Path.t * Types.class_type_declarationval lookup_module_path :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
load:bool ->
Ocaml_parsing.Longident.t ->
t ->
Path.tval lookup_modtype_path :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
Ocaml_parsing.Longident.t ->
t ->
Path.tval lookup_constructor :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
constructor_usage ->
Ocaml_parsing.Longident.t ->
t ->
Types.constructor_descriptionval lookup_all_constructors :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
constructor_usage ->
Ocaml_parsing.Longident.t ->
t ->
((Types.constructor_description * (unit -> unit)) list,
Ocaml_parsing.Location.t * t * lookup_error)
resultval lookup_all_constructors_from_type :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
constructor_usage ->
Path.t ->
t ->
(Types.constructor_description * (unit -> unit)) listval lookup_label :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
label_usage ->
Ocaml_parsing.Longident.t ->
t ->
Types.label_descriptionval lookup_all_labels :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
label_usage ->
Ocaml_parsing.Longident.t ->
t ->
((Types.label_description * (unit -> unit)) list,
Ocaml_parsing.Location.t * t * lookup_error)
resultval lookup_all_labels_from_type :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
label_usage ->
Path.t ->
t ->
(Types.label_description * (unit -> unit)) listval lookup_instance_variable :
?use:bool ->
loc:Ocaml_parsing.Location.t ->
string ->
t ->
Path.t * Ocaml_parsing.Asttypes.mutable_flag * string * Types.type_exprval find_modtype_by_name :
Ocaml_parsing.Longident.t ->
t ->
Path.t * Types.modtype_declarationval find_cltype_by_name :
Ocaml_parsing.Longident.t ->
t ->
Path.t * Types.class_type_declarationval find_constructor_by_name :
Ocaml_parsing.Longident.t ->
t ->
Types.constructor_descriptionThe find_*_index functions computes a "namespaced" De Bruijn index of an identifier in a given environment. In other words, it returns how many times an identifier has been shadowed by a more recent identifiers with the same name in a given environment. Those functions return None when the identifier is not bound in the environment. This behavior is there to facilitate the detection of inconsistent printing environment, but should disappear in the long term.
val add_value :
?check:(string -> Ocaml_utils.Warnings.t) ->
Ident.t ->
Types.value_description ->
t ->
tval add_extension :
check:bool ->
rebind:bool ->
Ident.t ->
Types.extension_constructor ->
t ->
tval add_module :
?arg:bool ->
?shape:Shape.t ->
Ident.t ->
Types.module_presence ->
Types.module_type ->
t ->
tval add_module_lazy :
update_summary:bool ->
Ident.t ->
Types.module_presence ->
Subst.Lazy.modtype ->
t ->
tval add_module_declaration :
?arg:bool ->
?shape:Shape.t ->
check:bool ->
Ident.t ->
Types.module_presence ->
Types.module_declaration ->
t ->
tval add_module_declaration_lazy :
update_summary:bool ->
Ident.t ->
Types.module_presence ->
Subst.Lazy.module_decl ->
t ->
tval add_modtype_lazy :
update_summary:bool ->
Ident.t ->
Subst.Lazy.modtype_declaration ->
t ->
tval persistent_structures_of_dir :
Ocaml_utils.Load_path.Dir.t ->
Merlin_utils.Misc.String.Set.tval open_signature :
?used_slot:bool ref ->
?loc:Ocaml_parsing.Location.t ->
?toplevel:bool ->
Ocaml_parsing.Asttypes.override_flag ->
Path.t ->
t ->
(t, [ `Not_found | `Functor ]) resultval enter_value :
?check:(string -> Ocaml_utils.Warnings.t) ->
string ->
Types.value_description ->
t ->
Ident.t * tval enter_extension :
scope:int ->
rebind:bool ->
string ->
Types.extension_constructor ->
t ->
Ident.t * tval enter_module :
scope:int ->
?arg:bool ->
string ->
Types.module_presence ->
Types.module_type ->
t ->
Ident.t * tval enter_module_declaration :
scope:int ->
?arg:bool ->
?shape:Shape.t ->
string ->
Types.module_presence ->
Types.module_declaration ->
t ->
Ident.t * tval enter_signature :
?mod_shape:Shape.t ->
scope:int ->
Types.signature ->
t ->
Types.signature * tval enter_signature_and_shape :
scope:int ->
parent_shape:Shape.Map.t ->
Shape.t ->
Types.signature ->
t ->
Types.signature * Shape.Map.t * tval read_signature :
Merlin_utils.Misc.modname ->
Merlin_utils.Misc.filepath ->
Types.signatureval save_signature :
alerts:Merlin_utils.Misc.alerts ->
Types.signature ->
Merlin_utils.Misc.modname ->
Merlin_utils.Misc.filepath ->
Cmi_format.cmi_infosval save_signature_with_imports :
alerts:Merlin_utils.Misc.alerts ->
Types.signature ->
Merlin_utils.Misc.modname ->
Merlin_utils.Misc.filepath ->
Merlin_utils.Misc.crcs ->
Cmi_format.cmi_infostype error = | Missing_module of Ocaml_parsing.Location.t * Path.t * Path.t| Illegal_value_name of Ocaml_parsing.Location.t * string| Lookup_error of Ocaml_parsing.Location.t * t * lookup_error
val report_lookup_error :
Ocaml_parsing.Location.t ->
t ->
Format.formatter ->
lookup_error ->
unitval check_functor_application :
(errors:bool ->
loc:Ocaml_parsing.Location.t ->
lid_whole_app:Ocaml_parsing.Longident.t ->
f0_path:Path.t ->
args:(Path.t * Types.module_type) list ->
arg_path:Path.t ->
arg_mty:Types.module_type ->
param_mty:Types.module_type ->
t ->
unit)
refval check_well_formed_module :
(t -> Ocaml_parsing.Location.t -> string -> Types.module_type -> unit) refval strengthen :
(aliasable:bool ->
t ->
Subst.Lazy.modtype ->
Path.t ->
Subst.Lazy.modtype)
refFolds
Folding over all identifiers (for analysis purpose)
val fold_values :
(string -> Path.t -> Types.value_description -> 'a -> 'a) ->
Ocaml_parsing.Longident.t option ->
t ->
'a ->
'aval fold_types :
(string -> Path.t -> Types.type_declaration -> 'a -> 'a) ->
Ocaml_parsing.Longident.t option ->
t ->
'a ->
'aval fold_constructors :
(Types.constructor_description -> 'a -> 'a) ->
Ocaml_parsing.Longident.t option ->
t ->
'a ->
'aval fold_labels :
(Types.label_description -> 'a -> 'a) ->
Ocaml_parsing.Longident.t option ->
t ->
'a ->
'aval fold_modules :
(string -> Path.t -> Types.module_declaration -> 'a -> 'a) ->
Ocaml_parsing.Longident.t option ->
t ->
'a ->
'aPersistent structures are only traversed if they are already loaded.
val fold_modtypes :
(string -> Path.t -> Types.modtype_declaration -> 'a -> 'a) ->
Ocaml_parsing.Longident.t option ->
t ->
'a ->
'aval fold_classes :
(string -> Path.t -> Types.class_declaration -> 'a -> 'a) ->
Ocaml_parsing.Longident.t option ->
t ->
'a ->
'aval fold_cltypes :
(string -> Path.t -> Types.class_type_declaration -> 'a -> 'a) ->
Ocaml_parsing.Longident.t option ->
t ->
'a ->
'aUtilities
merlin: manage internal state