Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Catch errors escaping from Typemod.initial_env for 4.08, 4.09 and 4.10 #1130

Merged
merged 2 commits into from
Apr 14, 2020

Conversation

let-def
Copy link
Contributor

@let-def let-def commented Apr 14, 2020

Running Merlin in an invalid environment (containing interfaces from older version of OCaml, or corrupted ones) would let a top-level failure escape. It is now caught and handled like a normal typing error.
This behavior is also tested to prevent future regressions.

Note: I discovered that Location.none has changed in recent versions of OCaml (default line used to be -1, it is now taken from Lexing.dummy_pos which defines it as 0). That might lead to surprising behaviors in ppx that rely on omp for instant. Too hard to regularize tests, I rely on jq to filter discrepancies.

@trefis trefis merged commit a9fc339 into master Apr 14, 2020
@trefis trefis deleted the initial-escape branch April 14, 2020 11:44
let-def added a commit to let-def/opam-repository that referenced this pull request Apr 15, 2020
CHANGES:

Tue Apr 14 15:25:05 CEST 2020

  + backend
    - full support from OCaml 4.02 to OCaml 4.10 (ocaml/merlin#1117, ocaml/merlin#1127)
    - fix desynchronized cache (ocaml/merlin#1120)
    - short path for OCaml 4.09 and OCaml 4.10 (ocaml/merlin#1082, ocaml/merlin#1117)
    - catch and test environment initialization errors (ocaml/merlin#1083, ocaml/merlin#1130)
    - restore type levels after recovery (ocaml/merlin#1092)
  + frontend
    - fix syntax errors in 4.08 and 4.09 (ocaml/merlin#1081)
    - complete-prefix command accepts -kind option to filter results (ocaml/merlin#1071)
    - code cleanup (ocaml/merlin#1093, ocaml/merlin#1079, ocaml/merlin#1112)
    - better handling of expression and pattern extra nodes during browse tree
      traversal (ocaml/merlin#1091, ocaml/merlin#1121)
    - improve context detection (e.g. appropriate namespace for lookup) for
      various queries (ocaml/merlin#1104, ocaml/merlin#1110)
    - add stdlib to locate source path (ocaml/merlin#1085)
  + editor modes
    - vim: tweak heuristic to select python version (ocaml/merlin#1111)
    - emacs: marlin/call
    - lsp: move server to its own repository (ocaml/merlin#1069),
      https://github.com/ocaml/ocaml-lsp
  + testsuite
    - dune rules for the testsuite are now generated, deterministic and
      can be run individually (ocaml/merlin#1068, ocaml/merlin#1070, ocaml/merlin#1072)
    - fix incorrect command-line arguments in tests (ocaml/merlin#1073)
    - better coverage of frontend features (ocaml/merlin#1075, ocaml/merlin#1078, ocaml/merlin#1088, ocaml/merlin#1089, ocaml/merlin#1126)

Build no longer relies on implicit transitive_deps (ocaml/merlin#1065).
let-def added a commit to let-def/opam-repository that referenced this pull request Apr 15, 2020
CHANGES:

Tue Apr 14 15:25:05 CEST 2020

  + ocaml support
    - full support from OCaml 4.02 to OCaml 4.10 (ocaml/merlin#1117, ocaml/merlin#1127)
    - fix desynchronized cache (ocaml/merlin#1120)
    - short path for OCaml 4.09 and OCaml 4.10 (ocaml/merlin#1082, ocaml/merlin#1117)
    - catch and test environment initialization errors (ocaml/merlin#1083, ocaml/merlin#1130)
    - restore type levels after recovery (ocaml/merlin#1092)
  + merlin binary
    - fix syntax errors in 4.08 and 4.09 (ocaml/merlin#1081)
    - complete-prefix command accepts -kind option to filter results (ocaml/merlin#1071)
    - code cleanup (ocaml/merlin#1093, ocaml/merlin#1079, ocaml/merlin#1112)
    - better handling of expression and pattern extra nodes during browse tree
      traversal (ocaml/merlin#1091, ocaml/merlin#1121)
    - improve context detection (e.g. appropriate namespace for lookup) for
      various queries (ocaml/merlin#1104, ocaml/merlin#1110)
    - add stdlib to locate source path (ocaml/merlin#1085)
  + editor modes
    - vim: tweak heuristic to select python version (ocaml/merlin#1111)
    - emacs: marlin/call
    - lsp: move server to its own repository (ocaml/merlin#1069),
      https://github.com/ocaml/ocaml-lsp
  + test suite
    - dune rules for the test suite are now generated, deterministic and
      can be run individually (ocaml/merlin#1068, ocaml/merlin#1070, ocaml/merlin#1072)
    - fix incorrect command-line arguments in tests (ocaml/merlin#1073)
    - better coverage of frontend features (ocaml/merlin#1075, ocaml/merlin#1078, ocaml/merlin#1088, ocaml/merlin#1089, ocaml/merlin#1126)

Build no longer relies on implicit transitive_deps (ocaml/merlin#1065).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants