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

Or pipe in destructured record should not be splitted. #1252

Closed
1 of 3 tasks
nojaf opened this issue Nov 13, 2020 · 0 comments · Fixed by #1253
Closed
1 of 3 tasks

Or pipe in destructured record should not be splitted. #1252

nojaf opened this issue Nov 13, 2020 · 0 comments · Fixed by #1253

Comments

@nojaf
Copy link
Contributor

nojaf commented Nov 13, 2020

Issue created from fantomas-online

Code

let draftToken =
    match lastToken with
    | Some { Kind = GenericTypeParameter | StaticallyResolvedTypeParameter as kind } when isIdentifier token ->
            DraftToken.Create kind { token with LeftColumn = token.LeftColumn - 1
                                                FullMatchedLength = token.FullMatchedLength + 1 }
    | Some ( { Kind = SymbolKind.ActivePattern } as ap) when token.Tag = FSharpTokenTag.RPAREN ->
            DraftToken.Create SymbolKind.Ident ap.Token
    | _ ->
        let kind =
            if isOperator token then Operator
            elif isIdentifier token then Ident
            elif isKeyword token then Keyword
            elif isPunctuation token then Dot
            else Other
        DraftToken.Create kind token

Error

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

Formatted result:

let draftToken =
    match lastToken with
    | Some { Kind = GenericTypeParameter
             | StaticallyResolvedTypeParameter as kind } when isIdentifier token ->
        DraftToken.Create
            kind
            { token with
                  LeftColumn = token.LeftColumn - 1
                  FullMatchedLength = token.FullMatchedLength + 1 }
    | Some ({ Kind = SymbolKind.ActivePattern } as ap) when token.Tag = FSharpTokenTag.RPAREN ->
        DraftToken.Create SymbolKind.Ident ap.Token
    | _ ->
        let kind =
            if isOperator token then Operator
            elif isIdentifier token then Ident
            elif isKeyword token then Keyword
            elif isPunctuation token then Dot
            else Other

        DraftToken.Create kind token

Problem description

GenericTypeParameter | StaticallyResolvedTypeParameter cannot be splitted.

Extra information

  • The formatted result breaks by code.
  • The formatted result gives compiler warnings.
  • I or my company would be willing to help fix this.

Options

Fantomas Master at 11/12/2020 20:43:50 - 8f6de51

Default Fantomas configuration

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