Skip to content

parser recovery is not great for Ident.( and the tooling doesn't help typing qualified custom operators #16260

Open
@smoothdeveloper

Description

@smoothdeveloper

I would like to be able to inspect the operators using the tooling while typing code, but the parser fumbles on some of those cases, and the completion list never shows the operators:

module Ops =
  let (|>>) a b = a + b
  module Foo =
    let (|>>) a b = a + b
// parser is ok with those:
Ops.Foo.(|>>)
Ops.(|>>)
// parser is not happy with those:
Ops.Foo.(
Ops.(
// those seems recoverable, but there is no tooling assistance in the completion list:
Ops.Foo.()
Ops.()
// it would be great if completion list could show them here also:
Ops.Foo.
Ops.

I see two issues:

  • parser recovery when there is open paren after a .
  • completion list is oblivious to custom operators, it makes them impossible to find without looking up the source or documentation (when it exists)

Related #11481

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    New

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions