Skip to content

Commit

Permalink
Process changes of FCS main branch 18/01.
Browse files Browse the repository at this point in the history
Remove EQUALS and WITH keyword from trivia tokens.
  • Loading branch information
nojaf committed Jan 22, 2022
1 parent 14ee787 commit fb0a0f4
Show file tree
Hide file tree
Showing 13 changed files with 461 additions and 371 deletions.
4 changes: 2 additions & 2 deletions src/Fantomas.Tests/ClassTests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -393,8 +393,8 @@ let ``member properties with type annotation`` () =
and set (_: int): unit = ()
member this.Z
with get (): int = 1
and set (_: int): unit = ()
with set (_: int): unit = ()
and get (): int = 1
"""

[<Test>]
Expand Down
2 changes: 1 addition & 1 deletion src/Fantomas.Tests/CommentTests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1670,7 +1670,7 @@ with
"""

[<Test>]
let ``comment shold not be lost`` () =
let ``comment should not be lost`` () =
formatSourceString
false
"""
Expand Down
3 changes: 2 additions & 1 deletion src/Fantomas.Tests/TestHelpers.fs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ let sharedChecker = lazy (FSharpChecker.Create())

let private safeToIgnoreWarnings =
[ "This construct is deprecated: it is only for use in the F# library"
"Identifiers containing '@' are reserved for use in F# code generation" ]
"Identifiers containing '@' are reserved for use in F# code generation"
"XML comment is not placed on a valid language element." ]

let private isValidAndHasNoWarnings fileName source parsingOptions =
let allDefineOptions, _ = TokenParser.getDefines source
Expand Down
2 changes: 1 addition & 1 deletion src/Fantomas.Tests/TriviaTests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ let ``block comment added to trivia`` () =
let triviaNodes = toTrivia source |> List.head

match triviaNodes with
| [ { ContentBefore = [ Comment (BlockComment (comment, _, _)) ] } ] -> comment == "(* meh *)"
| [ { ContentAfter = [ Comment (BlockComment (comment, _, _)) ] } ] -> comment == "(* meh *)"
| _ -> failwith "Expected block comment"

[<Test>]
Expand Down
23 changes: 0 additions & 23 deletions src/Fantomas/AstExtensions.fs
Original file line number Diff line number Diff line change
Expand Up @@ -59,26 +59,3 @@ type SynModuleSigDecl with
| SynModuleSigDecl.NestedModule(moduleInfo = SynComponentInfo (attributes = attrs; longId = lid :: _)) ->
hasLinesBetweenAttributesAndFirstNode attrs lid.idRange
| _ -> None

// TODO: Remove when https://github.com/dotnet/fsharp/pull/12441 is part of FCS
type SynExceptionDefnRepr with
member this.FullRange: range =
match this with
| SynExceptionDefnRepr (attributes = attrs; range = m) ->
match attrs with
| h :: _ -> mkRange m.FileName h.Range.Start m.End
| _ -> m

type SynExceptionSig with
member this.FullRange: range =
match this with
| SynExceptionSig (exnRepr = exnRepr; members = members; range = m) ->
match List.tryLast members with
| Some lastMember -> mkRange m.FileName exnRepr.FullRange.Start lastMember.Range.End
| None -> exnRepr.FullRange

type SynModuleSigDecl with
member this.FullRange: Range =
match this with
| SynModuleSigDecl.Exception (SynExceptionSig _ as ses, _) -> ses.FullRange
| _ -> this.Range
174 changes: 99 additions & 75 deletions src/Fantomas/AstTransformer.fs

Large diffs are not rendered by default.

67 changes: 19 additions & 48 deletions src/Fantomas/CodeFormatterImpl.fs
Original file line number Diff line number Diff line change
Expand Up @@ -93,20 +93,19 @@ let isValidAST ast =

and validateModuleDecl (decl: SynModuleDecl) =
match decl with
| SynModuleDecl.Exception (SynExceptionDefn (_repr, synMembers, _defnRange), _range) ->
| SynModuleDecl.Exception(exnDefn = SynExceptionDefn (members = synMembers)) ->
List.forall validateMemberDefn synMembers
| SynModuleDecl.Let (_isRecursive, bindings, _range) -> List.forall validateBinding bindings
| SynModuleDecl.ModuleAbbrev (_lhs, _rhs, _range) -> true
| SynModuleDecl.NamespaceFragment fragment -> validateModuleOrNamespace fragment
| SynModuleDecl.NestedModule (_componentInfo, _isRec, modules, _isContinuing, _range) ->
List.forall validateModuleDecl modules
| SynModuleDecl.NestedModule (decls = decls) -> List.forall validateModuleDecl decls
| SynModuleDecl.Types (typeDefs, _range) -> List.forall validateTypeDefn typeDefs
| SynModuleDecl.DoExpr (_, expr, _) -> validateExpr expr
| SynModuleDecl.Attributes _
| SynModuleDecl.HashDirective _
| SynModuleDecl.Open _ -> true

and validateTypeDefn (SynTypeDefn (_componentInfo, representation, members, _implicitConstructor, _range)) =
and validateTypeDefn (SynTypeDefn (typeRepr = representation; members = members)) =
validateTypeDefnRepr representation
&& List.forall validateMemberDefn members

Expand All @@ -128,18 +127,8 @@ let isValidAST ast =
and validateMemberDefn (memberDefn: SynMemberDefn) =
match memberDefn with
| SynMemberDefn.AbstractSlot (_synValSig, _memberFlags, _range) -> true
| SynMemberDefn.AutoProperty (_attributes,
_isStatic,
_id,
_type,
_memberKind,
_memberFlags,
_xmlDoc,
_access,
expr,
_r1,
_r2) -> validateExpr expr
| SynMemberDefn.Interface (_interfaceType, members, _range) ->
| SynMemberDefn.AutoProperty (synExpr = expr) -> validateExpr expr
| SynMemberDefn.Interface (members = members) ->
defaultArg (Option.map (List.forall validateMemberDefn) members) true
| SynMemberDefn.Member (binding, _range) -> validateBinding binding
| SynMemberDefn.NestedType (typeDef, _access, _range) -> validateTypeDefn typeDef
Expand All @@ -150,20 +139,7 @@ let isValidAST ast =
| SynMemberDefn.ImplicitCtor _ -> true
| SynMemberDefn.ImplicitInherit (_, expr, _, _) -> validateExpr expr

and validateBinding
(SynBinding (_access,
_bindingKind,
_isInline,
_isMutable,
_attrs,
_xmldoc,
_valData,
headPat,
_retTy,
expr,
_bindingRange,
_seqPoint))
=
and validateBinding (SynBinding (headPat = headPat; expr = expr)) =
validateExpr expr && validatePattern headPat

and validateClause (Clause (pat, exprOpt, _, expr)) =
Expand All @@ -184,20 +160,21 @@ let isValidAST ast =
| SynExpr.ArrayOrList (_, synExprList, _range) -> List.forall validateExpr synExprList

| SynExpr.Record (_inheritOpt, _copyOpt, fields, _range) ->
List.forall (fun (_, e, _) -> defaultArg (Option.map validateExpr e) true) fields
| SynExpr.AnonRecd (_inheritOpt, _copyOpt, fields, _range) -> List.forall (fun (_, e) -> validateExpr e) fields
List.forall (fun (SynExprRecordField (expr = e)) -> defaultArg (Option.map validateExpr e) true) fields
| SynExpr.AnonRecd (_inheritOpt, _copyOpt, fields, _range) ->
List.forall (fun (_, _, e) -> validateExpr e) fields

| SynExpr.New (_, _synType, synExpr, _range) -> validateExpr synExpr

| SynExpr.ObjExpr (_ty, _baseCallOpt, binds, _ifaces, _range1, _range2) -> List.forall validateBinding binds
| SynExpr.ObjExpr (bindings = binds) -> List.forall validateBinding binds

| SynExpr.While (_sequencePointInfoForWhileLoop, synExpr1, synExpr2, _range) ->
List.forall validateExpr [ synExpr1; synExpr2 ]
| SynExpr.ForEach (_sequencePointInfoForForLoop, _seqExprOnly, _isFromSource, synPat, synExpr1, synExpr2, _range) ->
List.forall validateExpr [ synExpr1; synExpr2 ]
&& validatePattern synPat

| SynExpr.For (_sequencePointInfoForForLoop, _ident, synExpr1, _, synExpr2, synExpr3, _range) ->
| SynExpr.For (identBody = synExpr1; toBody = synExpr2; doBody = synExpr3) ->
List.forall validateExpr [ synExpr1; synExpr2; synExpr3 ]

| SynExpr.ArrayOrListComputed (_, synExpr, _range) -> validateExpr synExpr
Expand All @@ -206,8 +183,8 @@ let isValidAST ast =

| SynExpr.MatchLambda (_isExnMatch, _argm, synMatchClauseList, _spBind, _wholem) ->
List.forall validateClause synMatchClauseList
| SynExpr.Match (_sequencePointInfoForBinding, synExpr, synMatchClauseList, _range)
| SynExpr.MatchBang (_sequencePointInfoForBinding, synExpr, synMatchClauseList, _range) ->
| SynExpr.Match (expr = synExpr; clauses = synMatchClauseList)
| SynExpr.MatchBang (expr = synExpr; clauses = synMatchClauseList) ->
validateExpr synExpr
&& List.forall validateClause synMatchClauseList

Expand All @@ -224,13 +201,7 @@ let isValidAST ast =
List.forall validateBinding synBindingList
&& validateExpr synExpr

| SynExpr.TryWith (synExpr,
_range,
synMatchClauseList,
_range2,
_range3,
_sequencePointInfoForTry,
_sequencePointInfoForWith) ->
| SynExpr.TryWith (tryExpr = synExpr; withCases = synMatchClauseList) ->
validateExpr synExpr
&& List.forall validateClause synMatchClauseList

Expand Down Expand Up @@ -293,13 +264,13 @@ let isValidAST ast =
| SynExpr.YieldOrReturnFrom (_, synExpr, _range)
| SynExpr.DoBang (synExpr, _range) -> validateExpr synExpr

| SynExpr.LetOrUseBang (_sequencePointInfoForBinding, _, _, synPat, synExpr1, ands, synExpr2, _range) ->
| SynExpr.LetOrUseBang (pat = synPat; rhs = synExpr1; andBangs = ands; body = synExpr2) ->
List.forall validateExpr [ synExpr1; synExpr2 ]
&& validatePattern synPat
&& List.forall
(fun (pat, e) -> validateExpr e && validatePattern pat)
(ands
|> List.map (fun (_, _, _, pat, e, _) -> pat, e))
|> List.map (fun (SynExprAndBang (pat = pat; body = e)) -> pat, e))

| SynExpr.LibraryOnlyILAssembly _
| SynExpr.LibraryOnlyStaticOptimization _
Expand Down Expand Up @@ -331,11 +302,11 @@ let isValidAST ast =
| SynPat.Attrib (pat, _attrib, _range) -> validatePattern pat
| SynPat.Or (pat1, pat2, _range) -> validatePattern pat1 && validatePattern pat2
| SynPat.Ands (pats, _range) -> List.forall validatePattern pats
| SynPat.LongIdent (_, _, _, constructorArgs, _, _) -> validateConstructorArgs constructorArgs
| SynPat.LongIdent (argPats = constructorArgs) -> validateConstructorArgs constructorArgs
| SynPat.Tuple (false, pats, _range) -> List.forall validatePattern pats
| SynPat.Paren (pat, _range) -> validatePattern pat
| SynPat.ArrayOrList (_isArray, pats, _range) -> List.forall validatePattern pats
| SynPat.Record (identPats, _range) -> List.forall (fun (_, pat) -> validatePattern pat) identPats
| SynPat.Record (identPats, _range) -> List.forall (fun (_, _, pat) -> validatePattern pat) identPats
| SynPat.OptionalVal (_ident, _range) -> true
| SynPat.IsInst (_typ, _range) -> true
| SynPat.QuoteExpr (expr, _range) -> validateExpr expr
Expand All @@ -347,7 +318,7 @@ let isValidAST ast =
and validateConstructorArgs =
function
| SynArgPats.Pats pats -> List.forall validatePattern pats
| SynArgPats.NamePatPairs (identPats, _range) -> List.forall (snd >> validatePattern) identPats
| SynArgPats.NamePatPairs (identPats, _range) -> List.forall (fun (_, _, pat) -> validatePattern pat) identPats

match ast with
| ParsedInput.SigFile _input ->
Expand Down
Loading

0 comments on commit fb0a0f4

Please sign in to comment.