Skip to content

Custom operator is applied to anonymous record after formatting #3274

@nojaf

Description

@nojaf

Issue created from fantomas-online

Code

let a =
    fun x -> {| X = x |}
    <*| op

let b =
    fun x -> {|
               X = x |}
    <*| op

let c =
    fun x ->
        {|
            X = x
        |}
    <*| op

let d =
    fun x ->
    {|
        X = x
    |}
    <*| op
()

Result

let a = fun x -> {| X = x |} <*| op

let b = fun x -> {| X = x |} <*| op

let c = fun x -> {| X = x |} <*| op

let d = fun x -> {| X = x |} <*| op
()

Problem description

The meaning of the code changed here.
AST is most likely different after formatting.

Extra information

  • The formatted result breaks my code.
  • The formatted result gives compiler warnings.
  • I or my company would be willing to help fix this.
  • I would like a release if this problem is solved.

Options

Fantomas main branch at 2025-09-08T06:57:30Z - 31029b1

    { config with
                MaxLineLength = 80 }

Did you know that you can ignore files when formatting by using a .fantomasignore file?
PS: It's unlikely that someone else will solve your specific issue, as it's something that you have a personal stake in.

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