File tree 3 files changed +54
-10
lines changed
3 files changed +54
-10
lines changed Original file line number Diff line number Diff line change 1
1
# Changelog
2
2
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
+
3
8
## 6.3.12 - 2024-09-05
4
9
5
10
### Fixed
Original file line number Diff line number Diff line change @@ -3643,3 +3643,42 @@ type FSharpChecker with
3643
3643
: Async<(FSharpParseFileResults * ParsedInput * FSharpCheckFileResults) option> =
3644
3644
()
3645
3645
"""
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) =
3585
3585
| _ ->
3586
3586
header
3587
3587
+> 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 )
3598
3598
|> genNode node)
3599
3599
ctx
3600
3600
| TypeDefn.Explicit node ->
You can’t perform that action at this time.
0 commit comments