From 15050d193d70e2e490a5a25873deaf9c3a411b0d Mon Sep 17 00:00:00 2001 From: Don Syme Date: Mon, 1 Nov 2021 08:41:48 +0000 Subject: [PATCH] Fix #1937 (#1938) * fix 1937 * fix format * Use formatSourceString in unit test. Co-authored-by: nojaf --- src/Fantomas.Tests/OperatorTests.fs | 29 +++++++++++++++++++++++++++++ src/Fantomas/SourceParser.fs | 6 +++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/Fantomas.Tests/OperatorTests.fs b/src/Fantomas.Tests/OperatorTests.fs index e3f561e626..38cafc5a21 100644 --- a/src/Fantomas.Tests/OperatorTests.fs +++ b/src/Fantomas.Tests/OperatorTests.fs @@ -1219,3 +1219,32 @@ module Foo = | true -> id | false -> id) """ + +[] +let ``qualified name to active pattern, 1937`` () = + formatSourceString + false + """ +StringPosition.(|TrimStart|) +(|TrimStart|) +StringPosition.(|TrimStart|_|) +(|TrimStart|_|) +StringPosition.(|A|B|) +(|A|B|) + +let f (|A|B|) = (|A|B|) +""" + config + |> prepend newline + |> should + equal + """ +StringPosition.(|TrimStart|) +(|TrimStart|) +StringPosition.(|TrimStart|_|) +(|TrimStart|_|) +StringPosition.(|A|B|) +(|A|B|) + +let f (|A|B|) = (|A|B|) +""" diff --git a/src/Fantomas/SourceParser.fs b/src/Fantomas/SourceParser.fs index 22ae860276..e18a566652 100644 --- a/src/Fantomas/SourceParser.fs +++ b/src/Fantomas/SourceParser.fs @@ -36,7 +36,11 @@ let (|Ident|) (s: Ident) = | "not" -> "not" | "params" -> "``params``" | "parallel" -> "``parallel``" - | _ -> PrettyNaming.AddBackticksToIdentifierIfNeeded ident + | _ -> + if IsActivePatternName ident then + sprintf "(%s)" (DecompileOpName ident) + else + PrettyNaming.AddBackticksToIdentifierIfNeeded ident let (|LongIdent|) (li: LongIdent) = li