Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Idempotency problem when using object expression and having a space between get / set lines #2372

Closed
3 tasks
MangelMaxime opened this issue Jul 19, 2022 · 1 comment · Fixed by #2373
Closed
3 tasks

Comments

@MangelMaxime
Copy link

Issue created from fantomas-online

Formatted code

{ new TaskDefinition with
    member this.Item
        with get (name: string): obj option = data.TryGet name


        and set (name: string) (v: obj option): unit =
            match v with
            | None -> data.Remove(name) |> ignore
            | Some v -> data.[name] <- v

    override this.``type``: string = "fakerun" }

Reformatted code

{ new TaskDefinition with
    member this.Item
        with get (name: string): obj option = data.TryGet name



        and set (name: string) (v: obj option): unit =
            match v with
            | None -> data.Remove(name) |> ignore
            | Some v -> data.[name] <- v

    override this.``type``: string = "fakerun" }

Problem description

Fantomas was not able to produce the same code after reformatting the result.

Note

If there is no spaces between these two lines:

        with get (name: string): obj option = data.TryGet name
        and set (name: string) (v: obj option): unit =

then the format is not generating a new line on each pass.

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.

Options

Fantomas master branch at 2022-07-18T06:16:36Z - 452064c

Default Fantomas configuration

Did you know that you can ignore files when formatting from fantomas-tool or the FAKE targets by using a .fantomasignore file?

@nojaf
Copy link
Contributor

nojaf commented Jul 19, 2022

Thanks for the report Maxime, I'll release another beta once I can deal with the global issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants