package merlin-lib

  1. Overview
  2. Docs
Merlin's libraries

Install

dune-project
 Dependency

Authors

Maintainers

Sources

merlin-5.8-505.tbz
sha256=5642cde8486a84aad98fa5c590b70e8dcc6074d7fbdb3b9b8c46b2c5b42f653b
sha512=1d7a7751157e393d3ae248ef5ae24a6b4e81430666c61cc51a3d0ec35804523317036f3d7a3c7f18a7554337f4e5f5989fb677865b261ece3fd2b317903570ba

doc/merlin-lib.kernel/Merlin_kernel/Mtyper/index.html

Module Merlin_kernel.MtyperSource

Result of typechecker

Mtyper essentially produces a typedtree, but to make sense of it the OCaml typechecker need to be in a specific state.

The result type wraps a snapshot of this state with the typedtree to ensure correct accesses.

Sourcetype result
Sourcetype typedtree = [
  1. | `Interface of Ocaml_typing.Typedtree.signature
  2. | `Implementation of Ocaml_typing.Typedtree.structure
]
Sourcetype typer_cache_stats =
  1. | Miss
  2. | Hit of {
    1. reused : int;
    2. typed : int;
    }
Sourceval set_index_items : (index -> Mconfig.t -> [ `Impl of Ocaml_typing.Typedtree.structure_item list | `Intf of Ocaml_typing.Typedtree.signature_item list ] -> index) -> unit
Sourceval get_typedtree : result -> typedtree
Sourceval get_index : result -> index
Sourceval get_stamp : result -> int
Sourceval get_errors : result -> exn list
Sourceval initial_env : result -> Ocaml_typing.Env.t
Sourceval get_cache_stat : result -> typer_cache_stats
Sourceval node_at : ?disambiguate:Mbrowse.Tie_breaker.t -> ?skip_recovered:bool -> result -> Lexing.position -> Mbrowse.t

Heuristic to find suitable environment to complete / type at given position. * 1. Try to find environment near given cursor. * 2. Check if there is an invalid construct between found env and cursor : * Case a. * > let x = valid_expr || * The env found is the right most env from valid_expr, it's a correct * answer. * Case b. * > let x = valid_expr * > let y = invalid_construction|| * In this case, the env found is the same as in case a, however it is * preferable to use env from enclosing module rather than an env from * inside x definition. * * disambiguate argument is used to select the node at cursor when multiple * nodes share the same location.