File tree Expand file tree Collapse file tree 3 files changed +54
-10
lines changed Expand file tree Collapse file tree 3 files changed +54
-10
lines changed Original file line number Diff line number Diff line change 11# Changelog
22
3+ ## 6.3.13 - 2024-09-10
4+
5+ ### Fixed
6+ * Idempotency problem when adding members to a single case union without a pipe [ #3102 ] ( https://github.com/fsprojects/fantomas/issues/3102 )
7+
38## 6.3.12 - 2024-09-05
49
510### Fixed
Original file line number Diff line number Diff line change @@ -3643,3 +3643,42 @@ type FSharpChecker with
36433643 : Async<(FSharpParseFileResults * ParsedInput * FSharpCheckFileResults) option> =
36443644 ()
36453645"""
3646+
3647+ [<Test>]
3648+ let ``single member union extensions without pipe , 3102`` () =
3649+ formatSourceString
3650+ """
3651+ type X = X
3652+ with
3653+ static member x = 1
3654+ """
3655+ config
3656+ |> prepend newline
3657+ |> should
3658+ equal
3659+ """
3660+ type X = X
3661+ with
3662+
3663+ static member x = 1
3664+ """
3665+
3666+ [<Test>]
3667+ let ``single member union extensions without pipe idempotent , 3102`` () =
3668+ formatSourceString
3669+ """
3670+ type X = X
3671+ with
3672+
3673+ static member x = 1
3674+ """
3675+ config
3676+ |> prepend newline
3677+ |> should
3678+ equal
3679+ """
3680+ type X = X
3681+ with
3682+
3683+ static member x = 1
3684+ """
Original file line number Diff line number Diff line change @@ -3585,16 +3585,16 @@ let genTypeDefn (td: TypeDefn) =
35853585 | _ ->
35863586 header
35873587 +> sepSpaceOrIndentAndNlnIfExpressionExceedsPageWidth ( genType node.Type)
3588- +> onlyIf
3589- hasMembers
3590- ( optSingle
3591- ( fun withNode ->
3592- indentSepNlnUnindent (
3593- genSingleTextNode withNode
3594- +> onlyIfCtx ( fun ctx -> ctx.Config.NewlineBetweenTypeDefinitionAndMembers ) sepNln
3595- +> indentSepNlnUnindent ( genMemberDefnList members)
3596- ) )
3597- typeName.WithKeyword )
3588+ +> ( match List.tryHead members , typeName.WithKeyword with
3589+ | Some firstMember , Some withNode ->
3590+ indentSepNlnUnindent (
3591+ genSingleTextNode withNode
3592+ +> onlyIfCtx
3593+ ( fun ctx -> ctx.Config.NewlineBetweenTypeDefinitionAndMembers )
3594+ ( sepNlnUnlessContentBefore ( MemberDefn.Node firstMember ))
3595+ +> indentSepNlnUnindent ( genMemberDefnList members)
3596+ )
3597+ | _ -> sepNone )
35983598 |> genNode node)
35993599 ctx
36003600 | TypeDefn.Explicit node ->
You can’t perform that action at this time.
0 commit comments