Skip to content

Inlay hints may show ghost identifiers as types

image

module A = struct
  let a1 = a2

  module B : sig val b end = struct
    let b1 = b2
  end

  let a3 = a1 B.b1
end

Ideally, we should never show ghost idents anywhere in the LSP server. I see two alternatives for inlay hints, either showing no inlay hints or somehow transforming ghost idents into actual existential types. I think the second solution should be better than the first solution.

Acceptance criteria

  • Ghost identifiers are not shown as types in inlay hints, either because we hide those hints, or because we exchange them with an appropriate existential type (preferred).
  • Tests added.