Open
Description
Currently there is no support for unqualified references to items brought into the scope by an open
.
This was reported by @dbuenzli: #585 (comment)
For example:
module A : sig
type t
end
open A (* We currently ignore this, internally we have a [Lang.Open.t] with [expansion = []]. *)
type u = t (* This works as expected and renders as [A.t] because OCaml resolves it for us. *)
(** {!t} This doesn't resolve. *)
Expected behavior ?
open A
(** {!t} *)
In this example, should t
resolve and should it render as t
(as it's written) or A.t
(as it would renders if it were a type expression) ?
What about this:
(** {!t} *)
open A
References can point to items defined below them, and even to include
d items. Should open
have the same behavior ?
Fixing this issue would probably break one of:
- References renders as they are written
- References renders to valid paths that could be typed checked again