Skip to content

Conversation

@liam923
Copy link
Contributor

@liam923 liam923 commented Jan 16, 2025

In ocaml-flambda, we've added a new constructor to Typedtree.expression_desc named Texp_hole: https://github.com/ocaml-flambda/flambda-backend/pull/3310/files#diff-ed47e32f450beb29b2f22ff8073a5592865c82845687a224124858a6b6060fc3R504. This unfortunately conflicts with the Texp_hole constructor that Merlin adds to the same type in order to represent typed holes. To solve this, we are renaming what was Merlin's Texp_hole to Texp_typed_hole. For consistency, we are also renaming Tmod_hole to Tmod_typed_hole, even though there is no Tmod_hole in the compiler. This PR includes the same renames in order to minimize the diff with merlin-jst.

@liam923
Copy link
Contributor Author

liam923 commented Jan 16, 2025

I see that the ocaml-lsp compatibility check is failing. Does that block merging this PR? If so, how would I atomically make this change to both repos?

@voodoos
Copy link
Collaborator

voodoos commented Jan 17, 2025

I see that the ocaml-lsp compatibility check is failing. Does that block merging this PR? If so, how would I atomically make this change to both repos?

What we usually do is open a PR on both side and update the CIs to match the other-side branche. Then we merge both when they are ready.

We try to progressively move all Typedtree usage to merlin-lib to prevent further these breakage which are the most common.

In that case, I think the best way forward would be to use that PR to move the Typed_holes compatibility module to merlin-lib, in the Typedtree_utils.

@liam923
Copy link
Contributor Author

liam923 commented Jan 17, 2025

In that case, I think the best way forward would be to use that PR to move the Typed_holes compatibility module to merlin-lib, in the Typedtree_utils.

See ocaml/ocaml-lsp#1451

Copy link
Collaborator

@voodoos voodoos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Liam, looks good to me

@voodoos voodoos merged commit 1f73cad into ocaml:main Jan 31, 2025
5 checks passed
voodoos added a commit to voodoos/merlin that referenced this pull request Jun 10, 2025
voodoos added a commit to voodoos/opam-repository that referenced this pull request Jun 23, 2025
CHANGES:

Mon Jun 23 10:10:42 CEST 2024

  + merlin library
    - Expose utilities to manipulate typed-holes in `Merlin_analysis.Typed_hole`
      (ocaml/merlin#1888)
    - `inlay-hints` fix inlay hints on function parameters (ocaml/merlin#1923)
    - Handle class type in outline (ocaml/merlin#1932)
    - Handle locally defined value in outline (ocaml/merlin#1936)
  + vim plugin
    - Added support for search-by-type (ocaml/merlin#1846)
      This is exposed through the existing `:MerlinSearch` command, that
      switches between search-by-type and polarity search depending on the
      first character of the query.
voodoos added a commit to voodoos/opam-repository that referenced this pull request Jun 24, 2025
CHANGES:

Tue Jun 24 16:10:42 CEST 2025

  + merlin library
    - Expose utilities to manipulate typed-holes in `Merlin_analysis.Typed_hole`
      (ocaml/merlin#1888)
    - `locate` can now disambiguate between files with identical names and contents
      (ocaml/merlin#1882)
    - `occurrences` now reports stale files (ocaml/merlin#1885)
    - `inlay-hints` fix inlay hints on function parameters (ocaml/merlin#1923)
    - Fix issues with ident validation and Lid comparison for occurrences (ocaml/merlin#1924)
    - Handle class type in outline (ocaml/merlin#1932)
    - Handle locally defined value in outline (ocaml/merlin#1936)
    - Fix a typer issue triggering assertions in the short-paths graph (ocaml/merlin#1935,
      fixes ocaml/merlin#1913)
    - Downstreamed a typer fix from 5.3.X that would trigger assertions linked
      to scopes bit masks when backtracking the typer cache (ocaml/merlin#1935)
    - Add a new selection field to outline results that contains the location of
      the symbol itself. (ocaml/merlin#1942)
    - Fix destruct hanging when printing patterns with (::). (ocaml/merlin#1944, fixes
      ocaml/ocaml-lsp#1489)
    - Reproduce and fix a handful of jump-to-definition (locate) issues  (ocaml/merlin#1930,
      fixes ocaml/merlin#1580 and ocaml/merlin#1588, workaround for ocaml/merlin#1934)
  + ocaml-index
    - Improve the granularity of index reading by segmenting the marshalization
      of the involved data-structures. (ocaml/merlin#1889)
  + test suite
    - Add a test case illustrating wrong open order proposed in issue ocaml/merlin#1900. (ocaml/merlin#1901)
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.

2 participants