From 077a3203c2fd65c78211d42528aa3f45919e3a48 Mon Sep 17 00:00:00 2001 From: nojaf Date: Thu, 5 May 2022 08:54:11 +0200 Subject: [PATCH] Replace LongIdentWithDots with SynLongIdent. --- src/fsharp/CheckComputationExpressions.fs | 2 +- src/fsharp/CheckDeclarations.fs | 10 +++--- src/fsharp/CheckExpressions.fs | 34 +++++++++---------- src/fsharp/SyntaxTreeOps.fs | 6 ++-- .../service/ServiceInterfaceStubGenerator.fs | 4 +-- src/fsharp/service/ServiceNavigation.fs | 8 ++--- .../service/ServiceParamInfoLocations.fs | 15 ++++---- src/fsharp/service/ServiceParsedInputOps.fs | 24 ++++++------- src/fsharp/symbols/Symbols.fs | 2 +- 9 files changed, 52 insertions(+), 53 deletions(-) diff --git a/src/fsharp/CheckComputationExpressions.fs b/src/fsharp/CheckComputationExpressions.fs index 9350c98addd..64dde88c6d9 100644 --- a/src/fsharp/CheckComputationExpressions.fs +++ b/src/fsharp/CheckComputationExpressions.fs @@ -1232,7 +1232,7 @@ let TcComputationExpression (cenv: cenv) env (overallTy: OverallTy) tpenv (mWhol // 'use! pat = e1 in e2' --> build.Bind(e1, (function _argN -> match _argN with pat -> build.Using(x, (fun _argN -> match _argN with pat -> e2)))) | SynExpr.LetOrUseBang (bindDebugPoint=spBind; isUse=true; isFromSource=isFromSource; pat=SynPat.Named (ident=SynIdent(id,_); isThisVal=false) as pat; rhs=rhsExpr; andBangs=[]; body=innerComp) - | SynExpr.LetOrUseBang (bindDebugPoint=spBind; isUse=true; isFromSource=isFromSource; pat=SynPat.LongIdent (longDotId=LongIdentWithDots([id], _)) as pat; rhs=rhsExpr; andBangs=[]; body=innerComp) -> + | SynExpr.LetOrUseBang (bindDebugPoint=spBind; isUse=true; isFromSource=isFromSource; pat=SynPat.LongIdent (longDotId=SynLongIdent([id], _, _)) as pat; rhs=rhsExpr; andBangs=[]; body=innerComp) -> let mBind = match spBind with DebugPointAtBinding.Yes m -> m | _ -> rhsExpr.Range if isQuery then error(Error(FSComp.SR.tcBindMayNotBeUsedInQueries(), mBind)) diff --git a/src/fsharp/CheckDeclarations.fs b/src/fsharp/CheckDeclarations.fs index 8f92167d8b0..9ce89d6306f 100644 --- a/src/fsharp/CheckDeclarations.fs +++ b/src/fsharp/CheckDeclarations.fs @@ -3182,7 +3182,7 @@ module EstablishTypeDefinitionCores = let private (|TyconCoreAbbrevThatIsReallyAUnion|_|) (hasMeasureAttr, envinner: TcEnv, id: Ident) synTyconRepr = match synTyconRepr with - | SynTypeDefnSimpleRepr.TypeAbbrev(_, StripParenTypes (SynType.LongIdent(LongIdentWithDots([unionCaseName], _))), m) + | SynTypeDefnSimpleRepr.TypeAbbrev(_, StripParenTypes (SynType.LongIdent(SynLongIdent([unionCaseName], _, _))), m) when (not hasMeasureAttr && (isNil (LookupTypeNameInEnvNoArity OpenQualified unionCaseName.idText envinner.NameEnv) || @@ -3531,9 +3531,9 @@ module EstablishTypeDefinitionCores = /// Get the items on the r.h.s. of a 'type X = ABC<...>' definition let private TcTyconDefnCore_GetGenerateDeclaration_Rhs (StripParenTypes rhsType) = match rhsType with - | SynType.App (StripParenTypes (SynType.LongIdent(LongIdentWithDots(tc, _))), _, args, _commas, _, _postfix, m) -> Some(tc, args, m) - | SynType.LongIdent (LongIdentWithDots(tc, _) as lidwd) -> Some(tc, [], lidwd.Range) - | SynType.LongIdentApp (StripParenTypes (SynType.LongIdent (LongIdentWithDots(tc, _))), LongIdentWithDots(longId, _), _, args, _commas, _, m) -> Some(tc@longId, args, m) + | SynType.App (StripParenTypes (SynType.LongIdent(SynLongIdent(tc, _, _))), _, args, _commas, _, _postfix, m) -> Some(tc, args, m) + | SynType.LongIdent (SynLongIdent(tc, _, _) as lidwd) -> Some(tc, [], lidwd.Range) + | SynType.LongIdentApp (StripParenTypes (SynType.LongIdent (SynLongIdent(tc, _, _))), SynLongIdent(longId, _, _), _, args, _commas, _, m) -> Some(tc@longId, args, m) | _ -> None /// Check whether 'type X = ABC<...>' is a generative provided type definition @@ -5071,7 +5071,7 @@ module TcDeclarations = memberFlags.MemberKind=SynMemberKind.Constructor && // REVIEW: This is a syntactic approximation (match valSpfn.SynType, valSpfn.SynInfo.CurriedArgInfos with - | StripParenTypes (SynType.Fun (StripParenTypes (SynType.LongIdent (LongIdentWithDots([id], _))), _, _)), [[_]] when id.idText = "unit" -> true + | StripParenTypes (SynType.Fun (StripParenTypes (SynType.LongIdent (SynLongIdent([id], _, _))), _, _)), [[_]] when id.idText = "unit" -> true | _ -> false) | _ -> false) diff --git a/src/fsharp/CheckExpressions.fs b/src/fsharp/CheckExpressions.fs index 9412b20b442..c00f96f6c1b 100644 --- a/src/fsharp/CheckExpressions.fs +++ b/src/fsharp/CheckExpressions.fs @@ -2474,7 +2474,7 @@ module BindingNormalization = // of available items, to the point that you can't even define a function with the same name as an existing union case. match pat with | SynPat.FromParseError(p, _) -> normPattern p - | SynPat.LongIdent (LongIdentWithDots(longId, _), _, toolId, tyargs, SynArgPats.Pats args, vis, m) -> + | SynPat.LongIdent (SynLongIdent(longId, _, _), _, toolId, tyargs, SynArgPats.Pats args, vis, m) -> let typars = match tyargs with None -> inferredTyparDecls | Some typars -> typars match memberFlagsOpt with | None -> @@ -3152,12 +3152,12 @@ let (|SimpleEqualsExpr|_|) expr = /// Detect a named argument at a callsite let TryGetNamedArg expr = match expr with - | SimpleEqualsExpr(LongOrSingleIdent(isOpt, LongIdentWithDots([a], _), None, _), b) -> Some(isOpt, a, b) + | SimpleEqualsExpr(LongOrSingleIdent(isOpt, SynLongIdent([a], _, _), None, _), b) -> Some(isOpt, a, b) | _ -> None let inline IsNamedArg expr = match expr with - | SimpleEqualsExpr(LongOrSingleIdent(_, LongIdentWithDots([_], _), None, _), _) -> true + | SimpleEqualsExpr(LongOrSingleIdent(_, SynLongIdent([_], _, _), None, _), _) -> true | _ -> false /// Get the method arguments at a callsite, taking into account named and optional arguments @@ -4316,11 +4316,11 @@ and TcTypeOrMeasure optKind cenv newOk checkCxs occ env (tpenv: UnscopedTyparEnv let g = cenv.g match ty with - | SynType.LongIdent(LongIdentWithDots([], _)) -> + | SynType.LongIdent(SynLongIdent([], _, _)) -> // special case when type name is absent - i.e. empty inherit part in type declaration g.obj_ty, tpenv - | SynType.LongIdent(LongIdentWithDots(tc, _) as lidwd) -> + | SynType.LongIdent(SynLongIdent(tc, _, _) as lidwd) -> let m = lidwd.Range let ad = env.eAccessRights let tinstEnclosing, tcref = ForceRaise(ResolveTypeLongIdent cenv.tcSink cenv.nameResolver occ OpenQualified env.NameEnv ad tc TypeNameResolutionStaticArgsInfo.DefiniteEmpty PermitDirectReferenceToGeneratedType.No) @@ -4336,7 +4336,7 @@ and TcTypeOrMeasure optKind cenv newOk checkCxs occ env (tpenv: UnscopedTyparEnv | _, TyparKind.Type -> TcTypeApp cenv newOk checkCxs occ env tpenv m tcref tinstEnclosing [] - | SynType.App (StripParenTypes (SynType.LongIdent(LongIdentWithDots(tc, _))), _, args, _commas, _, postfix, m) -> + | SynType.App (StripParenTypes (SynType.LongIdent(SynLongIdent(tc, _, _))), _, args, _commas, _, postfix, m) -> let ad = env.eAccessRights let tinstEnclosing, tcref = @@ -4367,7 +4367,7 @@ and TcTypeOrMeasure optKind cenv newOk checkCxs occ env (tpenv: UnscopedTyparEnv errorR(Error(FSComp.SR.tcUnitsOfMeasureInvalidInTypeConstructor(), m)) NewErrorType (), tpenv - | SynType.LongIdentApp (ltyp, LongIdentWithDots(longId, _), _, args, _commas, _, m) -> + | SynType.LongIdentApp (ltyp, SynLongIdent(longId, _, _), _, args, _commas, _, m) -> let ad = env.eAccessRights let ltyp, tpenv = TcType cenv newOk checkCxs occ env tpenv ltyp match ltyp with @@ -4631,7 +4631,7 @@ and TcStaticConstantParameter cenv (env: TcEnv) tpenv kind (StripParenTypes v) i and CrackStaticConstantArgs cenv env tpenv (staticParameters: Tainted[], args: SynType list, container, containerName, m) = let args = args |> List.map (function - | StripParenTypes (SynType.StaticConstantNamed(StripParenTypes (SynType.LongIdent(LongIdentWithDots([id], _))), v, _)) -> Some id, v + | StripParenTypes (SynType.StaticConstantNamed(StripParenTypes (SynType.LongIdent(SynLongIdent([id], _, _))), v, _)) -> Some id, v | v -> None, v) let unnamedArgs = args |> Seq.takeWhile (fst >> Option.isNone) |> Seq.toArray |> Array.map snd @@ -5197,7 +5197,7 @@ and IsNameOf (cenv: cenv) (env: TcEnv) ad m (id: Ident) = /// Check a long identifier in a pattern and TcPatLongIdent warnOnUpper cenv env ad topValInfo vFlags (tpenv, names, takenNames) ty (longDotId, tyargs, args, vis, m) = - let (LongIdentWithDots(longId, _)) = longDotId + let (SynLongIdent(longId, _, _)) = longDotId if tyargs.IsSome then errorR(Error(FSComp.SR.tcInvalidTypeArgumentUsage(), m)) @@ -5688,7 +5688,7 @@ and TcExprThen cenv (overallTy: OverallTy) env tpenv isArg synExpr delayed = // e1.id1 // e1.id1.id2 // etc. - | SynExpr.DotGet (e1, _, LongIdentWithDots(longId, _), _) -> + | SynExpr.DotGet (e1, _, SynLongIdent(longId, _, _), _) -> TcNonControlFlowExpr env <| fun env -> TcExprThen cenv overallTy env tpenv false e1 ((DelayedDotLookup (longId, synExpr.RangeWithoutAnyExtraDot)) :: delayed) @@ -6407,7 +6407,7 @@ and TcExprStaticOptimization cenv overallTy env tpenv (constraints, e2, e3, m) = /// e1.longId <- e2 and TcExprDotSet cenv overallTy env tpenv (e1, lidwd, e2, mStmt) = - let (LongIdentWithDots(longId, _)) = lidwd + let (SynLongIdent(longId, _, _)) = lidwd if lidwd.ThereIsAnExtraDotAtTheEnd then // just drop rhs on the floor @@ -6419,7 +6419,7 @@ and TcExprDotSet cenv overallTy env tpenv (e1, lidwd, e2, mStmt) = /// e1.longId(e2) <- e3, very rarely used named property setters and TcExprDotNamedIndexedPropertySet cenv overallTy env tpenv (e1, lidwd, e2, e3, mStmt) = - let (LongIdentWithDots(longId, _)) = lidwd + let (SynLongIdent(longId, _, _)) = lidwd if lidwd.ThereIsAnExtraDotAtTheEnd then // just drop rhs on the floor let mExprAndDotLookup = unionRanges e1.Range (rangeOfLid longId) @@ -8253,7 +8253,7 @@ and TcNameOfExpr cenv env tpenv (synArg: SynExpr) = let m = cleanSynArg.Range let rec check overallTyOpt resultOpt expr (delayed: DelayedItem list) = match expr with - | LongOrSingleIdent (false, LongIdentWithDots(longId, _), _, _) -> + | LongOrSingleIdent (false, SynLongIdent(longId, _, _), _, _) -> let ad = env.eAccessRights let result = defaultArg resultOpt (List.last longId) @@ -8333,7 +8333,7 @@ and TcNameOfExpr cenv env tpenv (synArg: SynExpr) = check overallTyOpt resultOpt hd (DelayedTypeApp(types, m, m) :: delayed) // expr.ID allowed - | SynExpr.DotGet (hd, _, LongIdentWithDots(longId, _), _) -> + | SynExpr.DotGet (hd, _, SynLongIdent(longId, _, _), _) -> let result = defaultArg resultOpt (List.last longId) check overallTyOpt (Some result) hd ((DelayedDotLookup (longId, expr.RangeWithoutAnyExtraDot)) :: delayed) @@ -8489,7 +8489,7 @@ and GetLongIdentTypeNameInfo delayed = | _ -> TypeNameResolutionInfo.Default -and TcLongIdentThen cenv (overallTy: OverallTy) env tpenv (LongIdentWithDots(longId, _)) delayed = +and TcLongIdentThen cenv (overallTy: OverallTy) env tpenv (SynLongIdent(longId, _, _)) delayed = let ad = env.eAccessRights let typeNameResInfo = GetLongIdentTypeNameInfo delayed @@ -10114,7 +10114,7 @@ and CheckRecursiveBindingIds binds = match b with | SynPat.Named(SynIdent(id,_), _, _, _) | SynPat.As(_, SynPat.Named(SynIdent(id,_), _, _, _), _) - | SynPat.LongIdent(longDotId=LongIdentWithDots([id], _)) -> id.idText + | SynPat.LongIdent(longDotId=SynLongIdent([id], _, _)) -> id.idText | _ -> "" if nm <> "" && not (hashOfBinds.Add nm) then error(Duplicate("value", nm, m)) @@ -10641,7 +10641,7 @@ and TcAttributeEx canFail cenv (env: TcEnv) attrTgt attrEx (synAttr: SynAttribut let g = cenv.g - let (LongIdentWithDots(tycon, _)) = synAttr.TypeName + let (SynLongIdent(tycon, _, _)) = synAttr.TypeName let arg = synAttr.ArgExpr let targetIndicator = synAttr.Target let isAppliedToGetterOrSetter = synAttr.AppliesToGetterAndSetter diff --git a/src/fsharp/SyntaxTreeOps.fs b/src/fsharp/SyntaxTreeOps.fs index b893dbc7f20..a27775a174d 100644 --- a/src/fsharp/SyntaxTreeOps.fs +++ b/src/fsharp/SyntaxTreeOps.fs @@ -67,7 +67,7 @@ let (|LongOrSingleIdent|_|) inp = let (|SingleIdent|_|) inp = match inp with - | SynExpr.LongIdent (false, LongIdentWithDots([id], _), None, _) -> Some id + | SynExpr.LongIdent (false, SynLongIdent([id], _, _), None, _) -> Some id | SynExpr.Ident id -> Some id | _ -> None @@ -171,7 +171,7 @@ let mkSynPatMaybeVar lidwd vis m = SynPat.LongIdent (lidwd, None, None, None, S /// Extract the argument for patterns corresponding to the declaration of 'new ... = ...' let (|SynPatForConstructorDecl|_|) x = match x with - | SynPat.LongIdent (longDotId=LongIdentWithDots([_], _); argPats=SynArgPats.Pats [arg]) -> Some arg + | SynPat.LongIdent (longDotId=SynLongIdent([_], _, _); argPats=SynArgPats.Pats [arg]) -> Some arg | _ -> None /// Recognize the '()' in 'new()' @@ -225,7 +225,7 @@ let rec SimplePatOfPat (synArgNameGenerator: SynArgNameGenerator) p = let m = p.Range let isCompGen, altNameRefCell, id, item = match p with - | SynPat.LongIdent(longDotId=LongIdentWithDots([id], _); typarDecls=None; argPats=SynArgPats.Pats []; accessibility=None) -> + | SynPat.LongIdent(longDotId=SynLongIdent([id], _, _); typarDecls=None; argPats=SynArgPats.Pats []; accessibility=None) -> // The pattern is 'V' or some other capitalized identifier. // It may be a real variable, in which case we want to maintain its name. // But it may also be a nullary union case or some other identifier. diff --git a/src/fsharp/service/ServiceInterfaceStubGenerator.fs b/src/fsharp/service/ServiceInterfaceStubGenerator.fs index a4bda5f44d1..5e0c8256018 100644 --- a/src/fsharp/service/ServiceInterfaceStubGenerator.fs +++ b/src/fsharp/service/ServiceInterfaceStubGenerator.fs @@ -125,7 +125,7 @@ type InterfaceData = Some ("'" + s.idText) | TyparStaticReq.HeadType -> Some ("^" + s.idText) - | SynType.LongIdent(LongIdentWithDots(xs, _)) -> + | SynType.LongIdent(SynLongIdent(xs, _, _)) -> xs |> Seq.map (fun x -> x.idText) |> String.concat "." |> Some | SynType.App(t, _, ts, _, _, isPostfix, _) -> match t, ts with @@ -503,7 +503,7 @@ module InterfaceStubGenerator = GetInterfaceMembers entity |> Seq.isEmpty let internal (|LongIdentPattern|_|) = function - | SynPat.LongIdent(longDotId=LongIdentWithDots(xs, _)) -> + | SynPat.LongIdent(longDotId=SynLongIdent(xs, _, _)) -> // let (name, range) = xs |> List.map (fun x -> x.idText, x.idRange) |> List.last let last = List.last xs Some(last.idText, last.idRange) diff --git a/src/fsharp/service/ServiceNavigation.fs b/src/fsharp/service/ServiceNavigation.fs index 27a1f8c5109..520587fd50d 100755 --- a/src/fsharp/service/ServiceNavigation.fs +++ b/src/fsharp/service/ServiceNavigation.fs @@ -142,7 +142,7 @@ module NavigationImpl = | _ -> synExpr.Range match synPat, memberOpt with - | SynPat.LongIdent(longDotId=LongIdentWithDots(lid,_); accessibility=access), Some(flags) when isMember -> + | SynPat.LongIdent(longDotId=SynLongIdent(lid,_,_); accessibility=access), Some(flags) when isMember -> let icon, kind = match flags.MemberKind with | SynMemberKind.ClassConstructor @@ -158,7 +158,7 @@ module NavigationImpl = | hd :: _ -> (lid, hd.idRange) | _ -> (lid, m) [ createMemberLid(lidShow, kind, icon, unionRanges rangeMerge m, enclosingEntityKind, isAbstract, access) ] - | SynPat.LongIdent(longDotId=LongIdentWithDots(lid,_); accessibility=access), _ -> + | SynPat.LongIdent(longDotId=SynLongIdent(lid,_,_); accessibility=access), _ -> [ createMemberLid(lid, NavigationItemKind.Field, FSharpGlyph.Field, unionRanges (List.head lid).idRange m, enclosingEntityKind, isAbstract, access) ] | SynPat.Named (SynIdent(id,_), _, access, _), _ | SynPat.As(_, SynPat.Named (SynIdent(id,_), _, access, _), _), _ -> let glyph = if isMember then FSharpGlyph.Method else FSharpGlyph.Field @@ -574,10 +574,10 @@ module NavigateTo = | _ -> NavigableItemKind.ModuleValue match headPat with - | SynPat.LongIdent(longDotId=LongIdentWithDots([_; id], _)) -> + | SynPat.LongIdent(longDotId=SynLongIdent([_; id], _,_)) -> // instance members addIdent kind id false container - | SynPat.LongIdent(longDotId=LongIdentWithDots([id], _)) -> + | SynPat.LongIdent(longDotId=SynLongIdent([id], _,_)) -> // functions addIdent kind id false container | SynPat.Named (SynIdent(id,_), _, _, _) | SynPat.As(_, SynPat.Named (SynIdent(id,_), _, _, _), _) -> diff --git a/src/fsharp/service/ServiceParamInfoLocations.fs b/src/fsharp/service/ServiceParamInfoLocations.fs index 47ea44de303..f883e171430 100755 --- a/src/fsharp/service/ServiceParamInfoLocations.fs +++ b/src/fsharp/service/ServiceParamInfoLocations.fs @@ -6,7 +6,6 @@ open FSharp.Compiler.Text open FSharp.Compiler.Text.Position open FSharp.Compiler.Text.Range open FSharp.Compiler.Syntax -open FSharp.Compiler.SyntaxTrivia open FSharp.Compiler.SyntaxTreeOps type TupledArgumentLocation = { IsNamedArgument: bool; ArgumentRange: range } @@ -61,8 +60,8 @@ module internal ParameterLocationsImpl = match synExpr with | SynExpr.Ident id -> Some ([id.idText], id.idRange) | SynExpr.LongIdent(_, SynLongIdent([id], [], [ Some _ ]), _, _) -> Some ([id.idText], id.idRange) - | SynExpr.LongIdent (_, LongIdentWithDots(lid, _), _, lidRange) - | SynExpr.DotGet (_, _, LongIdentWithDots(lid, _), lidRange) -> Some (pathOfLid lid, lidRange) + | SynExpr.LongIdent (_, SynLongIdent(lid, _, _), _, lidRange) + | SynExpr.DotGet (_, _, SynLongIdent(lid, _, _), lidRange) -> Some (pathOfLid lid, lidRange) | SynExpr.TypeApp (synExpr, _, _synTypeList, _commas, _, _, _range) -> digOutIdentFromFuncExpr synExpr | SynExpr.Paren(expr = expr) -> digOutIdentFromFuncExpr expr | _ -> None @@ -73,8 +72,8 @@ module internal ParameterLocationsImpl = let digOutIdentFromStaticArg (StripParenTypes synType) = match synType with - | SynType.StaticConstantNamed(SynType.LongIdent(LongIdentWithDots([id], _)), _, _) -> Some id.idText - | SynType.LongIdent(LongIdentWithDots([id], _)) -> Some id.idText // NOTE: again, not a static constant, but may be a prefix of a Named in incomplete code + | SynType.StaticConstantNamed(SynType.LongIdent(SynLongIdent([id], _, _)), _, _) -> Some id.idText + | SynType.LongIdent(SynLongIdent([id], _, _)) -> Some id.idText // NOTE: again, not a static constant, but may be a prefix of a Named in incomplete code | _ -> None let getNamedParamName e = @@ -90,13 +89,13 @@ module internal ParameterLocationsImpl = | SynExpr.App (ExprAtomicFlag.NonAtomic, _, SynExpr.App (ExprAtomicFlag.NonAtomic, true, SynExpr.LongIdent(longDotId = SynLongIdent(id = [op])), - SynExpr.LongIdent (true(*isOptional*), LongIdentWithDots([n], _), _ref, _lidrange), _range), + SynExpr.LongIdent (true(*isOptional*), SynLongIdent([n], _, _), _ref, _lidrange), _range), _, _) when op.idText="op_Equality" -> Some n.idText | _ -> None let getTypeName synType = match synType with - | SynType.LongIdent(LongIdentWithDots(ids, _)) -> ids |> pathOfLid + | SynType.LongIdent(SynLongIdent(ids, _, _)) -> ids |> pathOfLid | _ -> [""] // TODO type name for other cases, see also unit test named "ParameterInfo.LocationOfParams.AfterQuicklyTyping.CallConstructorViaLongId.Bug94333" let handleSingleArg traverseSynExpr (pos, synExpr, parenRange, rpRangeOpt : _ option) = @@ -171,7 +170,7 @@ module internal ParameterLocationsImpl = let (|StaticParameters|_|) pos (StripParenTypes synType) = match synType with - | SynType.App(StripParenTypes (SynType.LongIdent(LongIdentWithDots(lid, _) as lidwd)), Some(openm), args, commas, closemOpt, _pf, wholem) -> + | SynType.App(StripParenTypes (SynType.LongIdent(SynLongIdent(lid, _, _) as lidwd)), Some(openm), args, commas, closemOpt, _pf, wholem) -> let lidm = lidwd.Range let betweenTheBrackets = mkRange wholem.FileName openm.Start wholem.End if SyntaxTraversal.rangeContainsPosEdgesExclusive betweenTheBrackets pos && args |> List.forall isStaticArg then diff --git a/src/fsharp/service/ServiceParsedInputOps.fs b/src/fsharp/service/ServiceParsedInputOps.fs index 711de349787..0ef54b9058e 100644 --- a/src/fsharp/service/ServiceParsedInputOps.fs +++ b/src/fsharp/service/ServiceParsedInputOps.fs @@ -218,16 +218,16 @@ module ParsedInput = match expr with | SynExpr.LongIdent(longDotId = SynLongIdent([id], [], [Some _])) -> defaultTraverse (SynExpr.Ident(id)) - | SynExpr.LongIdent (_, LongIdentWithDots(longIdent, _), _altNameRefCell, _range) -> + | SynExpr.LongIdent (_, SynLongIdent(longIdent, _, _), _altNameRefCell, _range) -> let _, r = CheckLongIdent longIdent Some r - | SynExpr.LongIdentSet (LongIdentWithDots(longIdent, _), synExpr, _range) -> + | SynExpr.LongIdentSet (SynLongIdent(longIdent, _, _), synExpr, _range) -> if SyntaxTraversal.rangeContainsPosLeftEdgeInclusive synExpr.Range pos then traverseSynExpr synExpr else let _, r = CheckLongIdent longIdent Some r - | SynExpr.DotGet (synExpr, _dotm, LongIdentWithDots(longIdent, _), _range) -> + | SynExpr.DotGet (synExpr, _dotm, SynLongIdent(longIdent, _, _), _range) -> if SyntaxTraversal.rangeContainsPosLeftEdgeInclusive synExpr.Range pos then traverseSynExpr synExpr else @@ -244,7 +244,7 @@ module ParsedInput = traverseSynExpr synExpr2 else Some range - | SynExpr.DotSet (synExpr, LongIdentWithDots(longIdent, _), synExpr2, _range) -> + | SynExpr.DotSet (synExpr, SynLongIdent(longIdent, _, _), synExpr2, _range) -> if SyntaxTraversal.rangeContainsPosLeftEdgeInclusive synExpr.Range pos then traverseSynExpr synExpr elif SyntaxTraversal.rangeContainsPosLeftEdgeInclusive synExpr2.Range pos then @@ -260,7 +260,7 @@ module ParsedInput = // ---- synExpr.Range has this value // ------ we want this value Some (unionRanges synExpr.Range r) - | SynExpr.DotNamedIndexedPropertySet (synExpr, LongIdentWithDots(longIdent, _), synExpr2, synExpr3, _range) -> + | SynExpr.DotNamedIndexedPropertySet (synExpr, SynLongIdent(longIdent, _, _), synExpr2, synExpr3, _range) -> if SyntaxTraversal.rangeContainsPosLeftEdgeInclusive synExpr.Range pos then traverseSynExpr synExpr elif SyntaxTraversal.rangeContainsPosLeftEdgeInclusive synExpr2.Range pos then @@ -311,9 +311,9 @@ module ParsedInput = match expr with | SynExpr.Paren (e, _, _, _) when foundCandidate -> TryGetExpression foundCandidate e - | SynExpr.LongIdent (_isOptional, LongIdentWithDots(lid, _), _altNameRefCell, _m) -> + | SynExpr.LongIdent (_isOptional, SynLongIdent(lid, _, _), _altNameRefCell, _m) -> getLidParts lid |> Some - | SynExpr.DotGet (leftPart, _, LongIdentWithDots(lid, _), _) when (rangeContainsPos (rangeOfLid lid) pos) || foundCandidate -> + | SynExpr.DotGet (leftPart, _, SynLongIdent(lid, _, _), _) when (rangeContainsPos (rangeOfLid lid) pos) || foundCandidate -> // requested position is at the lid part of the DotGet // process left part and append result to the result of processing lid let leftPartResult = TryGetExpression true leftPart @@ -373,7 +373,7 @@ module ParsedInput = // the cursor location. None else - let rec traverseLidOrElse (optExprIfLeftOfLongId : SynExpr option) (LongIdentWithDots(lid, dots) as lidwd) = + let rec traverseLidOrElse (optExprIfLeftOfLongId : SynExpr option) (SynLongIdent(lid, dots, _) as lidwd) = let resultIfLeftOfLongId = match optExprIfLeftOfLongId with | None -> None @@ -560,7 +560,7 @@ module ParsedInput = match expr with | SynExpr.LongIdent(_, SynLongIdent([ident], _, [ Some _]), _, _) -> ifPosInRange ident.idRange (fun _ -> Some (EntityKind.FunctionOrValue false)) - | SynExpr.LongIdent (_, LongIdentWithDots(_, dotRanges), _, r) -> + | SynExpr.LongIdent (_, SynLongIdent(_, dotRanges, _), _, r) -> match dotRanges with | [] when isPosInRange r -> parentKind |> Option.orElseWith (fun () -> Some (EntityKind.FunctionOrValue false)) | firstDotRange :: _ -> @@ -752,7 +752,7 @@ module ParsedInput = | Some EntityKind.Attribute -> Some CompletionContext.AttributeApplication | _ -> - let parseLid (LongIdentWithDots(lid, dots)) = + let parseLid (SynLongIdent(lid, dots, _)) = let rec collect plid (parts : Ident list) (dots : range list) = match parts, dots with | [], _ -> Some (plid, None) @@ -788,7 +788,7 @@ module ParsedInput = let (|Class|Interface|Struct|Unknown|Invalid|) synAttributes = let (|SynAttr|_|) name (attr : SynAttribute) = match attr with - | {TypeName = LongIdentWithDots([x], _)} when x.idText = name -> Some () + | {TypeName = SynLongIdent([x], _, _)} when x.idText = name -> Some () | _ -> None let rec getKind isClass isInterface isStruct = @@ -1255,7 +1255,7 @@ module ParsedInput = for ident in longIdent do identsByEndPos[ident.idRange.End] <- longIdent - let addLongIdentWithDots (LongIdentWithDots (longIdent, lids) as value) = + let addLongIdentWithDots (SynLongIdent (longIdent, lids, _) as value) = match longIdent with | [] -> () | [_] as idents -> identsByEndPos[value.Range.End] <- idents diff --git a/src/fsharp/symbols/Symbols.fs b/src/fsharp/symbols/Symbols.fs index 71c28851a0d..25183fd4652 100644 --- a/src/fsharp/symbols/Symbols.fs +++ b/src/fsharp/symbols/Symbols.fs @@ -2794,7 +2794,7 @@ type FSharpOpenDeclaration(target: SynOpenDeclTarget, range: range option, modul | SynOpenDeclTarget.Type(synType, _) -> let rec get ty = match ty with - | SynType.LongIdent (LongIdentWithDots(lid, _)) -> lid + | SynType.LongIdent (SynLongIdent(lid, _, _)) -> lid | SynType.App (ty2, _, _, _, _, _, _) -> get ty2 | SynType.LongIdentApp (ty2, _, _, _, _, _, _) -> get ty2 | SynType.Paren (ty2, _) -> get ty2