Skip to content

fsharp_newline_before_multiline_computation_expression = false may cause parse error if CE is called from an expression #3155

@Shuenhoy

Description

@Shuenhoy

Issue created from fantomas-online

Code

let a = Builder.build ("a long enough str") {
    let a = 1
    return a
}

Result

let a = Builder.build (
    "a long enough str"
) {
    let a = 1
    return a
}

Problem description

Please describe here the Fantomas problem you encountered.
Check out our Contribution Guidelines.

A more complete code that can compile:

module Test.Program

type Builder() =
    member __.Return x = x

    static member build(str) =
        Builder()

let a =
    Builder.build (
        "a long enough str"
    ) {
        let a = 1
        return a
    }

The result formatted will fail to parse.

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-02-28T11:18:04Z - 6108fc4

    { config with
                MaxLineLength = 30
                NewlineBeforeMultilineComputationExpression = false }

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