merlin
merlin copied to clipboard
`Locate` within recursive module jumps to declaration instead of definition.
In the following code:
module rec A : sig
type t = B.t
end = struct
type t = B.t
end
and B : sig
type t = int
end = struct
type t = int
end
type u = B.t
When asking to locate B.t from inside the recursive definition (the fourth line, type t = B.t), merlin locates the declaration (line 7, inside the sig), while it should be on the implementation (line 9, inside the struct).
From outside the recursive definition, it works: locating B.t from the last line (type u = B.t) leads to line 9 (inside struct).