Given foo.ml:
module Make (X : sig end) = struct
module N = struct end
end
and bar.ml:
module M = struct end
open Foo.Make (M)
module O = N
Calling merlin-locate on the use of N in bar.ml will result in the error message:
apply: "Needed cmti file of module 'N' to locate 'N' but it is not present"
If you give a name to the opened module:
module M = struct end
module P = Foo.Make (M)
open P
module O = N
then it works as expected: jumping to the definition of N in foo.ml.
Given
foo.ml:and
bar.ml:Calling
merlin-locateon the use ofNinbar.mlwill result in the error message:If you give a name to the opened module:
then it works as expected: jumping to the definition of
Ninfoo.ml.