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

Fantomas removes the 'and' if there are multiple member constraints on a function declaration #886

Closed
JackMatusiewicz opened this issue Jun 4, 2020 · 0 comments · Fixed by #915

Comments

@JackMatusiewicz
Copy link
Contributor

Issue created from fantomas-online

When a function has multiple member constraints, fantomas will remove the 'and' leading to invalid F# code

Code

namespace Blah

module Foo =
    val inline sum : ('a -> ^value) -> 'a Foo -> ^value
        when ^value : (static member (+) : ^value * ^value -> ^value) and ^value : (static member Zero : ^value)

Error

Fantomas was able to format the code but the result appears to be invalid F# code.
Please open an issue.

Formatted result:

namespace Blah

module Foo =
    val inline sum: ('a -> ^value) -> 'a Foo -> ^value when ^value: (static member (+): ^value * ^value -> ^value) ^value: (static member Zero: ^value)

Options

Fantomas Master at 06/02/2020 18:39:46 - eee0f32

Name Value
IndentSpaceNum 4
PageWidth 120
SemicolonAtEndOfLine false
SpaceBeforeParameter true
SpaceBeforeLowercaseInvocation true
SpaceBeforeUppercaseInvocation false
SpaceBeforeClassConstructor false
SpaceBeforeMember false
SpaceBeforeColon false
SpaceAfterComma true
SpaceBeforeSemicolon false
SpaceAfterSemicolon true
IndentOnTryWith false
SpaceAroundDelimiter true
MaxIfThenElseShortWidth 40
MaxInfixOperatorExpression 50
MaxRecordWidth 40
MaxArrayOrListWidth 40
MaxLetBindingWidth 40
MultilineBlockBracketsOnSameColumn false
NewlineBetweenTypeDefinitionAndMembers false
KeepIfThenInSameLine false
StrictMode false
@JackMatusiewicz JackMatusiewicz changed the title Fantomas removes the 'and' if there are multiple type constraints on a generic Fantomas removes the 'and' if there are multiple member constraints on a function declaration Jun 4, 2020
@nojaf nojaf closed this as completed in #915 Jul 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant