Misc_utils.Path
Sourceval to_shortest_lid :
env:Ocaml_typing.Env.t ->
?name:string ->
env_check:(Ocaml_parsing.Longident.t -> Ocaml_typing.Env.t -> 'a) ->
Ocaml_typing.Path.t ->
Ocaml_parsing.Longident.t
to_shortest_lid ~env ~env_check path
will make a Longident.t
from the provided Path.t
and attempt to use the shortest prefix possible given the currently opened modules. The result is checked by looking it up in the environment using the env_check : Longident.t -> Env.t -> 'a
function.
The check is needed because shadowing can cause subtle issues. A typical check function would be Env.find_constructor_by_name
. WHen the check fails the function will return Untypeast.lident_of_path path
instead of clever prefix-less constructions.
Optionally a name
can be provided that will be used as the last ident of the path.