From d2df4af6051ab024802b319c16417d444b552e6f Mon Sep 17 00:00:00 2001 From: Liam Stevenson Date: Mon, 3 Mar 2025 18:36:15 +0100 Subject: [PATCH 1/3] Add test for short-paths proposed in #1873 --- tests/test-dirs/short-paths/issue1873.t | 45 +++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/test-dirs/short-paths/issue1873.t diff --git a/tests/test-dirs/short-paths/issue1873.t b/tests/test-dirs/short-paths/issue1873.t new file mode 100644 index 0000000000..4df0dc52b6 --- /dev/null +++ b/tests/test-dirs/short-paths/issue1873.t @@ -0,0 +1,45 @@ +We get a bad path for `hello` + + $ cat > foo.ml < module Foo = struct + > type t + > end + > + > module Bar = struct + > module Foo = struct + > type t = Foo.t + > end + > end + > + > open! Bar + > + > let hello : Foo.t = 0 + > EOF + +It happens regardless of whether short-paths is enabled + $ $MERLIN single type-enclosing -position 13:5 -filename foo.ml < foo.ml | jq .value[0].type -r + Bar.Foo.t + + $ echo "FLG -short-paths" > .merlin + $ $MERLIN single type-enclosing -position 13:5 -filename foo.ml < foo.ml | jq .value[0].type -r + Bar.Foo.t + +It seems to be related to shadowing somehow. This works: + $ cat > foo.ml < module Foo = struct + > type t + > end + > + > module Bar = struct + > module Baz = struct + > type t = Foo.t + > end + > end + > + > open! Bar + > + > let hello : Baz.t = 0 + > EOF + + $ $MERLIN single type-enclosing -position 13:5 -filename foo.ml < foo.ml | jq .value[0].type -r + Foo.t From 2a6c3a1a1f103cc880d077a6e9a45b1138547431 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulysse=20G=C3=A9rard?= Date: Mon, 3 Mar 2025 18:38:54 +0100 Subject: [PATCH 2/3] Add a changelog entry --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index a65ef68091..76d06b279c 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -37,6 +37,7 @@ Tue Jun 24 16:10:42 CEST 2025 of the involved data-structures. (#1889) + test suite - Add a test case illustrating wrong open order proposed in issue #1900. (#1901) + - Add more short-paths tests cases (#1904) merlin 5.4.1 ============ From d350f39e355d666f52e1ebda68bdb33f08130996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulysse=20G=C3=A9rard?= Date: Fri, 3 Oct 2025 12:28:27 +0200 Subject: [PATCH 3/3] Move changelog entry --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 76d06b279c..d7ba2754e3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -7,6 +7,7 @@ unreleased - Improve recovery of mutually recursive definitions (#1962, #1963, fixes #1953) + vim plugin - Fix error when `:MerlinOccurrencesProjectWide` fails to gather code previews (#1970) + - Add more short-paths tests cases (#1904) merlin 5.5 ========== @@ -37,7 +38,6 @@ Tue Jun 24 16:10:42 CEST 2025 of the involved data-structures. (#1889) + test suite - Add a test case illustrating wrong open order proposed in issue #1900. (#1901) - - Add more short-paths tests cases (#1904) merlin 5.4.1 ============