Skip to content

Commit

Permalink
Update FCS to SynType.Or. (#2576)
Browse files Browse the repository at this point in the history
  • Loading branch information
nojaf committed Oct 13, 2022
1 parent aa69ef7 commit de8b5a7
Show file tree
Hide file tree
Showing 9 changed files with 220 additions and 205 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Changed
* Formatting of anonymous record types respects fsharp_multiline_block_brackets_on_same_column. [#1167](https://github.com/fsprojects/fantomas/issues/1167)
* Update FCS to 'Add SynType.Or', commit b78ad5cd6feea006986869506f33aab84c37398a

## [5.1.0-alpha-005] - 2022-10-07

Expand Down
180 changes: 90 additions & 90 deletions paket.dependencies

Large diffs are not rendered by default.

180 changes: 90 additions & 90 deletions paket.lock
Original file line number Diff line number Diff line change
Expand Up @@ -172,96 +172,96 @@ GITHUB
remote: fsprojects/fantomas
src/Fantomas/CodePrinter.fs (829faa6ba834f99afed9b4434b3a1680536474b2)
remote: dotnet/fsharp
src/Compiler/AbstractIL/il.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/il.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/ilascii.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/ilascii.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/illex.fsl (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/illex.fsl (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/ilpars.fsy (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/ilpars.fsy (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/ilx.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/ilx.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Checking/CheckDeclarations.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/DiagnosticOptions.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/DiagnosticOptions.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/DiagnosticsLogger.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/DiagnosticsLogger.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/LanguageFeatures.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/LanguageFeatures.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/Logger.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/Logger.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/prim-lexing.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/prim-lexing.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/prim-parsing.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/prim-parsing.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/TextLayoutRender.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/TextLayoutRender.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Facilities/UtilsStrings.txt (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/FSComp.txt (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/FSStrings.resx (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Interactive/FSIstrings.txt (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/lex.fsl (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/lex.fsl (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/pars.fsy (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/pars.fsy (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/pplex.fsl (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/pplex.fsl (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/pppars.fsy (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/pppars.fsy (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/LexFilter.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/LexFilter.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/LexHelpers.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/LexHelpers.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/ParseHelpers.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/ParseHelpers.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/PrettyNaming.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/PrettyNaming.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/SyntaxTree.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/SyntaxTree.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/SyntaxTreeOps.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/SyntaxTreeOps.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/SyntaxTrivia.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/SyntaxTrivia.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/UnicodeLexing.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/UnicodeLexing.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/XmlDoc.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/SyntaxTree/XmlDoc.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/FileSystem.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/FileSystem.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/HashMultiMap.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/HashMultiMap.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/ildiag.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/ildiag.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/illib.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/illib.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/InternalCollections.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/InternalCollections.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/lib.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/lib.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/PathMap.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/PathMap.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/QueueList.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/QueueList.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/range.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/range.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/rational.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/rational.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/ResizeArray.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/ResizeArray.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/RidHelpers.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/sformat.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/sformat.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/sr.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/sr.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/TaggedCollections.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/TaggedCollections.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/XmlAdapters.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/XmlAdapters.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/zmap.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/zmap.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/zset.fs (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/Utilities/zset.fsi (23d93522a56e139e2fc85e6d2591d38698ae8d38)
src/Compiler/AbstractIL/il.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/il.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/ilascii.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/ilascii.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/illex.fsl (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/illex.fsl (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/ilpars.fsy (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/ilpars.fsy (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/ilx.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/AbstractIL/ilx.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Checking/CheckDeclarations.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/DiagnosticOptions.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/DiagnosticOptions.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/DiagnosticsLogger.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/DiagnosticsLogger.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/LanguageFeatures.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/LanguageFeatures.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/Logger.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/Logger.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/prim-lexing.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/prim-lexing.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/prim-parsing.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/prim-parsing.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/TextLayoutRender.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/TextLayoutRender.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Facilities/UtilsStrings.txt (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/FSComp.txt (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/FSStrings.resx (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Interactive/FSIstrings.txt (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/lex.fsl (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/lex.fsl (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/pars.fsy (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/pars.fsy (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/pplex.fsl (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/pplex.fsl (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/pppars.fsy (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/pppars.fsy (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/LexFilter.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/LexFilter.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/LexHelpers.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/LexHelpers.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/ParseHelpers.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/ParseHelpers.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/PrettyNaming.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/PrettyNaming.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/SyntaxTree.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/SyntaxTree.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/SyntaxTreeOps.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/SyntaxTreeOps.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/SyntaxTrivia.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/SyntaxTrivia.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/UnicodeLexing.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/UnicodeLexing.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/XmlDoc.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/SyntaxTree/XmlDoc.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/FileSystem.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/FileSystem.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/HashMultiMap.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/HashMultiMap.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/ildiag.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/ildiag.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/illib.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/illib.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/InternalCollections.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/InternalCollections.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/lib.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/lib.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/PathMap.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/PathMap.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/QueueList.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/QueueList.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/range.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/range.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/rational.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/rational.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/ResizeArray.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/ResizeArray.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/RidHelpers.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/sformat.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/sformat.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/sr.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/sr.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/TaggedCollections.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/TaggedCollections.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/XmlAdapters.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/XmlAdapters.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/zmap.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/zmap.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/zset.fs (b78ad5cd6feea006986869506f33aab84c37398a)
src/Compiler/Utilities/zset.fsi (b78ad5cd6feea006986869506f33aab84c37398a)
GROUP client
STORAGE: NONE
NUGET
Expand Down
16 changes: 16 additions & 0 deletions src/Fantomas.Core.Tests/LetBindingTests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2115,3 +2115,19 @@ let a =
)
"""

[<Test>]
let ``or in TraitCall expr`` () =
formatSourceString
false
"""
let inline (!!) (x: ^a) : ^b = ((^a or ^b): (static member op_Implicit: ^a -> ^b) x)
"""
config
|> prepend newline
|> should
equal
"""
let inline (!!) (x: ^a) : ^b =
((^a or ^b): (static member op_Implicit: ^a -> ^b) x)
"""
12 changes: 12 additions & 0 deletions src/Fantomas.Core/AstTransformer.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1554,6 +1554,18 @@ and visitSynType (st: SynType) : TriviaNode =
yield! (Option.toList >> List.map visitIdent) identOpt
yield node |])
|> finalContinuation)
| SynType.Or (lhs, rhs, range, trivia) ->
let continuations: ((TriviaNode -> TriviaNode) -> TriviaNode) list =
[ visit lhs; visit rhs ]

let finalContinuation (nodes: TriviaNode list) : TriviaNode =
mkNodeWithChildren
SynType_Or
range
(sortChildren [| yield! nodes; yield mkNode SynType_Or_Or trivia.OrKeyword |])
|> finalContinuation

Continuation.sequence continuations finalContinuation

visit st id

Expand Down
11 changes: 3 additions & 8 deletions src/Fantomas.Core/CodePrinter.fs
Original file line number Diff line number Diff line change
Expand Up @@ -513,18 +513,12 @@ and genExprSepEqPrependType
genEq equalsAstType equalsRange
+> sepSpaceOrIndentAndNlnIfExpressionExceedsPageWidth (genExpr astContext e)

and genTyparList astContext tps =
colSurr sepOpenT sepCloseT wordOr tps (genTypar astContext)

and genTypeSupportMember astContext st =
match st with
| SynType.Var (td, _) -> genTypar astContext td
| TLongIdent sli -> genSynLongIdent false sli
| _ -> !- ""

and genTypeSupportMemberList astContext tps =
colSurr sepOpenT sepCloseT wordOr tps (genTypeSupportMember astContext)

and genTypeAndParam astContext (typeName: Context -> Context) (tds: SynTyparDecls option) tcs =
let types openSep tds tcs closeSep =
(openSep
Expand Down Expand Up @@ -1310,7 +1304,7 @@ and genExpr astContext synExpr ctx =
let genMatchExpr = genMatchBangWith astContext matchRange e withRange
atCurrentColumn (genMatchExpr +> sepNln +> genClauses astContext cs)
| TraitCall (tps, msg, e) ->
col sepSpace tps (genType astContext)
genType astContext tps
+> sepColon
+> sepOpenT
+> genMemberSig astContext msg
Expand Down Expand Up @@ -3951,6 +3945,7 @@ and genType astContext t =
+> optSingle (fun id -> genIdent id +> sepColon) identOpt
+> autoIndentAndNlnIfExpressionExceedsPageWidth (genType astContext innerT)
|> genTriviaFor SynType_SignatureParameter t.Range
| TOr (lhs, orRange, rhs) -> genType astContext lhs +> !- " or " +> genType astContext rhs
| t -> failwithf "Unexpected type: %O" t

and genSynTupleTypeSegments astContext ts =
Expand Down Expand Up @@ -4095,7 +4090,7 @@ and genTypeConstraint astContext node =
| TyparDefaultsToType (tp, t) -> !- "default " +> genTypar astContext tp +> sepColon +> genType astContext t
| TyparSubtypeOfType (tp, t) -> genTypar astContext tp +> !- " :> " +> genType astContext t
| TyparSupportsMember (tps, msg) ->
genTypeSupportMemberList astContext tps
genType astContext tps
+> sepColon
+> sepOpenT
+> genMemberSig astContext msg
Expand Down
7 changes: 0 additions & 7 deletions src/Fantomas.Core/Context.fs
Original file line number Diff line number Diff line change
Expand Up @@ -545,13 +545,6 @@ let colPre f2 f1 (c: seq<'T>) f (ctx: Context) =
let colPreEx f2 f1 (c: seq<'T>) f (ctx: Context) =
if Seq.isEmpty c then ctx else colEx f1 c f (f2 ctx)

/// Similar to col, but apply two more functions fStart, fEnd at the beginning and the end if the input sequence is bigger thn one item
let colSurr fStart fEnd f1 (c: list<'T>) f (ctx: Context) =
if Seq.isEmpty c then
ctx
else
(col f1 c f |> fun g -> if (List.moreThanOne c) then fStart +> g +> fEnd else g) ctx

/// If there is a value, apply f and f' accordingly, otherwise do nothing
let opt (f': Context -> _) o f (ctx: Context) =
match o with
Expand Down
Loading

0 comments on commit de8b5a7

Please sign in to comment.