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 format computation expression with generic parameter #2285

Closed
3 tasks
albertwoo opened this issue May 30, 2022 · 2 comments · Fixed by #2298
Closed
3 tasks

Idempotency problem when format computation expression with generic parameter #2285

albertwoo opened this issue May 30, 2022 · 2 comments · Fixed by #2298

Comments

@albertwoo
Copy link

Issue created from fantomas-online

Formatted code

odata<Person> { count
take 10
skip 10
}

Reformatted code

odata<Person> { count take 10 skip 10 }

Problem description

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

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-05-28T16:36:31Z - 929b3f0

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 May 30, 2022

Hello, thank you for opening this issue.
I believe the problem here is that the generic parameter isn't captured in

let (|NamedComputationExpr|_|) =
function
| SynExpr.App (ExprAtomicFlag.NonAtomic,
false,
(SynExpr.App _ as nameExpr
| SimpleExpr nameExpr),
ComputationExpr (openingBrace, compExpr, closingBrace),
_) -> Some(nameExpr, openingBrace, compExpr, closingBrace)
| _ -> None

This active pattern should be extended to deal with nameExpr being SynExpr.TypeApp.
Are you interested in submitting a PR for this?

@albertwoo
Copy link
Author

Sorry, I do not have the knowledge to do this.

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