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 calling multi-line discriminated union with generic type parameter #3132

Closed
1 of 4 tasks
Leaxe opened this issue Oct 28, 2024 · 0 comments · Fixed by #3133
Closed
1 of 4 tasks

Comments

@Leaxe
Copy link
Contributor

Leaxe commented Oct 28, 2024

Issue created from fantomas-online

Formatted code

Animal<
    Identifier
 >

    .Dog(
        "Spot"
    )

Reformatted code

Animal<
    Identifier
 >


    .Dog(
        "Spot"
    )

Problem description

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

I haven't totally figured out exactly what it is that makes it not idempotent, but it seems specific to an expression chain with a multi-line type expression and DotGet call. Problem does not appear with the following cases:

Animal<Identifier>()
    .Dog("Spot")

Animal<Identifier>.[0]
    .Dog("Spot")

PetAnimals
    .Dog("Spot")

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 2024-09-14T12:20:28Z - 06d86ad

    { config with
                MaxLineLength = 10
                MaxDotGetExpressionWidth = 0 }

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.

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