Skip to content

References through open #594

Open
Open
@Julow

Description

@Julow

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 included 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions