From 4a65cb4c1f39475b397632376847df75864b083d Mon Sep 17 00:00:00 2001 From: Florian Verdonck Date: Sat, 29 Jan 2022 10:41:31 +0100 Subject: [PATCH] Remove tokenKinds from TokenParser.fs. (#2048) --- src/Fantomas/AstTransformer.fs | 6 ++---- src/Fantomas/CodePrinter.fs | 13 +++++++++---- src/Fantomas/SourceParser.fs | 2 +- src/Fantomas/TokenParser.fs | 6 +----- src/Fantomas/TriviaTypes.fs | 3 ++- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Fantomas/AstTransformer.fs b/src/Fantomas/AstTransformer.fs index 56f15f6e67..28ab282f62 100644 --- a/src/Fantomas/AstTransformer.fs +++ b/src/Fantomas/AstTransformer.fs @@ -1182,14 +1182,12 @@ module private Ast = visit elementType (fun nodes -> mkNode SynType_Array range :: nodes |> finalContinuation) - | SynType.Fun (argType, returnType, range) -> + | SynType.Fun (argType, returnType, _range) -> let continuations: ((TriviaNodeAssigner list -> TriviaNodeAssigner list) -> TriviaNodeAssigner list) list = [ visit argType; visit returnType ] let finalContinuation (nodes: TriviaNodeAssigner list list) : TriviaNodeAssigner list = - mkNode SynType_Fun range - :: (List.collect id nodes) - |> finalContinuation + List.collect id nodes |> finalContinuation Continuation.sequence continuations finalContinuation | SynType.Var (_, range) -> diff --git a/src/Fantomas/CodePrinter.fs b/src/Fantomas/CodePrinter.fs index 5aac3cb103..c120245091 100644 --- a/src/Fantomas/CodePrinter.fs +++ b/src/Fantomas/CodePrinter.fs @@ -4244,7 +4244,9 @@ and genType astContext outerBracket t = | THashConstraint t -> let wrapInParentheses f = match t with - | TApp (_, ts, isPostfix) when (isPostfix && List.isNotEmpty ts) -> sepOpenT +> f +> sepCloseT + | TApp (_, ts, isPostfix, range) when (isPostfix && List.isNotEmpty ts) -> + sepOpenT +> f +> sepCloseT + |> genTriviaFor SynType_App range | _ -> f !- "#" +> wrapInParentheses (loop t) @@ -4264,9 +4266,11 @@ and genType astContext outerBracket t = // Do similar for tuples after an arrow | TFun (t, TTuple ts) -> loop t +> sepArrow +> loopTTupleList ts | TFuns ts -> col sepArrow ts loop - | TApp (TLongIdent "nativeptr", [ t ], true) when astContext.IsCStylePattern -> loop t -- "*" - | TApp (TLongIdent "byref", [ t ], true) when astContext.IsCStylePattern -> loop t -- "&" - | TApp (t, ts, isPostfix) -> + | TApp (TLongIdent "nativeptr", [ t ], true, range) when astContext.IsCStylePattern -> + loop t -- "*" |> genTriviaFor SynType_App range + | TApp (TLongIdent "byref", [ t ], true, range) when astContext.IsCStylePattern -> + loop t -- "&" |> genTriviaFor SynType_App range + | TApp (t, ts, isPostfix, range) -> let postForm = match ts with | [] -> loop t @@ -4282,6 +4286,7 @@ and genType astContext outerBracket t = postForm (loop t +> genPrefixTypes astContext ts current.Range) + |> genTriviaFor SynType_App range | TLongIdentApp (t, s, ts) -> loop t -- sprintf ".%s" s diff --git a/src/Fantomas/SourceParser.fs b/src/Fantomas/SourceParser.fs index 7457ed1fca..9bcdb87175 100644 --- a/src/Fantomas/SourceParser.fs +++ b/src/Fantomas/SourceParser.fs @@ -1463,7 +1463,7 @@ let rec (|TFuns|_|) = let (|TApp|_|) = function - | SynType.App (t, _, ts, _, _, isPostfix, _) -> Some(t, ts, isPostfix) + | SynType.App (t, _, ts, _, _, isPostfix, range) -> Some(t, ts, isPostfix, range) | _ -> None let (|TLongIdentApp|_|) = diff --git a/src/Fantomas/TokenParser.fs b/src/Fantomas/TokenParser.fs index 6c0c996a1b..3d6a1c7c49 100644 --- a/src/Fantomas/TokenParser.fs +++ b/src/Fantomas/TokenParser.fs @@ -1129,8 +1129,6 @@ let private tokenNames = "AND_BANG" "IN" ] -let private tokenKinds = [ FSharpTokenCharKind.Operator ] - let internal getFsToken tokenName = match tokenName with | "AMP" -> AMP @@ -1177,9 +1175,7 @@ let internal getFsToken tokenName = let getTriviaNodesFromTokens (mkRange: MkRange) (tokens: Token list) = tokens - |> List.filter (fun t -> - List.exists (fun tn -> tn = t.TokenInfo.TokenName) tokenNames - || List.exists (fun tk -> tk = t.TokenInfo.CharClass) tokenKinds) + |> List.filter (fun t -> List.exists (fun tn -> tn = t.TokenInfo.TokenName) tokenNames) |> List.map (fun t -> let range = getRangeBetween mkRange t t TriviaNodeAssigner(TriviaNodeType.Token(getFsToken t.TokenInfo.TokenName, t), range)) diff --git a/src/Fantomas/TriviaTypes.fs b/src/Fantomas/TriviaTypes.fs index 179b487e1a..0910c03c4d 100644 --- a/src/Fantomas/TriviaTypes.fs +++ b/src/Fantomas/TriviaTypes.fs @@ -336,7 +336,8 @@ type FsAstType = | SynType_LongIdentApp | SynType_Tuple | SynType_Array - | SynType_Fun + // Not an ideal trivia node candidate as the ident inside the SynType.Fun are better suited + // | SynType_Fun | SynType_Var | SynType_Anon | SynType_WithGlobalConstraints