From 4ade24f788ec4d7bcce398323902e36d66de0f30 Mon Sep 17 00:00:00 2001 From: nojaf Date: Wed, 12 Jul 2023 16:09:42 +0200 Subject: [PATCH 01/19] WIP: report auto property --- src/Compiler/Checking/CheckDeclarations.fs | 29 ++++++++++++++++++- src/Compiler/Checking/CheckExpressions.fs | 20 ++++++++----- src/Compiler/Checking/CheckExpressions.fsi | 3 +- .../Checking/CheckIncrementalClasses.fs | 8 ++--- .../TooltipTests.fs | 2 +- 5 files changed, 48 insertions(+), 14 deletions(-) diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index 47606b18751..34689e1dcd0 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -855,7 +855,7 @@ module MutRecBindingChecking = // The basic iteration over the declarations in a single type definition let initialInnerState = (None, envForTycon, tpenv, recBindIdx, uncheckedBindsRev) - let defnAs, (_, _envForTycon, tpenv, recBindIdx, uncheckedBindsRev) = + let defnAs, (_, envForTycon, tpenv, recBindIdx, uncheckedBindsRev) = (initialInnerState, binds) ||> List.collectFold (fun innerState defn -> @@ -956,6 +956,33 @@ module MutRecBindingChecking = | definition -> error(InternalError(sprintf "Unexpected definition %A" definition, m))) + // I guess, if nothing was reported for the auto property in the Sink, + // Now would be a good times to report the property as a whole + if defnAs.Length > 1 then + for b1, b2 in List.pairwise defnAs do + match b1, b2 with + | TyconBindingPhase2A.Phase2AMember { + SyntacticBinding = NormalizedBinding(valSynData = SynValData(memberFlags = Some { GetterOrSetterIsCompilerGenerated = true + MemberKind = SynMemberKind.PropertyGet }); mBinding = m1) + RecBindingInfo = RecursiveBindingInfo(vspec = v1) + }, + TyconBindingPhase2A.Phase2AMember { + SyntacticBinding = NormalizedBinding(valSynData = SynValData(memberFlags = Some { GetterOrSetterIsCompilerGenerated = true + MemberKind = SynMemberKind.PropertySet }); mBinding = m2) + RecBindingInfo = RecursiveBindingInfo(vspec = v2) + } -> + if Range.equals m1 m2 then + match v1.ApparentEnclosingEntity with + | ParentNone -> () + | Parent parentRef -> + // let nenv = AddFakeNamedValRefToNameEnv vspec.DisplayName env.NameEnv (mkLocalValRef vspec) + // CallEnvSink cenv.tcSink (vspec.Range, nenv, env.eAccessRights) + let apparentEnclosingType = generalizedTyconRef g parentRef + let item = Item.Property(v1.DisplayName, [ PropInfo.FSProp(g, apparentEnclosingType, Some (mkLocalValRef v1), Some (mkLocalValRef v2)) ]) + // Item.Value(mkLocalValRef vspec) + CallNameResolutionSink cenv.tcSink (v1.Range, envForTycon.NameEnv, item, emptyTyparInst, ItemOccurence.Binding, envForTycon.eAccessRights) + | _ -> () + // If no constructor call, insert Phase2AIncrClassCtorJustAfterSuperInit at start let defnAs = match defnAs with diff --git a/src/Compiler/Checking/CheckExpressions.fs b/src/Compiler/Checking/CheckExpressions.fs index 92c93b5a623..8b0a17fa8f4 100644 --- a/src/Compiler/Checking/CheckExpressions.fs +++ b/src/Compiler/Checking/CheckExpressions.fs @@ -1233,7 +1233,7 @@ let private HasMethodImplNoInliningAttribute g attrs = | Some (Attrib(_, _, [ AttribInt32Arg flags ], _, _, _, _)) -> (flags &&& 0x8) <> 0x0 | _ -> false -let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRecInfo, vscheme, attrs, xmlDoc, konst, isGeneratedEventVal) = +let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRecInfo, vscheme, attrs, xmlDoc, konst, isGeneratedEventVal, memberFlagsOpt) = let g = cenv.g @@ -1348,6 +1348,12 @@ let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRec PublishValueDefn cenv env declKind vspec + let isAutoPropMember = + match memberFlagsOpt with + | Some { SynMemberFlags.GetterOrSetterIsCompilerGenerated = true + SynMemberFlags.MemberKind = SynMemberKind.PropertyGet | SynMemberKind.PropertySet } -> true + | _ -> false + let shouldNotifySink (vspec: Val) = match vspec.MemberInfo with // `this` reference named `__`. It's either: @@ -1357,7 +1363,7 @@ let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRec | None when vspec.IsBaseVal || vspec.IsMemberThisVal && vspec.LogicalName = "__" -> false - | _ -> true + | _ -> not isAutoPropMember match cenv.tcSink.CurrentSink with | Some _ when not vspec.IsCompilerGenerated && shouldNotifySink vspec -> @@ -1372,7 +1378,7 @@ let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRec let MakeAndPublishVals (cenv: cenv) env (altActualParent, inSig, declKind, valRecInfo, valSchemes, attrs, xmlDoc, literalValue) = Map.foldBack (fun name (valscheme: ValScheme) values -> - Map.add name (MakeAndPublishVal cenv env (altActualParent, inSig, declKind, valRecInfo, valscheme, attrs, xmlDoc, literalValue, false), valscheme.GeneralizedType) values) + Map.add name (MakeAndPublishVal cenv env (altActualParent, inSig, declKind, valRecInfo, valscheme, attrs, xmlDoc, literalValue, false, None), valscheme.GeneralizedType) values) valSchemes Map.empty @@ -1381,7 +1387,7 @@ let MakeAndPublishBaseVal (cenv: cenv) env baseIdOpt ty = baseIdOpt |> Option.map (fun (id: Ident) -> let valscheme = ValScheme(id, NonGenericTypeScheme ty, None, None, None, false, ValInline.Never, BaseVal, None, false, false, false, false) - MakeAndPublishVal cenv env (ParentNone, false, ExpressionBinding, ValNotInRecScope, valscheme, [], XmlDoc.Empty, None, false)) + MakeAndPublishVal cenv env (ParentNone, false, ExpressionBinding, ValNotInRecScope, valscheme, [], XmlDoc.Empty, None, false, None)) // Make the "delayed reference" value where the this pointer will reside after calling the base class constructor // Make the value for the 'this' pointer for use within a constructor @@ -1394,7 +1400,7 @@ let MakeAndPublishSafeThisVal (cenv: cenv) env (thisIdOpt: Ident option) thisTy errorR(Error(FSComp.SR.tcStructsCanOnlyBindThisAtMemberDeclaration(), thisId.idRange)) let valScheme = ValScheme(thisId, NonGenericTypeScheme(mkRefCellTy g thisTy), None, None, None, false, ValInline.Never, CtorThisVal, None, false, false, false, false) - Some(MakeAndPublishVal cenv env (ParentNone, false, ExpressionBinding, ValNotInRecScope, valScheme, [], XmlDoc.Empty, None, false)) + Some(MakeAndPublishVal cenv env (ParentNone, false, ExpressionBinding, ValNotInRecScope, valScheme, [], XmlDoc.Empty, None, false, None)) | None -> None @@ -11578,7 +11584,7 @@ and AnalyzeAndMakeAndPublishRecursiveValue List.concat extraBindings, List.concat extraValues, tpenv, recBindIdx // Create the value - let vspec = MakeAndPublishVal cenv envinner (altActualParent, false, declKind, ValInRecScope isComplete, prelimValScheme, bindingAttribs, bindingXmlDoc, literalValue, isGeneratedEventVal) + let vspec = MakeAndPublishVal cenv envinner (altActualParent, false, declKind, ValInRecScope isComplete, prelimValScheme, bindingAttribs, bindingXmlDoc, literalValue, isGeneratedEventVal, memberFlagsOpt) // Suppress hover tip for "get" and "set" at property definitions, where toolId <> bindingId match toolIdOpt with @@ -12220,7 +12226,7 @@ let TcAndPublishValSpec (cenv: cenv, env, containerInfo: ContainerInfo, declKind let checkXmlDocs = cenv.diagnosticOptions.CheckXmlDocs let xmlDoc = xmlDoc.ToXmlDoc(checkXmlDocs, paramNames) - let vspec = MakeAndPublishVal cenv env (altActualParent, true, declKind, ValNotInRecScope, valscheme, attrs, xmlDoc, literalValue, false) + let vspec = MakeAndPublishVal cenv env (altActualParent, true, declKind, ValNotInRecScope, valscheme, attrs, xmlDoc, literalValue, false, memFlagsOpt) PublishArguments cenv env vspec synValSig allDeclaredTypars.Length diff --git a/src/Compiler/Checking/CheckExpressions.fsi b/src/Compiler/Checking/CheckExpressions.fsi index b26381b6b02..1c46152e4f6 100644 --- a/src/Compiler/Checking/CheckExpressions.fsi +++ b/src/Compiler/Checking/CheckExpressions.fsi @@ -517,7 +517,8 @@ val MakeAndPublishVal: attrs: Attribs * xmlDoc: XmlDoc * konst: Const option * - isGeneratedEventVal: bool -> + isGeneratedEventVal: bool * + memberFlagsOpt: SynMemberFlags option -> Val /// Make an initial 'base' value diff --git a/src/Compiler/Checking/CheckIncrementalClasses.fs b/src/Compiler/Checking/CheckIncrementalClasses.fs index ce7a4203cc0..6bac8a76e03 100644 --- a/src/Compiler/Checking/CheckIncrementalClasses.fs +++ b/src/Compiler/Checking/CheckIncrementalClasses.fs @@ -139,7 +139,7 @@ let TcImplicitCtorLhs_Phase2A(cenv: cenv, env, tpenv, tcref: TyconRef, vis, attr let checkXmlDocs = cenv.diagnosticOptions.CheckXmlDocs let xmlDoc = xmlDoc.ToXmlDoc(checkXmlDocs, Some paramNames) - let ctorVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValInRecScope isComplete, ctorValScheme, attribs, xmlDoc, None, false) + let ctorVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValInRecScope isComplete, ctorValScheme, attribs, xmlDoc, None, false, Some memberFlags) ctorValScheme, ctorVal // We only generate the cctor on demand, because we don't need it if there are no cctor actions. @@ -159,14 +159,14 @@ let TcImplicitCtorLhs_Phase2A(cenv: cenv, env, tpenv, tcref: TyconRef, vis, attr let valReprInfo = InferGenericArityFromTyScheme prelimTyschemeG prelimValReprInfo let cctorValScheme = ValScheme(id, prelimTyschemeG, Some valReprInfo, None, Some memberInfo, false, ValInline.Never, NormalVal, Some (SynAccess.Private Range.Zero), false, true, false, false) - let cctorVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValNotInRecScope, cctorValScheme, [(* no attributes*)], XmlDoc.Empty, None, false) + let cctorVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValNotInRecScope, cctorValScheme, [(* no attributes*)], XmlDoc.Empty, None, false, None) cctorArgs, cctorVal, cctorValScheme let thisVal = // --- Create this for use inside constructor let thisId = ident ("this", m) let thisValScheme = ValScheme(thisId, NonGenericTypeScheme thisTy, None, None, None, false, ValInline.Never, CtorThisVal, None, true, false, false, false) - let thisVal = MakeAndPublishVal cenv env (ParentNone, false, ClassLetBinding false, ValNotInRecScope, thisValScheme, [], XmlDoc.Empty, None, false) + let thisVal = MakeAndPublishVal cenv env (ParentNone, false, ClassLetBinding false, ValNotInRecScope, thisValScheme, [], XmlDoc.Empty, None, false, None) thisVal { TyconRef = tcref @@ -355,7 +355,7 @@ type IncrClassReprInfo = // it a "member" in the F# sense, but the F# spec says it is generated and it is reasonable to reflect on it. let memberValScheme = ValScheme(id, prelimTyschemeG, Some valReprInfo, None, Some memberInfo, false, ValInline.Never, NormalVal, None, true (* isCompilerGenerated *), true (* isIncrClass *), false, false) - let methodVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValNotInRecScope, memberValScheme, v.Attribs, XmlDoc.Empty, None, false) + let methodVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValNotInRecScope, memberValScheme, v.Attribs, XmlDoc.Empty, None, false, Some memberFlags) reportIfUnused() InMethod(isStatic, methodVal, valReprInfo) diff --git a/tests/FSharp.Compiler.Service.Tests/TooltipTests.fs b/tests/FSharp.Compiler.Service.Tests/TooltipTests.fs index f727ba16d61..815f34ae256 100644 --- a/tests/FSharp.Compiler.Service.Tests/TooltipTests.fs +++ b/tests/FSharp.Compiler.Service.Tests/TooltipTests.fs @@ -410,5 +410,5 @@ type Bar() = |> Array.map (fun taggedText -> taggedText.Text) |> String.concat "" - Assert.AreEqual("member Bar.Foo: string", toolTipText) + Assert.AreEqual("property Bar.Foo: string with get, set", toolTipText) | _ -> Assert.Fail $"Expected group, got {items.[0]}" From d06d45bdc716cb02d0b6abfd786dc9cbdecf2a33 Mon Sep 17 00:00:00 2001 From: nojaf Date: Thu, 13 Jul 2023 11:49:52 +0200 Subject: [PATCH 02/19] Update unit test to reflect the new world order. --- tests/service/Symbols.fs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index 75f22d768d2..a19dfd30a00 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -458,7 +458,7 @@ type Foo = | symbol -> Assert.Fail $"Expected {symbol} to be FSharpMemberOrFunctionOrValue" [] - let ``AutoProperty with get,set has two symbols`` () = + let ``AutoProperty with get,set has a single symbol!`` () = let _, checkResults = getParseAndCheckResults """ namespace Foo @@ -466,6 +466,19 @@ type Foo = member val AutoPropGetSet = 0 with get, set """ + let autoPropertySymbolUse = + checkResults.GetSymbolUsesAtLocation(5, 29, " member val AutoPropGetSet = 0 with get, set", ["AutoPropGetSet"]) + |> List.exactlyOne + + match autoPropertySymbolUse.Symbol with + | :? FSharpMemberOrFunctionOrValue as mfv -> + Assert.True mfv.HasGetterMethod + Assert.True mfv.HasSetterMethod + Assert.True (mfv.GetterMethod.CompiledName.StartsWith("get_")) + Assert.True (mfv.SetterMethod.CompiledName.StartsWith("set_")) + + | _ -> Assert.Fail "Symbol was not FSharpMemberOrFunctionOrValue" + let getSymbol = findSymbolUseByName "get_AutoPropGetSet" checkResults let setSymbol = findSymbolUseByName "set_AutoPropGetSet" checkResults @@ -523,6 +536,7 @@ type internal SR () = Assert.AreEqual("SR", entity.DisplayName) | _ -> Assert.Fail "Expected symbols" + module Expressions = [] let ``Unresolved record field 01`` () = From 1fbadf22200c3cbaea1f731150d3fc428521928c Mon Sep 17 00:00:00 2001 From: nojaf Date: Thu, 13 Jul 2023 11:53:59 +0200 Subject: [PATCH 03/19] Revert short term tooltip solution. --- src/Compiler/Service/FSharpCheckerResults.fs | 27 +++++--------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/src/Compiler/Service/FSharpCheckerResults.fs b/src/Compiler/Service/FSharpCheckerResults.fs index 3fbfe27bed8..17349ec1023 100644 --- a/src/Compiler/Service/FSharpCheckerResults.fs +++ b/src/Compiler/Service/FSharpCheckerResults.fs @@ -1764,27 +1764,12 @@ type internal TypeCheckInfo match declItemsOpt with | None -> emptyToolTip | Some (items, denv, _, m) -> - let mkToolTipText (items: CompletionItem list) = - ToolTipText( - items - |> List.map (fun x -> - let symbol = Some(FSharpSymbol.Create(cenv, x.Item)) - FormatStructuredDescriptionOfItem false infoReader tcAccessRights m denv x.ItemWithInst symbol width) - ) - - match items with - | [ getItem; setItem ] -> - match getItem.Item, setItem.Item with - | Item.Value vr1, Item.Value vr2 when vr1.PropertyName = vr2.PropertyName -> - let getItem = - if (vr1.CompiledName None).StartsWith "get_" then - getItem - else - setItem - - mkToolTipText [ getItem ] - | _ -> mkToolTipText items - | items -> mkToolTipText items) + ToolTipText( + items + |> List.map (fun x -> + let symbol = Some(FSharpSymbol.Create(cenv, x.Item)) + FormatStructuredDescriptionOfItem false infoReader tcAccessRights m denv x.ItemWithInst symbol width) + )) (fun err -> Trace.TraceInformation(sprintf "FCS: recovering from error in GetStructuredToolTipText: '%s'" err) ToolTipText [ ToolTipElement.CompositionError err ]) From 4f0c2b52413e1300aa656fa64c2e8a477b59aac6 Mon Sep 17 00:00:00 2001 From: nojaf Date: Thu, 13 Jul 2023 11:55:45 +0200 Subject: [PATCH 04/19] Revert initial approach. --- src/Compiler/Checking/CheckDeclarations.fs | 29 +------------------ src/Compiler/Checking/CheckExpressions.fs | 20 +++++-------- src/Compiler/Checking/CheckExpressions.fsi | 3 +- .../Checking/CheckIncrementalClasses.fs | 8 ++--- 4 files changed, 13 insertions(+), 47 deletions(-) diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index 34689e1dcd0..47606b18751 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -855,7 +855,7 @@ module MutRecBindingChecking = // The basic iteration over the declarations in a single type definition let initialInnerState = (None, envForTycon, tpenv, recBindIdx, uncheckedBindsRev) - let defnAs, (_, envForTycon, tpenv, recBindIdx, uncheckedBindsRev) = + let defnAs, (_, _envForTycon, tpenv, recBindIdx, uncheckedBindsRev) = (initialInnerState, binds) ||> List.collectFold (fun innerState defn -> @@ -956,33 +956,6 @@ module MutRecBindingChecking = | definition -> error(InternalError(sprintf "Unexpected definition %A" definition, m))) - // I guess, if nothing was reported for the auto property in the Sink, - // Now would be a good times to report the property as a whole - if defnAs.Length > 1 then - for b1, b2 in List.pairwise defnAs do - match b1, b2 with - | TyconBindingPhase2A.Phase2AMember { - SyntacticBinding = NormalizedBinding(valSynData = SynValData(memberFlags = Some { GetterOrSetterIsCompilerGenerated = true - MemberKind = SynMemberKind.PropertyGet }); mBinding = m1) - RecBindingInfo = RecursiveBindingInfo(vspec = v1) - }, - TyconBindingPhase2A.Phase2AMember { - SyntacticBinding = NormalizedBinding(valSynData = SynValData(memberFlags = Some { GetterOrSetterIsCompilerGenerated = true - MemberKind = SynMemberKind.PropertySet }); mBinding = m2) - RecBindingInfo = RecursiveBindingInfo(vspec = v2) - } -> - if Range.equals m1 m2 then - match v1.ApparentEnclosingEntity with - | ParentNone -> () - | Parent parentRef -> - // let nenv = AddFakeNamedValRefToNameEnv vspec.DisplayName env.NameEnv (mkLocalValRef vspec) - // CallEnvSink cenv.tcSink (vspec.Range, nenv, env.eAccessRights) - let apparentEnclosingType = generalizedTyconRef g parentRef - let item = Item.Property(v1.DisplayName, [ PropInfo.FSProp(g, apparentEnclosingType, Some (mkLocalValRef v1), Some (mkLocalValRef v2)) ]) - // Item.Value(mkLocalValRef vspec) - CallNameResolutionSink cenv.tcSink (v1.Range, envForTycon.NameEnv, item, emptyTyparInst, ItemOccurence.Binding, envForTycon.eAccessRights) - | _ -> () - // If no constructor call, insert Phase2AIncrClassCtorJustAfterSuperInit at start let defnAs = match defnAs with diff --git a/src/Compiler/Checking/CheckExpressions.fs b/src/Compiler/Checking/CheckExpressions.fs index 8b0a17fa8f4..92c93b5a623 100644 --- a/src/Compiler/Checking/CheckExpressions.fs +++ b/src/Compiler/Checking/CheckExpressions.fs @@ -1233,7 +1233,7 @@ let private HasMethodImplNoInliningAttribute g attrs = | Some (Attrib(_, _, [ AttribInt32Arg flags ], _, _, _, _)) -> (flags &&& 0x8) <> 0x0 | _ -> false -let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRecInfo, vscheme, attrs, xmlDoc, konst, isGeneratedEventVal, memberFlagsOpt) = +let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRecInfo, vscheme, attrs, xmlDoc, konst, isGeneratedEventVal) = let g = cenv.g @@ -1348,12 +1348,6 @@ let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRec PublishValueDefn cenv env declKind vspec - let isAutoPropMember = - match memberFlagsOpt with - | Some { SynMemberFlags.GetterOrSetterIsCompilerGenerated = true - SynMemberFlags.MemberKind = SynMemberKind.PropertyGet | SynMemberKind.PropertySet } -> true - | _ -> false - let shouldNotifySink (vspec: Val) = match vspec.MemberInfo with // `this` reference named `__`. It's either: @@ -1363,7 +1357,7 @@ let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRec | None when vspec.IsBaseVal || vspec.IsMemberThisVal && vspec.LogicalName = "__" -> false - | _ -> not isAutoPropMember + | _ -> true match cenv.tcSink.CurrentSink with | Some _ when not vspec.IsCompilerGenerated && shouldNotifySink vspec -> @@ -1378,7 +1372,7 @@ let MakeAndPublishVal (cenv: cenv) env (altActualParent, inSig, declKind, valRec let MakeAndPublishVals (cenv: cenv) env (altActualParent, inSig, declKind, valRecInfo, valSchemes, attrs, xmlDoc, literalValue) = Map.foldBack (fun name (valscheme: ValScheme) values -> - Map.add name (MakeAndPublishVal cenv env (altActualParent, inSig, declKind, valRecInfo, valscheme, attrs, xmlDoc, literalValue, false, None), valscheme.GeneralizedType) values) + Map.add name (MakeAndPublishVal cenv env (altActualParent, inSig, declKind, valRecInfo, valscheme, attrs, xmlDoc, literalValue, false), valscheme.GeneralizedType) values) valSchemes Map.empty @@ -1387,7 +1381,7 @@ let MakeAndPublishBaseVal (cenv: cenv) env baseIdOpt ty = baseIdOpt |> Option.map (fun (id: Ident) -> let valscheme = ValScheme(id, NonGenericTypeScheme ty, None, None, None, false, ValInline.Never, BaseVal, None, false, false, false, false) - MakeAndPublishVal cenv env (ParentNone, false, ExpressionBinding, ValNotInRecScope, valscheme, [], XmlDoc.Empty, None, false, None)) + MakeAndPublishVal cenv env (ParentNone, false, ExpressionBinding, ValNotInRecScope, valscheme, [], XmlDoc.Empty, None, false)) // Make the "delayed reference" value where the this pointer will reside after calling the base class constructor // Make the value for the 'this' pointer for use within a constructor @@ -1400,7 +1394,7 @@ let MakeAndPublishSafeThisVal (cenv: cenv) env (thisIdOpt: Ident option) thisTy errorR(Error(FSComp.SR.tcStructsCanOnlyBindThisAtMemberDeclaration(), thisId.idRange)) let valScheme = ValScheme(thisId, NonGenericTypeScheme(mkRefCellTy g thisTy), None, None, None, false, ValInline.Never, CtorThisVal, None, false, false, false, false) - Some(MakeAndPublishVal cenv env (ParentNone, false, ExpressionBinding, ValNotInRecScope, valScheme, [], XmlDoc.Empty, None, false, None)) + Some(MakeAndPublishVal cenv env (ParentNone, false, ExpressionBinding, ValNotInRecScope, valScheme, [], XmlDoc.Empty, None, false)) | None -> None @@ -11584,7 +11578,7 @@ and AnalyzeAndMakeAndPublishRecursiveValue List.concat extraBindings, List.concat extraValues, tpenv, recBindIdx // Create the value - let vspec = MakeAndPublishVal cenv envinner (altActualParent, false, declKind, ValInRecScope isComplete, prelimValScheme, bindingAttribs, bindingXmlDoc, literalValue, isGeneratedEventVal, memberFlagsOpt) + let vspec = MakeAndPublishVal cenv envinner (altActualParent, false, declKind, ValInRecScope isComplete, prelimValScheme, bindingAttribs, bindingXmlDoc, literalValue, isGeneratedEventVal) // Suppress hover tip for "get" and "set" at property definitions, where toolId <> bindingId match toolIdOpt with @@ -12226,7 +12220,7 @@ let TcAndPublishValSpec (cenv: cenv, env, containerInfo: ContainerInfo, declKind let checkXmlDocs = cenv.diagnosticOptions.CheckXmlDocs let xmlDoc = xmlDoc.ToXmlDoc(checkXmlDocs, paramNames) - let vspec = MakeAndPublishVal cenv env (altActualParent, true, declKind, ValNotInRecScope, valscheme, attrs, xmlDoc, literalValue, false, memFlagsOpt) + let vspec = MakeAndPublishVal cenv env (altActualParent, true, declKind, ValNotInRecScope, valscheme, attrs, xmlDoc, literalValue, false) PublishArguments cenv env vspec synValSig allDeclaredTypars.Length diff --git a/src/Compiler/Checking/CheckExpressions.fsi b/src/Compiler/Checking/CheckExpressions.fsi index 1c46152e4f6..b26381b6b02 100644 --- a/src/Compiler/Checking/CheckExpressions.fsi +++ b/src/Compiler/Checking/CheckExpressions.fsi @@ -517,8 +517,7 @@ val MakeAndPublishVal: attrs: Attribs * xmlDoc: XmlDoc * konst: Const option * - isGeneratedEventVal: bool * - memberFlagsOpt: SynMemberFlags option -> + isGeneratedEventVal: bool -> Val /// Make an initial 'base' value diff --git a/src/Compiler/Checking/CheckIncrementalClasses.fs b/src/Compiler/Checking/CheckIncrementalClasses.fs index 6bac8a76e03..ce7a4203cc0 100644 --- a/src/Compiler/Checking/CheckIncrementalClasses.fs +++ b/src/Compiler/Checking/CheckIncrementalClasses.fs @@ -139,7 +139,7 @@ let TcImplicitCtorLhs_Phase2A(cenv: cenv, env, tpenv, tcref: TyconRef, vis, attr let checkXmlDocs = cenv.diagnosticOptions.CheckXmlDocs let xmlDoc = xmlDoc.ToXmlDoc(checkXmlDocs, Some paramNames) - let ctorVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValInRecScope isComplete, ctorValScheme, attribs, xmlDoc, None, false, Some memberFlags) + let ctorVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValInRecScope isComplete, ctorValScheme, attribs, xmlDoc, None, false) ctorValScheme, ctorVal // We only generate the cctor on demand, because we don't need it if there are no cctor actions. @@ -159,14 +159,14 @@ let TcImplicitCtorLhs_Phase2A(cenv: cenv, env, tpenv, tcref: TyconRef, vis, attr let valReprInfo = InferGenericArityFromTyScheme prelimTyschemeG prelimValReprInfo let cctorValScheme = ValScheme(id, prelimTyschemeG, Some valReprInfo, None, Some memberInfo, false, ValInline.Never, NormalVal, Some (SynAccess.Private Range.Zero), false, true, false, false) - let cctorVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValNotInRecScope, cctorValScheme, [(* no attributes*)], XmlDoc.Empty, None, false, None) + let cctorVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValNotInRecScope, cctorValScheme, [(* no attributes*)], XmlDoc.Empty, None, false) cctorArgs, cctorVal, cctorValScheme let thisVal = // --- Create this for use inside constructor let thisId = ident ("this", m) let thisValScheme = ValScheme(thisId, NonGenericTypeScheme thisTy, None, None, None, false, ValInline.Never, CtorThisVal, None, true, false, false, false) - let thisVal = MakeAndPublishVal cenv env (ParentNone, false, ClassLetBinding false, ValNotInRecScope, thisValScheme, [], XmlDoc.Empty, None, false, None) + let thisVal = MakeAndPublishVal cenv env (ParentNone, false, ClassLetBinding false, ValNotInRecScope, thisValScheme, [], XmlDoc.Empty, None, false) thisVal { TyconRef = tcref @@ -355,7 +355,7 @@ type IncrClassReprInfo = // it a "member" in the F# sense, but the F# spec says it is generated and it is reasonable to reflect on it. let memberValScheme = ValScheme(id, prelimTyschemeG, Some valReprInfo, None, Some memberInfo, false, ValInline.Never, NormalVal, None, true (* isCompilerGenerated *), true (* isIncrClass *), false, false) - let methodVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValNotInRecScope, memberValScheme, v.Attribs, XmlDoc.Empty, None, false, Some memberFlags) + let methodVal = MakeAndPublishVal cenv env (Parent tcref, false, ModuleOrMemberBinding, ValNotInRecScope, memberValScheme, v.Attribs, XmlDoc.Empty, None, false) reportIfUnused() InMethod(isStatic, methodVal, valReprInfo) From 67834963d5b1a5f5f3a277e52da05f057c30f76c Mon Sep 17 00:00:00 2001 From: nojaf Date: Thu, 13 Jul 2023 16:52:13 +0200 Subject: [PATCH 05/19] Keep track of transformed auto properties in SynValData. --- src/Compiler/Checking/CheckDeclarations.fs | 50 ++++++++++++++++--- src/Compiler/Checking/CheckExpressions.fs | 32 ++++++------ src/Compiler/Service/ServiceNavigation.fs | 4 +- src/Compiler/Service/ServiceStructure.fs | 16 +++--- src/Compiler/Service/ServiceXmlDocParser.fs | 4 +- src/Compiler/SyntaxTree/ParseHelpers.fs | 4 +- src/Compiler/SyntaxTree/SyntaxTree.fs | 8 ++- src/Compiler/SyntaxTree/SyntaxTree.fsi | 8 ++- src/Compiler/SyntaxTree/SyntaxTreeOps.fs | 19 +++++-- src/Compiler/SyntaxTree/SyntaxTreeOps.fsi | 17 +++++++ src/Compiler/pars.fsy | 8 +-- .../auto-property.fsx | 6 +++ tests/service/Symbols.fs | 29 +++++++---- 13 files changed, 145 insertions(+), 60 deletions(-) create mode 100644 tests/FSharp.Compiler.ComponentTests/Signatures/TestCasesForGenerationRoundTrip/auto-property.fsx diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index 47606b18751..429e39dd921 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -921,7 +921,7 @@ module MutRecBindingChecking = | SynMemberDefn.Member (bind, m), _ -> // Phase2A: member binding - create prelim valspec (for recursive reference) and RecursiveBindingInfo let NormalizedBinding(_, _, _, _, _, _, _, valSynData, _, _, _, _) as bind = BindingNormalization.NormalizeBinding ValOrMemberBinding cenv envForTycon bind - let (SynValData(memberFlagsOpt, _, _)) = valSynData + let (SynValData(memberFlags = memberFlagsOpt)) = valSynData match tcref.TypeOrMeasureKind with | TyparKind.Type -> () @@ -956,6 +956,26 @@ module MutRecBindingChecking = | definition -> error(InternalError(sprintf "Unexpected definition %A" definition, m))) + // Report any desugared auto properties + if defnAs.Length > 1 then + for b1, b2 in List.pairwise defnAs do + match b1, b2 with + | TyconBindingPhase2A.Phase2AMember { + SyntacticBinding = NormalizedBinding(valSynData = SynValData(transformedFromAutoProperty = Some getAutoPropertyIdent)) + RecBindingInfo = RecursiveBindingInfo(vspec = vGet) + }, + TyconBindingPhase2A.Phase2AMember { + SyntacticBinding = NormalizedBinding(valSynData = SynValData(transformedFromAutoProperty = Some setAutoPropertyIdent)) + RecBindingInfo = RecursiveBindingInfo(vspec = vSet) + } when Range.equals getAutoPropertyIdent.idRange setAutoPropertyIdent.idRange -> + match vGet.ApparentEnclosingEntity with + | ParentNone -> () + | Parent parentRef -> + let apparentEnclosingType = generalizedTyconRef g parentRef + let item = Item.Property(getAutoPropertyIdent.idText, [ PropInfo.FSProp(g, apparentEnclosingType, Some (mkLocalValRef vGet), Some (mkLocalValRef vSet)) ]) + CallNameResolutionSink cenv.tcSink (getAutoPropertyIdent.idRange, envForTycon.NameEnv, item, emptyTyparInst, ItemOccurence.Binding, envForTycon.eAccessRights) + | _ -> () + // If no constructor call, insert Phase2AIncrClassCtorJustAfterSuperInit at start let defnAs = match defnAs with @@ -4179,8 +4199,6 @@ module TcDeclarations = // Only the keep the non-field-targeted attributes let attribs = attribs |> List.filter (fun a -> match a.Target with Some t when t.idText = "field" -> false | _ -> true) let fldId = ident (CompilerGeneratedName id.idText, mMemberPortion) - let headPatIds = if isStatic then [id] else [ident ("__", mMemberPortion);id] - let headPat = SynPat.LongIdent (SynLongIdent(headPatIds, [], List.replicate headPatIds.Length None), None, Some noInferredTypars, SynArgPats.Pats [], None, mMemberPortion) let memberFlags = { memberFlags with GetterOrSetterIsCompilerGenerated = true } let memberFlagsForSet = { memberFlagsForSet with GetterOrSetterIsCompilerGenerated = true } @@ -4197,7 +4215,14 @@ module TcDeclarations = let rhsExpr = SynExpr.Ident fldId let retInfo = match tyOpt with None -> None | Some ty -> Some (None, SynReturnInfo((ty, SynInfo.unnamedRetVal), ty.Range)) let attribs = mkAttributeList attribs mMemberPortion - let binding = mkSynBinding (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, retInfo, rhsExpr, rhsExpr.Range, [], attribs, Some memberFlags, SynBindingTrivia.Zero) + let headPatIds = + let id = + match mGetSetOpt with + | Some (GetSetKeywords.GetSet(get = mGet)) -> Ident(id.idText, mGet) + | _ -> id + if isStatic then [id] else [ident ("__", mMemberPortion);id] + let headPat = SynPat.LongIdent (SynLongIdent(headPatIds, [], List.replicate headPatIds.Length None), None, Some noInferredTypars, SynArgPats.Pats [], None, mMemberPortion) + let binding = mkSynBindingForAutoPropertyMember id (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, retInfo, rhsExpr, rhsExpr.Range, [], attribs, Some memberFlags, SynBindingTrivia.Zero) SynMemberDefn.Member (binding, mMemberPortion) yield getter | _ -> () @@ -4206,11 +4231,20 @@ module TcDeclarations = | SynMemberKind.PropertySet | SynMemberKind.PropertyGetSet -> let setter = - let vId = ident("v", mMemberPortion) + let vId = + match mGetSetOpt with + | Some (GetSetKeywords.GetSet(set = mSet)) -> ident("v", mSet) + | _ -> ident("v", mMemberPortion) + let headPatIds = + let id = + match mGetSetOpt with + | Some (GetSetKeywords.GetSet(set = mSet)) -> Ident(id.idText, mSet) + | _ -> id + if isStatic then [id] else [ident ("__", mMemberPortion);id] let headPat = SynPat.LongIdent (SynLongIdent(headPatIds, [], List.replicate headPatIds.Length None), None, Some noInferredTypars, SynArgPats.Pats [mkSynPatVar None vId], None, mMemberPortion) let rhsExpr = mkSynAssign (SynExpr.Ident fldId) (SynExpr.Ident vId) - let binding = mkSynBinding (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, None, rhsExpr, rhsExpr.Range, [], [], Some memberFlagsForSet, SynBindingTrivia.Zero) - SynMemberDefn.Member (binding, mMemberPortion) + let binding = mkSynBindingForAutoPropertyMember id (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, None, rhsExpr, rhsExpr.Range, [], [], Some memberFlagsForSet, SynBindingTrivia.Zero) + SynMemberDefn.Member (binding, mMemberPortion) yield setter | _ -> ()] | SynMemberDefn.Interface (ty, mWith, Some membs, m) -> @@ -4229,7 +4263,7 @@ module TcDeclarations = let isConcrete = members |> List.exists (function - | SynMemberDefn.Member(SynBinding(valData = SynValData(Some memberFlags, _, _)), _) -> not memberFlags.IsDispatchSlot + | SynMemberDefn.Member(SynBinding(valData = SynValData(memberFlags = Some memberFlags)), _) -> not memberFlags.IsDispatchSlot | SynMemberDefn.Interface (members=defOpt) -> Option.isSome defOpt | SynMemberDefn.LetBindings _ -> true | SynMemberDefn.ImplicitCtor _ -> true diff --git a/src/Compiler/Checking/CheckExpressions.fs b/src/Compiler/Checking/CheckExpressions.fs index 92c93b5a623..0d74fc9860e 100644 --- a/src/Compiler/Checking/CheckExpressions.fs +++ b/src/Compiler/Checking/CheckExpressions.fs @@ -2337,14 +2337,14 @@ module BindingNormalization = let private MakeNormalizedStaticOrValBinding (cenv: cenv) isObjExprBinding id vis typars args rhsExpr valSynData = - let (SynValData(memberFlagsOpt, _, _)) = valSynData + let (SynValData(memberFlags = memberFlagsOpt)) = valSynData NormalizedBindingPat(mkSynPatVar vis id, PushMultiplePatternsToRhs cenv ((isObjExprBinding = ObjExprBinding) || Option.isSome memberFlagsOpt) args rhsExpr, valSynData, typars) let private MakeNormalizedInstanceMemberBinding (cenv: cenv) thisId memberId toolId vis m typars args rhsExpr valSynData = NormalizedBindingPat(SynPat.InstanceMember(thisId, memberId, toolId, vis, m), PushMultiplePatternsToRhs cenv true args rhsExpr, valSynData, typars) let private NormalizeStaticMemberBinding (cenv: cenv) (memberFlags: SynMemberFlags) valSynData id vis typars args m rhsExpr = - let (SynValData(_, valSynInfo, thisIdOpt)) = valSynData + let (SynValData(valInfo = valSynInfo; thisIdOpt = thisIdOpt; transformedFromAutoProperty = tap)) = valSynData if memberFlags.IsInstance then // instance method without adhoc "this" argument error(Error(FSComp.SR.tcInstanceMemberRequiresTarget(), m)) @@ -2358,7 +2358,7 @@ module BindingNormalization = // static property: these transformed into methods taking one "unit" argument | [], SynMemberKind.Member -> let memberFlags = {memberFlags with MemberKind = SynMemberKind.PropertyGet} - let valSynData = SynValData(Some memberFlags, valSynInfo, thisIdOpt) + let valSynData = SynValData(Some memberFlags, valSynInfo, thisIdOpt, tap) NormalizedBindingPat(mkSynPatVar vis id, PushOnePatternToRhs cenv true (SynPat.Const(SynConst.Unit, m)) rhsExpr, valSynData, @@ -2366,7 +2366,7 @@ module BindingNormalization = | _ -> MakeNormalizedStaticOrValBinding cenv ValOrMemberBinding id vis typars args rhsExpr valSynData let private NormalizeInstanceMemberBinding (cenv: cenv) (memberFlags: SynMemberFlags) valSynData thisId memberId (toolId: Ident option) vis typars args m rhsExpr = - let (SynValData(_, valSynInfo, thisIdOpt)) = valSynData + let (SynValData(_, valSynInfo, thisIdOpt, tap)) = valSynData if not memberFlags.IsInstance then // static method with adhoc "this" argument @@ -2390,7 +2390,7 @@ module BindingNormalization = (SynPat.InstanceMember(thisId, memberId, toolId, vis, m), PushOnePatternToRhs cenv true (SynPat.Const(SynConst.Unit, m)) rhsExpr, // Update the member info to record that this is a SynMemberKind.PropertyGet - SynValData(Some memberFlags, valSynInfo, thisIdOpt), + SynValData(Some memberFlags, valSynInfo, thisIdOpt, tap), typars) | _ -> @@ -2398,7 +2398,7 @@ module BindingNormalization = let private NormalizeBindingPattern (cenv: cenv) nameResolver isObjExprBinding (env: TcEnv) valSynData headPat rhsExpr = let ad = env.AccessRights - let (SynValData(memberFlagsOpt, _, _)) = valSynData + let (SynValData(memberFlags = memberFlagsOpt)) = valSynData let rec normPattern pat = // One major problem with versions of F# prior to 1.9.x was that data constructors easily 'pollute' the namespace // of available items, to the point that you can't even define a function with the same name as an existing union case. @@ -2501,10 +2501,10 @@ module EventDeclarationNormalization = | _ -> error(BadEventTransformation m) let private ConvertSynData m valSynData = - let (SynValData(memberFlagsOpt, valSynInfo, thisIdOpt)) = valSynData + let (SynValData(memberFlagsOpt, valSynInfo, thisIdOpt, tap)) = valSynData let memberFlagsOpt = ConvertMemberFlagsOpt m memberFlagsOpt let valSynInfo = ConvertSynInfo m valSynInfo - SynValData(memberFlagsOpt, valSynInfo, thisIdOpt) + SynValData(memberFlagsOpt, valSynInfo, thisIdOpt, tap) let rec private RenameBindingPattern f declPattern = match declPattern with @@ -6653,7 +6653,7 @@ and TcRecordConstruction (cenv: cenv) (overallTy: TType) env tpenv withExprInfoO and GetNameAndSynValInfoOfObjExprBinding _cenv _env b = let (NormalizedBinding (_, _, _, _, _, _, _, valSynData, pat, rhsExpr, mBinding, _)) = b - let (SynValData(memberFlagsOpt, valSynInfo, _)) = valSynData + let (SynValData(memberFlags = memberFlagsOpt; valInfo = valSynInfo)) = valSynData match pat, memberFlagsOpt with // This is the normal case for F# 'with member x.M(...) = ...' @@ -6745,7 +6745,7 @@ and TcObjectExprBinding (cenv: cenv) (env: TcEnv) implTy tpenv (absSlotInfo, bin let g = cenv.g let (NormalizedBinding(vis, kind, isInline, isMutable, attrs, xmlDoc, synTyparDecls, valSynData, headPat, bindingRhs, mBinding, debugPoint)) = bind - let (SynValData(memberFlagsOpt, _, _)) = valSynData + let (SynValData(memberFlags = memberFlagsOpt)) = valSynData // 4a2. adjust the binding, especially in the "member" case, a subset of the logic of AnalyzeAndMakeAndPublishRecursiveValue let bindingRhs, logicalMethId, memberFlags = @@ -6825,7 +6825,7 @@ and ComputeObjectExprOverrides (cenv: cenv) (env: TcEnv) tpenv impls = let binds, bindsAttributes = [ for binding in binds do let (NormalizedBinding(_, _, _, _, bindingSynAttribs, _, _, valSynData, _, _, _, _)) = binding - let (SynValData(memberFlagsOpt, _, _)) = valSynData + let (SynValData(memberFlags = memberFlagsOpt)) = valSynData let attrTgt = ObjectExpressionOverrideBinding.AllowedAttribTargets memberFlagsOpt let bindingAttribs = TcAttributes cenv env attrTgt bindingSynAttribs yield binding, bindingAttribs @@ -10334,7 +10334,7 @@ and TcNormalizedBinding declKind (cenv: cenv) env tpenv overallTy safeThisValOpt match bind with | NormalizedBinding(vis, kind, isInline, isMutable, attrs, xmlDoc, _, valSynData, pat, NormalizedBindingRhs(spatsL, rtyOpt, rhsExpr), mBinding, debugPoint) -> - let (SynValData(memberFlagsOpt, _, _)) = valSynData + let (SynValData(memberFlags = memberFlagsOpt)) = valSynData let callerName = match declKind, kind, pat with @@ -10392,8 +10392,8 @@ and TcNormalizedBinding declKind (cenv: cenv) env tpenv overallTy safeThisValOpt match rotRetSynAttrs with | [] -> valSynData | {Range=mHead} :: _ -> - let (SynValData(valMf, SynValInfo(args, SynArgInfo(attrs, opt, retId)), valId)) = valSynData - SynValData(valMf, SynValInfo(args, SynArgInfo({Attributes=rotRetSynAttrs; Range=mHead} :: attrs, opt, retId)), valId) + let (SynValData(valMf, SynValInfo(args, SynArgInfo(attrs, opt, retId)), valId, tap)) = valSynData + SynValData(valMf, SynValInfo(args, SynArgInfo({Attributes=rotRetSynAttrs; Range=mHead} :: attrs, opt, retId)), valId, tap) retAttribs, valAttribs, valSynData let isVolatile = HasFSharpAttribute g g.attrib_VolatileFieldAttribute valAttribs @@ -10469,7 +10469,7 @@ and TcNormalizedBinding declKind (cenv: cenv) env tpenv overallTy safeThisValOpt let isCompGen = false // Use the syntactic arity if we're defining a function - let (SynValData(_, valSynInfo, _)) = valSynData + let (SynValData(valInfo = valSynInfo)) = valSynData let prelimValReprInfo = TranslateSynValInfo cenv mBinding (TcAttributes cenv env) valSynInfo // Check the pattern of the l.h.s. of the binding @@ -11522,7 +11522,7 @@ and AnalyzeAndMakeAndPublishRecursiveValue // Pull apart the inputs let (NormalizedBinding(vis1, bindingKind, isInline, isMutable, bindingSynAttribs, bindingXmlDoc, synTyparDecls, valSynData, declPattern, bindingRhs, mBinding, debugPoint)) = binding let (NormalizedBindingRhs(_, _, bindingExpr)) = bindingRhs - let (SynValData(memberFlagsOpt, valSynInfo, thisIdOpt)) = valSynData + let (SynValData(memberFlagsOpt, valSynInfo, thisIdOpt, _)) = valSynData let (ContainerInfo(altActualParent, tcrefContainerInfo)) = containerInfo let attrTgt = declKind.AllowedAttribTargets memberFlagsOpt diff --git a/src/Compiler/Service/ServiceNavigation.fs b/src/Compiler/Service/ServiceNavigation.fs index c46fad0bb91..8fc5722cd58 100755 --- a/src/Compiler/Service/ServiceNavigation.fs +++ b/src/Compiler/Service/ServiceNavigation.fs @@ -168,7 +168,7 @@ module NavigationImpl = // Process let-binding let processBinding isMember enclosingEntityKind isAbstract synBinding = let (SynBinding (valData = valData; headPat = synPat; expr = synExpr)) = synBinding - let (SynValData (memberOpt, _, _)) = valData + let (SynValData (memberFlags = memberOpt)) = valData let m = match synExpr with @@ -811,7 +811,7 @@ module NavigateTo = let addBinding synBinding itemKind container = let (SynBinding (valData = valData; headPat = headPat)) = synBinding - let (SynValData (memberFlagsOpt, _, _)) = valData + let (SynValData (memberFlags = memberFlagsOpt)) = valData let kind = match itemKind with diff --git a/src/Compiler/Service/ServiceStructure.fs b/src/Compiler/Service/ServiceStructure.fs index 93625581f3d..37c3e9bca68 100644 --- a/src/Compiler/Service/ServiceStructure.fs +++ b/src/Compiler/Service/ServiceStructure.fs @@ -562,19 +562,15 @@ module Structure = binding match valData with - | SynValData (Some { - MemberKind = SynMemberKind.Constructor - }, - _, - _) -> + | SynValData(memberFlags = Some { + MemberKind = SynMemberKind.Constructor + }) -> let collapse = Range.endToEnd synPat.Range d.Range rcheck Scope.New Collapse.Below d.Range collapse - | SynValData (Some { - MemberKind = SynMemberKind.PropertyGet | SynMemberKind.PropertySet - }, - _, - _) -> + | SynValData(memberFlags = Some { + MemberKind = SynMemberKind.PropertyGet | SynMemberKind.PropertySet + }) -> let range = mkRange d.Range.FileName (mkPos d.Range.StartLine objectModelRange.StartColumn) d.Range.End let collapse = diff --git a/src/Compiler/Service/ServiceXmlDocParser.fs b/src/Compiler/Service/ServiceXmlDocParser.fs index b607b390291..d7d2a23524f 100644 --- a/src/Compiler/Service/ServiceXmlDocParser.fs +++ b/src/Compiler/Service/ServiceXmlDocParser.fs @@ -47,11 +47,11 @@ module XmlDocParsing = let (SynBinding (valData = synValData; headPat = synPat)) = binding match synValData with - | SynValData (_, SynValInfo (curriedArgs, _), _) when not curriedArgs.IsEmpty -> + | SynValData(valInfo = SynValInfo (curriedArgInfos = curriedArgs)) when not curriedArgs.IsEmpty -> let parameters = [ for args in curriedArgs do - for (SynArgInfo (_, _, ident)) in args do + for (SynArgInfo (ident = ident)) in args do match ident with | Some ident -> ident.idText | None -> () diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fs b/src/Compiler/SyntaxTree/ParseHelpers.fs index ccab923c760..ec203db0a83 100644 --- a/src/Compiler/SyntaxTree/ParseHelpers.fs +++ b/src/Compiler/SyntaxTree/ParseHelpers.fs @@ -566,7 +566,7 @@ let mkSynMemberDefnGetSet (mBindLhs, attrs) ||> unionRangeWithListBy (fun (a: SynAttributeList) -> a.Range) - let (SynValData (_, valSynInfo, _)) = valSynData + let (SynValData (valInfo = valSynInfo)) = valSynData // Setters have all arguments tupled in their internal TAST form, though they don't appear to be // tupled from the syntax @@ -616,7 +616,7 @@ let mkSynMemberDefnGetSet // should be unreachable, cover just in case raiseParseErrorAt mWholeBindLhs (FSComp.SR.parsInvalidProperty ()) - let valSynData = SynValData(Some(memFlags), valSynInfo, None) + let valSynData = SynValData(Some(memFlags), valSynInfo, None, None) // Fold together the information from the first lambda pattern and the get/set binding // This uses the 'this' variable from the first and the patterns for the get/set binding, diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fs b/src/Compiler/SyntaxTree/SyntaxTree.fs index 2dd3dc51291..d9d2e2e784f 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fs +++ b/src/Compiler/SyntaxTree/SyntaxTree.fs @@ -1023,9 +1023,13 @@ type SynAttributes = SynAttributeList list [] type SynValData = - | SynValData of memberFlags: SynMemberFlags option * valInfo: SynValInfo * thisIdOpt: Ident option + | SynValData of + memberFlags: SynMemberFlags option * + valInfo: SynValInfo * + thisIdOpt: Ident option * + transformedFromAutoProperty: Ident option - member x.SynValInfo = (let (SynValData (_flags, synValInfo, _)) = x in synValInfo) + member x.SynValInfo = (let (SynValData (valInfo = synValInfo)) = x in synValInfo) [] type SynBinding = diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fsi b/src/Compiler/SyntaxTree/SyntaxTree.fsi index d7f01cd4889..1274e6ec6df 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fsi +++ b/src/Compiler/SyntaxTree/SyntaxTree.fsi @@ -1174,7 +1174,13 @@ type SynAttributes = SynAttributeList list /// Represents extra information about the declaration of a value [] type SynValData = - | SynValData of memberFlags: SynMemberFlags option * valInfo: SynValInfo * thisIdOpt: Ident option + | SynValData of + memberFlags: SynMemberFlags option * + valInfo: SynValInfo * + thisIdOpt: Ident option * + /// Is only used populated during type-checking when an auto-property has both a getter and setter. + /// It is used to track the fact that the getter and setter are part of the same auto-property when they are desugared. + transformedFromAutoProperty: Ident option member SynValInfo: SynValInfo diff --git a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs index f25b7abb37f..a685c1696ce 100644 --- a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs +++ b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs @@ -625,7 +625,7 @@ module SynInfo = let private emptySynValInfo = SynValInfo([], unnamedRetVal) - let emptySynValData = SynValData(None, emptySynValInfo, None) + let emptySynValData = SynValData(None, emptySynValInfo, None, None) /// Infer the syntactic information for a 'let' or 'member' definition, based on the argument pattern, /// any declared return information (e.g. .NET attributes on the return element), and the r.h.s. expression @@ -653,7 +653,7 @@ module SynInfo = @ (if explicitArgsAreSimple then infosForLambdaArgs else []) let infosForArgs = AdjustArgsForUnitElimination infosForArgs - SynValData(None, SynValInfo(infosForArgs, retInfo), None) + SynValData(None, SynValInfo(infosForArgs, retInfo), None, None) | Some memFlags -> let infosForObjArgs = if memFlags.IsInstance then [ selfMetadata ] else [] @@ -662,7 +662,7 @@ module SynInfo = let infosForArgs = AdjustArgsForUnitElimination infosForArgs let argInfos = infosForObjArgs @ infosForArgs - SynValData(Some memFlags, SynValInfo(argInfos, retInfo), None) + SynValData(Some memFlags, SynValInfo(argInfos, retInfo), None, None) let mkSynBindingRhs staticOptimizations rhsExpr mRhs retInfo = let rhsExpr = @@ -687,6 +687,19 @@ let mkSynBinding let mBind = unionRangeWithXmlDoc xmlDoc mBind SynBinding(vis, SynBindingKind.Normal, isInline, isMutable, attrs, xmlDoc, info, headPat, retTyOpt, rhsExpr, mBind, spBind, trivia) +let mkSynBindingForAutoPropertyMember + (autoPropertyIdent: Ident) + (xmlDoc: PreXmlDoc, headPat) + (vis, isInline, isMutable, mBind, spBind, retInfo, origRhsExpr, mRhs, staticOptimizations, attrs, memberFlagsOpt, trivia) + = + let (SynBinding (vis, kind, ii, im, attr, xmlDoc, SynValData (memberFlags, valInfo, thisIdOpt, _), p, ri, e, m, dp, t)) = + mkSynBinding + (xmlDoc, headPat) + (vis, isInline, isMutable, mBind, spBind, retInfo, origRhsExpr, mRhs, staticOptimizations, attrs, memberFlagsOpt, trivia) + + let valData = SynValData(memberFlags, valInfo, thisIdOpt, Some autoPropertyIdent) + SynBinding(vis, kind, ii, im, attr, xmlDoc, valData, p, ri, e, m, dp, t) + let NonVirtualMemberFlags k : SynMemberFlags = { MemberKind = k diff --git a/src/Compiler/SyntaxTree/SyntaxTreeOps.fsi b/src/Compiler/SyntaxTree/SyntaxTreeOps.fsi index 7e6d135d874..3377c6feb61 100644 --- a/src/Compiler/SyntaxTree/SyntaxTreeOps.fsi +++ b/src/Compiler/SyntaxTree/SyntaxTreeOps.fsi @@ -288,6 +288,23 @@ val mkSynBinding: trivia: SynBindingTrivia -> SynBinding +val mkSynBindingForAutoPropertyMember: + autoPropertyIdent: Ident -> + xmlDoc: PreXmlDoc * headPat: SynPat -> + vis: SynAccess option * + isInline: bool * + isMutable: bool * + mBind: range * + spBind: DebugPointAtBinding * + retInfo: (range option * SynReturnInfo) option * + origRhsExpr: SynExpr * + mRhs: range * + staticOptimizations: (SynStaticOptimizationConstraint list * SynExpr) list * + attrs: SynAttributes * + memberFlagsOpt: SynMemberFlags option * + trivia: SynBindingTrivia -> + SynBinding + val NonVirtualMemberFlags: k: SynMemberKind -> SynMemberFlags val CtorMemberFlags: SynMemberFlags diff --git a/src/Compiler/pars.fsy b/src/Compiler/pars.fsy index 26414673888..d14dbdcde49 100644 --- a/src/Compiler/pars.fsy +++ b/src/Compiler/pars.fsy @@ -2057,7 +2057,7 @@ classDefnMember: let m = unionRanges mWholeBindLhs $7.Range |> unionRangeWithXmlDoc xmlDoc let mEquals = rhs parseState 6 let expr = $7 - let valSynData = SynValData (Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat $4], SynInfo.unnamedRetVal), Option.bind snd $5) + let valSynData = SynValData (Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat $4], SynInfo.unnamedRetVal), Option.bind snd $5, None) let vis = $2 let declPat = SynPat.LongIdent(SynLongIdent([mkSynId (rhs parseState 3) "new"], [], [None]), None, Some noInferredTypars, SynArgPats.Pats [$4], vis, rhs parseState 3) // Check that 'SynPatForConstructorDecl' matches this correctly @@ -2073,7 +2073,7 @@ classDefnMember: let xmlDoc = grabXmlDoc (parseState, $1, 1) let m = unionRanges (rhs parseState 1) mEnd |> unionRangeWithXmlDoc xmlDoc let expr = arbExpr ("new1", mEnd.EndRange) - let valSynData = SynValData (Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat $4], SynInfo.unnamedRetVal), Option.bind snd $5) + let valSynData = SynValData (Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat $4], SynInfo.unnamedRetVal), Option.bind snd $5, None) let declPat = SynPat.LongIdent(SynLongIdent([mkSynId (rhs parseState 3) "new"], [], [None]), None, Some noInferredTypars, SynArgPats.Pats [$4], $2, rhs parseState 3) assert (match declPat with SynPatForConstructorDecl _ -> true | _ -> false) let synBindingTrivia: SynBindingTrivia = { LeadingKeyword = SynLeadingKeyword.New mNew; InlineKeyword = None; EqualsRange = None } @@ -2087,7 +2087,7 @@ classDefnMember: let xmlDoc = grabXmlDoc (parseState, $1, 1) let m = unionRanges (rhs parseState 1) mEnd |> unionRangeWithXmlDoc xmlDoc let expr = arbExpr ("new2", mEnd.EndRange) - let valSynData = SynValData(Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat $4], SynInfo.unnamedRetVal), Option.bind snd $5) + let valSynData = SynValData(Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat $4], SynInfo.unnamedRetVal), Option.bind snd $5, None) let declPat = SynPat.LongIdent(SynLongIdent([mkSynId (rhs parseState 3) "new"], [], [None]), None, Some noInferredTypars, SynArgPats.Pats [$4], $2, rhs parseState 3) assert (match declPat with SynPatForConstructorDecl _ -> true | _ -> false) let synBindingTrivia: SynBindingTrivia = { LeadingKeyword = SynLeadingKeyword.New mNew; InlineKeyword = None; EqualsRange = None } @@ -2099,7 +2099,7 @@ classDefnMember: let xmlDoc = grabXmlDoc (parseState, $1, 1) let pat = patFromParseError (SynPat.Wild(mNew.EndRange)) let expr = arbExpr ("new3", mNew.EndRange) - let valSynData = SynValData(Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat pat], SynInfo.unnamedRetVal), None) + let valSynData = SynValData(Some CtorMemberFlags, SynValInfo([SynInfo.InferSynArgInfoFromPat pat], SynInfo.unnamedRetVal), None, None) let vis = $2 let declPat = SynPat.LongIdent(SynLongIdent([mkSynId (rhs parseState 3) "new"], [], [None]), None, Some noInferredTypars, SynArgPats.Pats [pat], vis, rhs parseState 3) let synBindingTrivia: SynBindingTrivia = { LeadingKeyword = SynLeadingKeyword.New mNew; InlineKeyword = None; EqualsRange = None } diff --git a/tests/FSharp.Compiler.ComponentTests/Signatures/TestCasesForGenerationRoundTrip/auto-property.fsx b/tests/FSharp.Compiler.ComponentTests/Signatures/TestCasesForGenerationRoundTrip/auto-property.fsx new file mode 100644 index 00000000000..71492c386b5 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/Signatures/TestCasesForGenerationRoundTrip/auto-property.fsx @@ -0,0 +1,6 @@ +module A + +/// Some comment on class +type Bar() = + /// Some comment on class member + member val Foo = "bla" with get, set \ No newline at end of file diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index a19dfd30a00..74fe0ff2a4d 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -479,17 +479,27 @@ type Foo = | _ -> Assert.Fail "Symbol was not FSharpMemberOrFunctionOrValue" - let getSymbol = findSymbolUseByName "get_AutoPropGetSet" checkResults - let setSymbol = findSymbolUseByName "set_AutoPropGetSet" checkResults + let getSymbol = + checkResults.GetSymbolUsesAtLocation(5, 42, " member val AutoPropGetSet = 0 with get, set", ["get"]) + |> List.map (fun su -> su.Symbol) + |> List.exactlyOne + + // Two symbols for the setter: the set function and the compiler generated v parameter + let setSymbols = + checkResults.GetSymbolUsesAtLocation(5, 47, " member val AutoPropGetSet = 0 with get, set", ["set"]) + |> List.map (fun su -> su.Symbol) - match getSymbol.Symbol, setSymbol.Symbol with + match getSymbol, setSymbols with | :? FSharpMemberOrFunctionOrValue as getMfv, - (:? FSharpMemberOrFunctionOrValue as setMfv) -> - Assert.AreNotEqual(getMfv.CurriedParameterGroups, setMfv.CurriedParameterGroups) + [ :? FSharpMemberOrFunctionOrValue as setVMfv + :? FSharpMemberOrFunctionOrValue as setMfv ] -> + Assert.True(getMfv.CompiledName.StartsWith("get_")) + Assert.AreEqual("v", setVMfv.DisplayName) + Assert.True(setMfv.CompiledName.StartsWith("set_")) | _ -> Assert.Fail "Expected symbols to be FSharpMemberOrFunctionOrValue" [] - let ``Multiple symbols are resolved for property`` () = + let ``Single symbol is resolved for property`` () = let source = """ type X(y: string) = member val Y = y with get, set @@ -501,10 +511,9 @@ type X(y: string) = |> List.map (fun su -> su.Symbol) match symbolUses with - | [ :? FSharpMemberOrFunctionOrValue as setMfv - :? FSharpMemberOrFunctionOrValue as getMfv ] -> - Assert.AreEqual("set_Y", setMfv.CompiledName) - Assert.AreEqual("get_Y", getMfv.CompiledName) + | [ :? FSharpMemberOrFunctionOrValue as mfv ] -> + Assert.True mfv.HasGetterMethod + Assert.True mfv.HasSetterMethod | _ -> Assert.Fail "Expected symbols" [] From 91771b96471c00d65dc257e0a57de12da895d1a1 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 11:41:16 +0200 Subject: [PATCH 06/19] Report single property item for regular property. --- src/Compiler/Checking/CheckDeclarations.fs | 22 ++++++++++------- src/Compiler/Checking/CheckExpressions.fs | 7 +++--- src/Compiler/SyntaxTree/SyntaxTree.fs | 2 +- src/Compiler/SyntaxTree/SyntaxTree.fsi | 6 ++--- src/Compiler/SyntaxTree/SyntaxTreeOps.fs | 28 ++++++++++++---------- src/Compiler/SyntaxTree/SyntaxTreeOps.fsi | 17 +------------ tests/service/Symbols.fs | 10 +++++--- 7 files changed, 43 insertions(+), 49 deletions(-) diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index 429e39dd921..7bcc98b3f35 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -920,7 +920,7 @@ module MutRecBindingChecking = | SynMemberDefn.Member (bind, m), _ -> // Phase2A: member binding - create prelim valspec (for recursive reference) and RecursiveBindingInfo - let NormalizedBinding(_, _, _, _, _, _, _, valSynData, _, _, _, _) as bind = BindingNormalization.NormalizeBinding ValOrMemberBinding cenv envForTycon bind + let NormalizedBinding(valSynData = valSynData) as bind = BindingNormalization.NormalizeBinding ValOrMemberBinding cenv envForTycon bind let (SynValData(memberFlags = memberFlagsOpt)) = valSynData match tcref.TypeOrMeasureKind with @@ -956,24 +956,24 @@ module MutRecBindingChecking = | definition -> error(InternalError(sprintf "Unexpected definition %A" definition, m))) - // Report any desugared auto properties + // Report any desugared properties if defnAs.Length > 1 then for b1, b2 in List.pairwise defnAs do match b1, b2 with | TyconBindingPhase2A.Phase2AMember { - SyntacticBinding = NormalizedBinding(valSynData = SynValData(transformedFromAutoProperty = Some getAutoPropertyIdent)) + SyntacticBinding = NormalizedBinding(valSynData = SynValData(transformedFromProperty = Some getPropertyIdent)) RecBindingInfo = RecursiveBindingInfo(vspec = vGet) }, TyconBindingPhase2A.Phase2AMember { - SyntacticBinding = NormalizedBinding(valSynData = SynValData(transformedFromAutoProperty = Some setAutoPropertyIdent)) + SyntacticBinding = NormalizedBinding(valSynData = SynValData(transformedFromProperty = Some setPropertyIdent)) RecBindingInfo = RecursiveBindingInfo(vspec = vSet) - } when Range.equals getAutoPropertyIdent.idRange setAutoPropertyIdent.idRange -> + } when Range.equals getPropertyIdent.idRange setPropertyIdent.idRange -> match vGet.ApparentEnclosingEntity with | ParentNone -> () | Parent parentRef -> let apparentEnclosingType = generalizedTyconRef g parentRef - let item = Item.Property(getAutoPropertyIdent.idText, [ PropInfo.FSProp(g, apparentEnclosingType, Some (mkLocalValRef vGet), Some (mkLocalValRef vSet)) ]) - CallNameResolutionSink cenv.tcSink (getAutoPropertyIdent.idRange, envForTycon.NameEnv, item, emptyTyparInst, ItemOccurence.Binding, envForTycon.eAccessRights) + let item = Item.Property(getPropertyIdent.idText, [ PropInfo.FSProp(g, apparentEnclosingType, Some (mkLocalValRef vGet), Some (mkLocalValRef vSet)) ]) + CallNameResolutionSink cenv.tcSink (getPropertyIdent.idRange, envForTycon.NameEnv, item, emptyTyparInst, ItemOccurence.Binding, envForTycon.eAccessRights) | _ -> () // If no constructor call, insert Phase2AIncrClassCtorJustAfterSuperInit at start @@ -4222,7 +4222,9 @@ module TcDeclarations = | _ -> id if isStatic then [id] else [ident ("__", mMemberPortion);id] let headPat = SynPat.LongIdent (SynLongIdent(headPatIds, [], List.replicate headPatIds.Length None), None, Some noInferredTypars, SynArgPats.Pats [], None, mMemberPortion) - let binding = mkSynBindingForAutoPropertyMember id (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, retInfo, rhsExpr, rhsExpr.Range, [], attribs, Some memberFlags, SynBindingTrivia.Zero) + let binding = + mkSynBinding (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, retInfo, rhsExpr, rhsExpr.Range, [], attribs, Some memberFlags, SynBindingTrivia.Zero) + |> updatePropertyIdentInSynBinding id SynMemberDefn.Member (binding, mMemberPortion) yield getter | _ -> () @@ -4243,7 +4245,9 @@ module TcDeclarations = if isStatic then [id] else [ident ("__", mMemberPortion);id] let headPat = SynPat.LongIdent (SynLongIdent(headPatIds, [], List.replicate headPatIds.Length None), None, Some noInferredTypars, SynArgPats.Pats [mkSynPatVar None vId], None, mMemberPortion) let rhsExpr = mkSynAssign (SynExpr.Ident fldId) (SynExpr.Ident vId) - let binding = mkSynBindingForAutoPropertyMember id (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, None, rhsExpr, rhsExpr.Range, [], [], Some memberFlagsForSet, SynBindingTrivia.Zero) + let binding = + mkSynBinding (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, None, rhsExpr, rhsExpr.Range, [], [], Some memberFlagsForSet, SynBindingTrivia.Zero) + |> updatePropertyIdentInSynBinding id SynMemberDefn.Member (binding, mMemberPortion) yield setter | _ -> ()] diff --git a/src/Compiler/Checking/CheckExpressions.fs b/src/Compiler/Checking/CheckExpressions.fs index 0d74fc9860e..53104378042 100644 --- a/src/Compiler/Checking/CheckExpressions.fs +++ b/src/Compiler/Checking/CheckExpressions.fs @@ -2344,7 +2344,7 @@ module BindingNormalization = NormalizedBindingPat(SynPat.InstanceMember(thisId, memberId, toolId, vis, m), PushMultiplePatternsToRhs cenv true args rhsExpr, valSynData, typars) let private NormalizeStaticMemberBinding (cenv: cenv) (memberFlags: SynMemberFlags) valSynData id vis typars args m rhsExpr = - let (SynValData(valInfo = valSynInfo; thisIdOpt = thisIdOpt; transformedFromAutoProperty = tap)) = valSynData + let (SynValData(valInfo = valSynInfo; thisIdOpt = thisIdOpt; transformedFromProperty = tp)) = valSynData if memberFlags.IsInstance then // instance method without adhoc "this" argument error(Error(FSComp.SR.tcInstanceMemberRequiresTarget(), m)) @@ -2358,7 +2358,7 @@ module BindingNormalization = // static property: these transformed into methods taking one "unit" argument | [], SynMemberKind.Member -> let memberFlags = {memberFlags with MemberKind = SynMemberKind.PropertyGet} - let valSynData = SynValData(Some memberFlags, valSynInfo, thisIdOpt, tap) + let valSynData = SynValData(Some memberFlags, valSynInfo, thisIdOpt, tp) NormalizedBindingPat(mkSynPatVar vis id, PushOnePatternToRhs cenv true (SynPat.Const(SynConst.Unit, m)) rhsExpr, valSynData, @@ -11432,8 +11432,7 @@ and AnalyzeRecursiveInstanceMemberDecl // the definition of these symbols. // // See https://github.com/fsharp/FSharp.Compiler.Service/issues/79. - //let memberId = match toolId with Some tid -> ident(memberId.idText, tid.idRange) | None -> memberId - //ignore toolId + let memberId = match toolId with Some tid -> ident(memberId.idText, tid.idRange) | _ -> memberId envinner, tpenv, memberId, toolId, Some memberInfo, vis, vis2, None, enclosingDeclaredTypars, baseValOpt, explicitTyparInfo, bindingRhs, declaredTypars | _ -> diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fs b/src/Compiler/SyntaxTree/SyntaxTree.fs index d9d2e2e784f..fe86d2220a3 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fs +++ b/src/Compiler/SyntaxTree/SyntaxTree.fs @@ -1027,7 +1027,7 @@ type SynValData = memberFlags: SynMemberFlags option * valInfo: SynValInfo * thisIdOpt: Ident option * - transformedFromAutoProperty: Ident option + transformedFromProperty: Ident option member x.SynValInfo = (let (SynValData (valInfo = synValInfo)) = x in synValInfo) diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fsi b/src/Compiler/SyntaxTree/SyntaxTree.fsi index 1274e6ec6df..b45687bb839 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fsi +++ b/src/Compiler/SyntaxTree/SyntaxTree.fsi @@ -1178,9 +1178,9 @@ type SynValData = memberFlags: SynMemberFlags option * valInfo: SynValInfo * thisIdOpt: Ident option * - /// Is only used populated during type-checking when an auto-property has both a getter and setter. - /// It is used to track the fact that the getter and setter are part of the same auto-property when they are desugared. - transformedFromAutoProperty: Ident option + /// Is only used populated during type-checking when an property has both a getter and setter. + /// It is used to track the fact that the getter and setter are part of the same property when they are desugared. + transformedFromProperty: Ident option member SynValInfo: SynValInfo diff --git a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs index a685c1696ce..71e15bf4cdc 100644 --- a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs +++ b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs @@ -687,17 +687,11 @@ let mkSynBinding let mBind = unionRangeWithXmlDoc xmlDoc mBind SynBinding(vis, SynBindingKind.Normal, isInline, isMutable, attrs, xmlDoc, info, headPat, retTyOpt, rhsExpr, mBind, spBind, trivia) -let mkSynBindingForAutoPropertyMember - (autoPropertyIdent: Ident) - (xmlDoc: PreXmlDoc, headPat) - (vis, isInline, isMutable, mBind, spBind, retInfo, origRhsExpr, mRhs, staticOptimizations, attrs, memberFlagsOpt, trivia) +let updatePropertyIdentInSynBinding + propertyIdent + (SynBinding (vis, kind, ii, im, attr, xmlDoc, SynValData (memberFlags, valInfo, thisIdOpt, _), p, ri, e, m, dp, t)) = - let (SynBinding (vis, kind, ii, im, attr, xmlDoc, SynValData (memberFlags, valInfo, thisIdOpt, _), p, ri, e, m, dp, t)) = - mkSynBinding - (xmlDoc, headPat) - (vis, isInline, isMutable, mBind, spBind, retInfo, origRhsExpr, mRhs, staticOptimizations, attrs, memberFlagsOpt, trivia) - - let valData = SynValData(memberFlags, valInfo, thisIdOpt, Some autoPropertyIdent) + let valData = SynValData(memberFlags, valInfo, thisIdOpt, Some propertyIdent) SynBinding(vis, kind, ii, im, attr, xmlDoc, valData, p, ri, e, m, dp, t) let NonVirtualMemberFlags k : SynMemberFlags = @@ -966,17 +960,25 @@ let rec desugarGetSetMembers (memberDefns: SynMemberDefns) = memberDefns |> List.collect (fun md -> match md with - | SynMemberDefn.GetSetMember (Some (SynBinding _ as getBinding), + | SynMemberDefn.GetSetMember (Some (SynBinding(headPat = SynPat.LongIdent (longDotId = lid)) as getBinding), Some (SynBinding _ as setBinding), m, { GetKeyword = Some mGet SetKeyword = Some mSet }) -> + let lastIdent = List.last lid.LongIdent + if Position.posLt mGet.Start mSet.Start then - [ SynMemberDefn.Member(getBinding, m); SynMemberDefn.Member(setBinding, m) ] + [ + SynMemberDefn.Member(updatePropertyIdentInSynBinding lastIdent getBinding, m) + SynMemberDefn.Member(updatePropertyIdentInSynBinding lastIdent setBinding, m) + ] else - [ SynMemberDefn.Member(setBinding, m); SynMemberDefn.Member(getBinding, m) ] + [ + SynMemberDefn.Member(updatePropertyIdentInSynBinding lastIdent setBinding, m) + SynMemberDefn.Member(updatePropertyIdentInSynBinding lastIdent getBinding, m) + ] | SynMemberDefn.GetSetMember (Some binding, None, m, _) | SynMemberDefn.GetSetMember (None, Some binding, m, _) -> [ SynMemberDefn.Member(binding, m) ] | SynMemberDefn.Interface (interfaceType, withKeyword, members, m) -> diff --git a/src/Compiler/SyntaxTree/SyntaxTreeOps.fsi b/src/Compiler/SyntaxTree/SyntaxTreeOps.fsi index 3377c6feb61..080929d44aa 100644 --- a/src/Compiler/SyntaxTree/SyntaxTreeOps.fsi +++ b/src/Compiler/SyntaxTree/SyntaxTreeOps.fsi @@ -288,22 +288,7 @@ val mkSynBinding: trivia: SynBindingTrivia -> SynBinding -val mkSynBindingForAutoPropertyMember: - autoPropertyIdent: Ident -> - xmlDoc: PreXmlDoc * headPat: SynPat -> - vis: SynAccess option * - isInline: bool * - isMutable: bool * - mBind: range * - spBind: DebugPointAtBinding * - retInfo: (range option * SynReturnInfo) option * - origRhsExpr: SynExpr * - mRhs: range * - staticOptimizations: (SynStaticOptimizationConstraint list * SynExpr) list * - attrs: SynAttributes * - memberFlagsOpt: SynMemberFlags option * - trivia: SynBindingTrivia -> - SynBinding +val updatePropertyIdentInSynBinding: propertyIdent: Ident -> SynBinding -> SynBinding val NonVirtualMemberFlags: k: SynMemberKind -> SynMemberFlags diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index 74fe0ff2a4d..652a51099f2 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -442,9 +442,14 @@ type Foo = // "X" resolves a symbol but it will either be the get or set symbol. // Use get_ or set_ to differentiate. - let xSymbol = checkResults.GetSymbolUseAtLocation(5, 14, " member _.X", [ "X" ]) - Assert.True xSymbol.IsSome + let xSymbol = checkResults.GetSymbolUsesAtLocation(5, 14, " member _.X", [ "X" ]) |> List.exactlyOne + match xSymbol.Symbol with + | :? FSharpMemberOrFunctionOrValue as mfv -> + Assert.True mfv.HasGetterMethod + Assert.True mfv.HasSetterMethod + | symbol-> Assert.Fail $"Expected {symbol} to be FSharpMemberOrFunctionOrValue" + let getSymbol = findSymbolUseByName "get_X" checkResults match getSymbol.Symbol with | :? FSharpMemberOrFunctionOrValue as mfv -> @@ -545,7 +550,6 @@ type internal SR () = Assert.AreEqual("SR", entity.DisplayName) | _ -> Assert.Fail "Expected symbols" - module Expressions = [] let ``Unresolved record field 01`` () = From fa650c540f6bed8644e7a51fb2e4a46740b5d802 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 13:16:30 +0200 Subject: [PATCH 07/19] Fix existing tests --- src/Compiler/Checking/CheckExpressions.fs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Compiler/Checking/CheckExpressions.fs b/src/Compiler/Checking/CheckExpressions.fs index 53104378042..f096bd0d385 100644 --- a/src/Compiler/Checking/CheckExpressions.fs +++ b/src/Compiler/Checking/CheckExpressions.fs @@ -11369,6 +11369,7 @@ and AnalyzeRecursiveInstanceMemberDecl thisId, memberId: Ident, toolId: Ident option, + isTransformedProperty: bool, bindingAttribs, vis2, tcrefContainerInfo, @@ -11432,7 +11433,7 @@ and AnalyzeRecursiveInstanceMemberDecl // the definition of these symbols. // // See https://github.com/fsharp/FSharp.Compiler.Service/issues/79. - let memberId = match toolId with Some tid -> ident(memberId.idText, tid.idRange) | _ -> memberId + let memberId = match toolId with Some tid when isTransformedProperty -> ident(memberId.idText, tid.idRange) | _ -> memberId envinner, tpenv, memberId, toolId, Some memberInfo, vis, vis2, None, enclosingDeclaredTypars, baseValOpt, explicitTyparInfo, bindingRhs, declaredTypars | _ -> @@ -11447,6 +11448,7 @@ and AnalyzeRecursiveDecl declaredTypars, thisIdOpt, valSynInfo, + isTransformedProperty, explicitTyparInfo, newslotsOK, overridesOK, @@ -11491,7 +11493,7 @@ and AnalyzeRecursiveDecl AnalyzeRecursiveInstanceMemberDecl (cenv, envinner, tpenv, declKind, synTyparDecls, valSynInfo, explicitTyparInfo, newslotsOK, - overridesOK, vis1, thisId, memberId, toolId, + overridesOK, vis1, thisId, memberId, toolId, isTransformedProperty, bindingAttribs, vis2, tcrefContainerInfo, memberFlagsOpt, ty, bindingRhs, mBinding) @@ -11521,7 +11523,7 @@ and AnalyzeAndMakeAndPublishRecursiveValue // Pull apart the inputs let (NormalizedBinding(vis1, bindingKind, isInline, isMutable, bindingSynAttribs, bindingXmlDoc, synTyparDecls, valSynData, declPattern, bindingRhs, mBinding, debugPoint)) = binding let (NormalizedBindingRhs(_, _, bindingExpr)) = bindingRhs - let (SynValData(memberFlagsOpt, valSynInfo, thisIdOpt, _)) = valSynData + let (SynValData(memberFlagsOpt, valSynInfo, thisIdOpt, transformedFromProperty)) = valSynData let (ContainerInfo(altActualParent, tcrefContainerInfo)) = containerInfo let attrTgt = declKind.AllowedAttribTargets memberFlagsOpt @@ -11544,7 +11546,8 @@ and AnalyzeAndMakeAndPublishRecursiveValue // OK, analyze the declaration and return lots of information about it let envinner, tpenv, bindingId, toolIdOpt, memberInfoOpt, vis, vis2, safeThisValOpt, enclosingDeclaredTypars, baseValOpt, explicitTyparInfo, bindingRhs, declaredTypars = - AnalyzeRecursiveDecl (cenv, envinner, tpenv, declKind, synTyparDecls, declaredTypars, thisIdOpt, valSynInfo, explicitTyparInfo, + AnalyzeRecursiveDecl (cenv, envinner, tpenv, declKind, synTyparDecls, declaredTypars, thisIdOpt, valSynInfo, + transformedFromProperty.IsSome, explicitTyparInfo, newslotsOK, overridesOK, vis1, declPattern, bindingAttribs, tcrefContainerInfo, memberFlagsOpt, ty, bindingRhs, mBinding) From fc2f0651a5c4ab639ef8c4472e9988b3a7f6fa13 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 13:49:42 +0200 Subject: [PATCH 08/19] Only add meta data when auto property has both get and set. --- src/Compiler/Checking/CheckDeclarations.fs | 16 ++++-- tests/service/Symbols.fs | 65 ++++++++++++++++++++++ 2 files changed, 77 insertions(+), 4 deletions(-) diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index 7bcc98b3f35..ca02eb87d63 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -4222,9 +4222,13 @@ module TcDeclarations = | _ -> id if isStatic then [id] else [ident ("__", mMemberPortion);id] let headPat = SynPat.LongIdent (SynLongIdent(headPatIds, [], List.replicate headPatIds.Length None), None, Some noInferredTypars, SynArgPats.Pats [], None, mMemberPortion) + let binding = mkSynBinding (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, retInfo, rhsExpr, rhsExpr.Range, [], attribs, Some memberFlags, SynBindingTrivia.Zero) let binding = - mkSynBinding (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, retInfo, rhsExpr, rhsExpr.Range, [], attribs, Some memberFlags, SynBindingTrivia.Zero) - |> updatePropertyIdentInSynBinding id + match mGetSetOpt with + | Some (GetSetKeywords.GetSet _) -> + // Only add the additional meta data to the SynBinding (SynValData) is both get and set are present. + updatePropertyIdentInSynBinding id binding + | _ -> binding SynMemberDefn.Member (binding, mMemberPortion) yield getter | _ -> () @@ -4245,9 +4249,13 @@ module TcDeclarations = if isStatic then [id] else [ident ("__", mMemberPortion);id] let headPat = SynPat.LongIdent (SynLongIdent(headPatIds, [], List.replicate headPatIds.Length None), None, Some noInferredTypars, SynArgPats.Pats [mkSynPatVar None vId], None, mMemberPortion) let rhsExpr = mkSynAssign (SynExpr.Ident fldId) (SynExpr.Ident vId) + let binding = mkSynBinding (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, None, rhsExpr, rhsExpr.Range, [], [], Some memberFlagsForSet, SynBindingTrivia.Zero) let binding = - mkSynBinding (xmlDoc, headPat) (access, false, false, mMemberPortion, DebugPointAtBinding.NoneAtInvisible, None, rhsExpr, rhsExpr.Range, [], [], Some memberFlagsForSet, SynBindingTrivia.Zero) - |> updatePropertyIdentInSynBinding id + match mGetSetOpt with + | Some (GetSetKeywords.GetSet _) -> + // Only add the additional meta data to the SynBinding (SynValData) is both get and set are present. + updatePropertyIdentInSynBinding id binding + | _ -> binding SynMemberDefn.Member (binding, mMemberPortion) yield setter | _ -> ()] diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index 652a51099f2..9028d245309 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -550,6 +550,67 @@ type internal SR () = Assert.AreEqual("SR", entity.DisplayName) | _ -> Assert.Fail "Expected symbols" + [] + let ``AutoProperty with get has get symbol attached to property name`` () = + let _, checkResults = getParseAndCheckResults """ +namespace Foo + +type Foo() = + member val Bar = 0 with get +""" + + let autoPropertySymbolUses = + checkResults.GetSymbolUsesAtLocation(5, 18, " member val Bar = 0 with get", ["Bar"]) + |> List.map (fun su -> su.Symbol) + + match autoPropertySymbolUses with + | [ :? FSharpMemberOrFunctionOrValue as mfv ] -> + Assert.True mfv.IsPropertyGetterMethod + assertRange (5, 15) (5, 18) mfv.SignatureLocation.Value + | symbols -> Assert.Fail $"Unexpected symbols, got %A{symbols}" + + [] + let ``Property with get has symbol attached to property name`` () = + let _, checkResults = getParseAndCheckResults """ +namespace F + +type Foo() = + let mutable b = 0 + member this.Count with get () = b +""" + + let getSymbolUses = + checkResults.GetSymbolUsesAtLocation(6, 21, " member this.Count with get () = b", ["Count"]) + |> List.map (fun su -> su.Symbol) + + match getSymbolUses with + | [ :? FSharpMemberOrFunctionOrValue as mfv ] -> + Assert.True mfv.IsPropertyGetterMethod + assertRange (6, 16) (6, 21) mfv.SignatureLocation.Value + | symbols -> Assert.Fail $"Unexpected symbols, got %A{symbols}" + + [] + let ``Property with set has symbol attached to property name`` () = + let _, checkResults = getParseAndCheckResults """ +namespace F + +type Foo() = + let mutable b = 0 + member this.Count with set (v:int) = b <- v +""" + + let _all = checkResults.GetAllUsesOfAllSymbolsInFile() + + let getSymbolUses = + checkResults.GetSymbolUsesAtLocation(6, 21, " member this.Count with set (v:int) = b <- v", ["Count"]) + |> List.map (fun su -> su.Symbol) + + match getSymbolUses with + | [ :? FSharpMemberOrFunctionOrValue as mfv ] -> + Assert.True mfv.IsPropertySetterMethod + assertRange (6, 16) (6, 21) mfv.SignatureLocation.Value + | symbols -> Assert.Fail $"Unexpected symbols, got %A{symbols}" + module Expressions = [] let ``Unresolved record field 01`` () = @@ -705,3 +766,7 @@ type BAttribute() = let a ([] c: int) : int = 0 """ (7, 5, "let a ([] c: int) : int = 0", "a") + +type Foo() = + let mutable b = 0 + member this.Bar with get () = b and set (v: int) = b <- v \ No newline at end of file From 3dd2b64e8fdcbfb2e54c0b5e3131bb75868129cb Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 13:51:22 +0200 Subject: [PATCH 09/19] Update SynValInfo in syntax tree tests. --- ...ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl | 2 +- ...eturnTypeIsPartOfTriviaInProperties.fs.bsl | 4 ++-- ...itionalDirectiveAroundInlineKeyword.fs.bsl | 2 +- .../Binding/InlineKeywordInBinding.fs.bsl | 4 ++-- ...nShouldBeIncludedInSynModuleDeclLet.fs.bsl | 3 ++- ...BeIncludedInBindingOfSynExprObjExpr.fs.bsl | 2 +- ...dedInConstructorSynMemberDefnMember.fs.bsl | 2 +- ...tructorSynMemberDefnMemberOptAsSpec.fs.bsl | 2 +- ...edInFullSynMemberDefnMemberProperty.fs.bsl | 4 ++-- ...uldBeIncludedInSecondaryConstructor.fs.bsl | 6 +++--- ...eIncludedInSynMemberDefnLetBindings.fs.bsl | 2 +- ...ouldBeIncludedInSynMemberDefnMember.fs.bsl | 2 +- ...eShouldBeIncludedInSynModuleDeclLet.fs.bsl | 6 +++--- ...riteOnlySynMemberDefnMemberProperty.fs.bsl | 2 +- ...ignShouldBePresentInLocalLetBinding.fs.bsl | 2 +- ...ouldBePresentInLocalLetBindingTyped.fs.bsl | 2 +- ...lSignShouldBePresentInMemberBinding.fs.bsl | 2 +- ...resentInMemberBindingWithParameters.fs.bsl | 2 +- ...resentInMemberBindingWithReturnType.fs.bsl | 2 +- ...fEqualSignShouldBePresentInProperty.fs.bsl | 4 ++-- ...dBePresentInSynModuleDeclLetBinding.fs.bsl | 19 ++++++++++--------- ...esentInSynModuleDeclLetBindingTyped.fs.bsl | 4 ++-- ...ldBePresentInSynExprLetOrUseBinding.fs.bsl | 7 ++++--- ...dBePresentInSynModuleDeclLetBinding.fs.bsl | 19 ++++++++++--------- ...nModuleDeclLetBindingWithAttributes.fs.bsl | 19 ++++++++++--------- ...turnTypeOfBindingShouldContainStars.fs.bsl | 8 ++++---- .../BlockCommentInSourceCode.fs.bsl | 2 +- ...BeCapturedIfUsedInAnInvalidLocation.fs.bsl | 5 +++-- ...ipleSlashCommentShouldNotBeCaptured.fs.bsl | 6 +++--- ...tilineCommentAreNotReportedAsTrivia.fs.bsl | 6 +++--- ...ltilineStringAreNotReportedAsTrivia.fs.bsl | 5 +++-- .../NestedIfElseEndif.fs.bsl | 16 ++++++++-------- ...NestedIfEndifWithComplexExpressions.fs.bsl | 6 +++--- .../SingleIfElseEndif.fs.bsl | 6 +++--- .../ConditionalDirective/SingleIfEndif.fs.bsl | 6 +++--- ...uldContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- .../Expression/AnonymousRecords-06.fs.bsl | 2 +- .../Expression/Binary - Plus 05.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Do 03.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Do 04.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Do 05.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/For 03.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/For 04.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/For 05.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/If 08.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/If 09.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/If 10.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Lazy 01.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Lazy 02.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Lazy 03.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Let 01.fs.bsl | 10 +++++----- .../data/SyntaxTree/Expression/Let 02.fs.bsl | 4 ++-- ...LetOrUseContainsTheRangeOfInKeyword.fs.bsl | 7 ++++--- .../Expression/ObjectExpr 01.fs.bsl | 9 +++++---- .../data/SyntaxTree/Expression/Set 04.fs.bsl | 4 ++-- ...xprDoContainsTheRangeOfTheDoKeyword.fs.bsl | 5 +++-- ...LetOrUseContainsTheRangeOfInKeyword.fs.bsl | 2 +- ...seDoesNotContainTheRangeOfInKeyword.fs.bsl | 2 +- ...rsDoesNotContainTheRangeOfInKeyword.fs.bsl | 2 +- ...eBindingContainsTheRangeOfInKeyword.fs.bsl | 4 ++-- ...bjExprContainsTheRangeOfWithKeyword.fs.bsl | 4 ++-- .../Expression/SynExprObjWithSetter.fs.bsl | 2 +- .../Expression/Try - Finally 01.fs.bsl | 4 ++-- .../Expression/Try - Finally 02.fs.bsl | 4 ++-- .../Expression/Try - Finally 03.fs.bsl | 4 ++-- .../Expression/Try - Finally 04.fs.bsl | 4 ++-- .../Expression/Try - With 01.fs.bsl | 4 ++-- .../Expression/Try - With 02.fs.bsl | 4 ++-- .../Expression/Try - With 03.fs.bsl | 4 ++-- .../Expression/Try - With 04.fs.bsl | 4 ++-- .../Expression/Try - With 05.fs.bsl | 4 ++-- .../Expression/Try - With 06.fs.bsl | 4 ++-- .../Expression/Try - With 07.fs.bsl | 4 ++-- .../Expression/Try - With 08.fs.bsl | 4 ++-- .../Expression/Try - With 09.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Try 01.fs.bsl | 4 ++-- .../data/SyntaxTree/Expression/Try 02.fs.bsl | 4 ++-- .../Try with - Missing expr 04.fs.bsl | 2 +- .../Expression/Tuple - Missing item 10.fs.bsl | 5 +++-- .../Expression/Tuple - Missing item 11.fs.bsl | 12 ++++++------ .../Unfinished escaped ident 02.fs.bsl | 4 ++-- .../SyntaxTree/Expression/While 03.fs.bsl | 4 ++-- .../SyntaxTree/Expression/While 04.fs.bsl | 4 ++-- .../SyntaxTree/Expression/While 05.fs.bsl | 4 ++-- .../SyntaxTree/Expression/While 06.fs.bsl | 4 ++-- .../data/SyntaxTree/Extern/Extern 01.fs.bsl | 2 +- .../ExternKeywordIsPresentInTrivia.fs.bsl | 3 ++- .../LeadingKeyword/AndKeyword.fs.bsl | 4 ++-- .../LeadingKeyword/DoKeyword.fs.bsl | 2 +- .../LeadingKeyword/DoStaticKeyword.fs.bsl | 2 +- .../LeadingKeyword/ExternKeyword.fs.bsl | 3 ++- .../LeadingKeyword/LetKeyword.fs.bsl | 2 +- .../LeadingKeyword/LetRecKeyword.fs.bsl | 2 +- .../LeadingKeyword/MemberKeyword.fs.bsl | 2 +- .../LeadingKeyword/NewKeyword.fs.bsl | 2 +- .../LeadingKeyword/OverrideKeyword.fs.bsl | 2 +- .../LeadingKeyword/StaticLetKeyword.fs.bsl | 2 +- .../LeadingKeyword/StaticLetRecKeyword.fs.bsl | 2 +- .../LeadingKeyword/StaticMemberKeyword.fs.bsl | 2 +- .../LeadingKeyword/SyntheticKeyword.fs.bsl | 2 +- .../LeadingKeyword/UseKeyword.fs.bsl | 2 +- .../LeadingKeyword/UseRecKeyword.fs.bsl | 2 +- .../MatchClause/Missing expr 05.fs.bsl | 4 ++-- .../RangeOfMultipleSynMatchClause.fs.bsl | 2 +- .../RangeOfSingleSynMatchClause.fs.bsl | 2 +- ...OfSingleSynMatchClauseFollowedByBar.fs.bsl | 2 +- ...easureContainsTheRangeOfTheConstant.fs.bsl | 10 ++++++---- .../data/SyntaxTree/Member/Do 01.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Do 02.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Do 03.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Do 04.fs.bsl | 4 ++-- .../SyntaxTree/Member/GetSetMember 01.fs.bsl | 8 ++++---- .../GetSetMemberWithInlineKeyword.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Inherit 05.fs.bsl | 2 +- .../SyntaxTree/Member/Interface 01.fs.bsl | 5 +++-- .../SyntaxTree/Member/Interface 02.fs.bsl | 2 +- .../SyntaxTree/Member/Interface 05.fs.bsl | 6 +++--- .../SyntaxTree/Member/Interface 06.fs.bsl | 2 +- .../SyntaxTree/Member/Interface 07.fs.bsl | 2 +- .../data/SyntaxTree/Member/Let 01.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Let 02.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Let 03.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Let 04.fs.bsl | 2 +- .../Member/Member - Attributes 01.fs.bsl | 6 +++--- .../Member - Param - Missing type 01.fs.bsl | 2 +- .../data/SyntaxTree/Member/Member 01.fs.bsl | 6 +++--- .../data/SyntaxTree/Member/Member 02.fs.bsl | 6 +++--- .../data/SyntaxTree/Member/Member 03.fs.bsl | 6 +++--- .../data/SyntaxTree/Member/Member 04.fs.bsl | 6 +++--- .../data/SyntaxTree/Member/Member 05.fs.bsl | 6 +++--- .../data/SyntaxTree/Member/Member 06.fs.bsl | 6 +++--- .../data/SyntaxTree/Member/Member 07.fs.bsl | 6 +++--- .../data/SyntaxTree/Member/Member 08.fs.bsl | 2 +- .../data/SyntaxTree/Member/Member 09.fs.bsl | 2 +- .../Member/MemberWithInlineKeyword.fs.bsl | 2 +- ...berContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...berContainsTheRangeOfTheWithKeyword.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Static 01.fs.bsl | 4 ++-- .../data/SyntaxTree/Member/Static 02.fs.bsl | 6 +++--- .../data/SyntaxTree/Member/Static 03.fs.bsl | 6 +++--- ...eDefnWithMemberWithGetHasXmlComment.fs.bsl | 2 +- .../SynTypeDefnWithMemberWithSetget.fs.bsl | 4 ++-- ...nTypeDefnWithStaticMemberWithGetset.fs.bsl | 5 +++-- ...berContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...ynExprObjMembersHaveCorrectKeywords.fs.bsl | 9 +++++---- ...fnMemberSynValDataHasCorrectKeyword.fs.bsl | 8 ++++---- .../SyntaxTree/ModuleMember/Let 01.fs.bsl | 10 +++++----- .../SyntaxTree/ModuleMember/Let 02.fs.bsl | 4 ++-- .../SyntaxTree/ModuleMember/Let 03.fs.bsl | 4 ++-- .../Module - Attribute 01.fs.bsl | 4 ++-- .../ModuleShouldContainModuleKeyword.fs.bsl | 2 +- ...angeThatStartsAtTheNamespaceKeyword.fs.bsl | 14 +++++++------- ...espaceShouldContainNamespaceKeyword.fs.bsl | 2 +- .../NestedModuleWithBeginEndAndDecls.fs.bsl | 2 +- .../ActivePatternDefinition.fs.bsl | 2 +- ...ivePatternIdentifierInPrivateMember.fs.bsl | 2 +- .../CustomOperatorDefinition.fs.bsl | 2 +- .../ObjectModelWithTwoMembers.fs.bsl | 6 +++--- .../OperatorInMemberDefinition.fs.bsl | 2 +- .../PartialActivePatternDefinition.fs.bsl | 2 +- ...ePatternDefinitionWithoutParameters.fs.bsl | 3 ++- .../QualifiedOperatorExpression.fs.bsl | 2 +- .../SyntaxTree/Pattern/InHeadPattern.fs.bsl | 3 ++- .../Pattern/OperatorInSynPatLongIdent.fs.bsl | 3 ++- .../Pattern/Tuple - HeadPat 01.fs.bsl | 6 ++++-- .../Pattern/Tuple - HeadPat 02.fs.bsl | 3 ++- .../Pattern/Tuple - Recover 01.fs.bsl | 3 ++- .../Pattern/Tuple - Recover 02.fs.bsl | 3 ++- .../Pattern/Tuple - Recover 03.fs.bsl | 6 ++++-- .../Pattern/Tuple - Recover 04.fs.bsl | 9 ++++++--- .../Pattern/Tuple - Struct 01.fs.bsl | 3 ++- .../Pattern/Typed - Missing type 01.fs.bsl | 4 ++-- .../Pattern/Typed - Missing type 02.fs.bsl | 4 ++-- .../Pattern/Typed - Missing type 03.fs.bsl | 3 ++- .../Pattern/Typed - Missing type 04.fs.bsl | 3 ++- .../Pattern/Typed - Missing type 05.fs.bsl | 2 +- .../Pattern/Typed - Missing type 06.fs.bsl | 2 +- .../Pattern/Typed - Missing type 09.fs.bsl | 2 +- .../Pattern/Typed - Missing type 10.fs.bsl | 2 +- .../Pattern/Typed - Missing type 11.fs.bsl | 2 +- .../Pattern/Typed - Missing type 12.fs.bsl | 2 +- .../SimplePats/SimplePats - Recover 01.fs.bsl | 8 ++++---- .../SimplePats/SimplePats 01.fs.bsl | 11 ++++++----- .../InterpolatedStringOffsideInModule.fs.bsl | 2 +- ...nterpolatedStringOffsideInNestedLet.fs.bsl | 7 ++++--- ...stBytesWithSynByteStringKindRegular.fs.bsl | 3 ++- ...tBytesWithSynByteStringKindVerbatim.fs.bsl | 3 ++- ...ConstStringWithSynStringKindRegular.fs.bsl | 6 +++--- ...tStringWithSynStringKindTripleQuote.fs.bsl | 5 +++-- ...onstStringWithSynStringKindVerbatim.fs.bsl | 5 +++-- ...latedStringWithSynStringKindRegular.fs.bsl | 5 +++-- ...dStringWithSynStringKindTripleQuote.fs.bsl | 5 +++-- ...atedStringWithSynStringKindVerbatim.fs.bsl | 5 +++-- ...tringWithTripleQuoteMultipleDollars.fs.bsl | 5 +++-- .../data/SyntaxTree/SynType/Fun 06.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Fun 07.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Fun 08.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Fun 09.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Fun 10.fs.bsl | 4 ++-- ...stedSynTypeOrInsideSynExprTraitCall.fs.bsl | 2 +- ...SingleSynTypeInsideSynExprTraitCall.fs.bsl | 2 +- .../SynTypeOrInsideSynExprTraitCall.fs.bsl | 2 +- ...eConstraintWhereTyparSupportsMember.fs.bsl | 3 ++- ...TypeOrWithAppTypeOnTheRightHandSide.fs.bsl | 2 +- .../data/SyntaxTree/SynType/Tuple 09.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Tuple 10.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Tuple 11.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Tuple 12.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Tuple 13.fs.bsl | 4 ++-- .../data/SyntaxTree/SynType/Tuple 14.fs.bsl | 4 ++-- .../data/SyntaxTree/Type/Record 01.fs.bsl | 3 ++- .../data/SyntaxTree/Type/Record 02.fs.bsl | 3 ++- ...aceContainsTheRangeOfTheWithKeyword.fs.bsl | 3 ++- ...ionContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...ordContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- .../Type/SynTypeTupleWithStruct.fs.bsl | 4 ++-- .../SynTypeTupleWithStructRecovery.fs.bsl | 4 ++-- .../data/SyntaxTree/Type/Type 07.fs.bsl | 2 +- .../data/SyntaxTree/Type/Type 10.fs.bsl | 3 ++- .../data/SyntaxTree/Type/With 01.fs.bsl | 2 +- .../data/SyntaxTree/Type/With 04.fs.bsl | 2 +- .../UnionCase/Missing keyword of.fs.bsl | 9 +++++---- 222 files changed, 485 insertions(+), 435 deletions(-) diff --git a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl index 17fea8f0a33..97d9a77e73f 100644 --- a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some y)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x], [], [None]), None, None, Pats [Named (SynIdent (y, None), false, None, (2,6--2,7))], diff --git a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl index dd5022f2bc2..db56167b2c4 100644 --- a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl @@ -29,7 +29,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Y], [(3,15--3,16)], [None; None]), @@ -67,7 +67,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, None)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Y], [(3,15--3,16)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl index 115b95c51eb..86dc6eaa1de 100644 --- a/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl @@ -14,7 +14,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some f)]; [SynArgInfo ([], false, Some ar)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([map], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl index 5a7bf976186..e65dad438cc 100644 --- a/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl @@ -14,7 +14,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some y)]; [SynArgInfo ([], false, Some z)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x], [], [None]), None, None, Pats @@ -31,7 +31,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some b)]; [SynArgInfo ([], false, Some c)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([a], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl index 63b8a81ea59..25878126ec6 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl @@ -21,7 +21,8 @@ ImplFile Range = (2,4--2,15) }], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (LongIdent (SynLongIdent ([A], [], [None]), None, None, diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs.bsl index db5fe5051fe..8c19e2511e9 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInBindingOfSynExprObjExpr.fs.bsl @@ -33,7 +33,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x; ToString], [(4,12--4,13)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl index d52e2f085ba..ed3e82ef381 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl @@ -34,7 +34,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Constructor }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), LongIdent (SynLongIdent ([new], [], [None]), None, Some (SynValTyparDecls (None, false)), diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl index 4717531eb39..4b5225762b1 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl @@ -35,7 +35,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Constructor }, SynValInfo ([[]], SynArgInfo ([], false, None)), - Some tony), + Some tony, None), LongIdent (SynLongIdent ([new], [], [None]), None, Some (SynValTyparDecls (None, false)), diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl index fe111972f91..8dab1d33401 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl @@ -40,7 +40,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; TheWord], [(4,15--4,16)], @@ -78,7 +78,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; TheWord], [(4,15--4,16)], diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl index 2b1943b2d20..ccc1709cf5d 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl @@ -31,7 +31,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Constructor }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), LongIdent (SynLongIdent ([new], [], [None]), None, Some (SynValTyparDecls (None, false)), @@ -57,7 +57,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Constructor }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), LongIdent (SynLongIdent ([new], [], [None]), None, Some (SynValTyparDecls (None, false)), @@ -91,7 +91,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Constructor }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), LongIdent (SynLongIdent ([new], [], [None]), None, Some (SynValTyparDecls (None, false)), diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl index a8e5110eeb4..48648d6723d 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl @@ -29,7 +29,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (x, None), false, None, (4,8--4,9)), None, Const (Int32 8, (4,12--4,13)), (3,4--4,9), Yes (3,4--4,13), diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl index 83139fe83ee..544e9227853 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl @@ -35,7 +35,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Something], [(4,15--4,16)], diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl index 08edc3d2631..16b26430fef 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl @@ -19,9 +19,9 @@ ImplFile Range = (2,0--2,7) }], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (a, None), false, None, (3,4--3,5)), None, - Const (Int32 0, (3,8--3,9)), (2,0--3,5), Yes (2,0--3,9), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (a, None), false, None, (3,4--3,5)), + None, Const (Int32 0, (3,8--3,9)), (2,0--3,5), Yes (2,0--3,9), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,6--3,7) })], (2,0--3,9))], diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl index bf0e8802e32..8c2637ecf53 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl @@ -42,7 +42,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; MyWriteOnlyProperty], [(4,15--4,16)], diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl index 844946e66c3..2b619f5d620 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl @@ -14,7 +14,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (z, None), false, None, (3,8--3,9)), None, Const (Int32 2, (3,12--3,13)), (3,8--3,9), Yes (3,4--3,13), { LeadingKeyword = Let (3,4--3,7) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl index b0e567ed3bd..ca1ea0fb3aa 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl @@ -16,7 +16,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (z, None), false, None, (3,8--3,9)), Some (SynBindingReturnInfo diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl index e76316e2210..c5a918ac00f 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl @@ -29,7 +29,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Y], [(3,15--3,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl index b9aa74e11b9..0d0bd7ee206 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl @@ -32,7 +32,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Y], [(3,15--3,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl index 2458900141d..8ebabf6888a 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl @@ -32,7 +32,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Y], [(3,15--3,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl index 92929b73a08..fd984aff8fb 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl @@ -32,7 +32,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; MyReadWriteProperty], [(3,15--3,16)], @@ -62,7 +62,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; MyReadWriteProperty], [(3,15--3,16)], diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl index eca7f36b6dd..ea098162941 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl @@ -13,12 +13,13 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), None, - Const (Int32 12, (2,8--2,10)), (2,4--2,5), Yes (2,0--2,10), - { LeadingKeyword = Let (2,0--2,3) - InlineKeyword = None - EqualsRange = Some (2,6--2,7) })], (2,0--2,10))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], - (true, true), { ConditionalDirectives = [] - CodeComments = [] }, set [])) + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), + None, Const (Int32 12, (2,8--2,10)), (2,4--2,5), + Yes (2,0--2,10), { LeadingKeyword = Let (2,0--2,3) + InlineKeyword = None + EqualsRange = Some (2,6--2,7) })], + (2,0--2,10))], PreXmlDocEmpty, [], None, (2,0--3,0), + { LeadingKeyword = None })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl index 651cdb4f8ce..0d2b9bc507f 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl @@ -13,8 +13,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), Some (SynBindingReturnInfo (LongIdent (SynLongIdent ([int], [], [None])), diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl index 31febede5b6..e16c4496191 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl @@ -13,8 +13,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (a, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (a, None), false, None, (2,4--2,5)), + None, LetOrUse (false, false, [SynBinding @@ -24,7 +25,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some c)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([b], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl index 0a175553cad..be738731f79 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl @@ -13,12 +13,13 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), None, - Const (Int32 12, (2,8--2,10)), (2,4--2,5), Yes (2,0--2,10), - { LeadingKeyword = Let (2,0--2,3) - InlineKeyword = None - EqualsRange = Some (2,6--2,7) })], (2,0--2,10))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], - (true, true), { ConditionalDirectives = [] - CodeComments = [] }, set [])) + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), + None, Const (Int32 12, (2,8--2,10)), (2,4--2,5), + Yes (2,0--2,10), { LeadingKeyword = Let (2,0--2,3) + InlineKeyword = None + EqualsRange = Some (2,6--2,7) })], + (2,0--2,10))], PreXmlDocEmpty, [], None, (2,0--3,0), + { LeadingKeyword = None })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl index 613931862dd..7dbd1e99ce1 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl @@ -21,12 +21,13 @@ ImplFile Range = (3,0--3,17) }], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (5,4--5,5)), None, - Const (Int32 12, (5,8--5,10)), (2,0--5,5), Yes (3,0--5,10), - { LeadingKeyword = Let (5,0--5,3) - InlineKeyword = None - EqualsRange = Some (5,6--5,7) })], (2,0--5,10))], - PreXmlDocEmpty, [], None, (3,0--6,0), { LeadingKeyword = None })], - (true, true), { ConditionalDirectives = [] - CodeComments = [LineComment (4,0--4,15)] }, set [])) + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (5,4--5,5)), + None, Const (Int32 12, (5,8--5,10)), (2,0--5,5), + Yes (3,0--5,10), { LeadingKeyword = Let (5,0--5,3) + InlineKeyword = None + EqualsRange = Some (5,6--5,7) })], + (2,0--5,10))], PreXmlDocEmpty, [], None, (3,0--6,0), + { LeadingKeyword = None })], (true, true), + { ConditionalDirectives = [] + CodeComments = [LineComment (4,0--4,15)] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl b/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl index a8dae863d64..8c305453870 100644 --- a/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (a, None), false, None, (2,4--2,5)), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (a, None), false, None, (2,4--2,5)), Some (SynBindingReturnInfo (Tuple @@ -43,8 +43,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (b, None), false, None, (3,4--3,5)), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (b, None), false, None, (3,4--3,5)), Some (SynBindingReturnInfo (Tuple diff --git a/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl index 91dffc0ee66..eb4a38fff41 100644 --- a/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl +++ b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some c)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([a], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl index 85dd058c92d..40e38789974 100644 --- a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl +++ b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl @@ -13,8 +13,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (x, None), false, None, (3,4--3,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (x, None), false, None, (3,4--3,5)), + None, Sequential (SuppressNeither, true, While diff --git a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl index fafd932e041..bc183efb267 100644 --- a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl +++ b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl @@ -10,9 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (x, None), false, None, (3,4--3,5)), None, - Const (Int32 0, (3,8--3,9)), (2,0--3,5), Yes (3,0--3,9), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (x, None), false, None, (3,4--3,5)), + None, Const (Int32 0, (3,8--3,9)), (2,0--3,5), Yes (3,0--3,9), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,6--3,7) })], (2,0--3,9))], diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl index 8a7a55c28a1..5baebcb4cf2 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl @@ -13,9 +13,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), None, - Const (Int32 42, (8,4--8,6)), (2,4--2,5), Yes (2,0--8,6), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), + None, Const (Int32 42, (8,4--8,6)), (2,4--2,5), Yes (2,0--8,6), { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--8,6))], diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl index 231cfd08d6f..fe0025e2c3d 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl @@ -12,8 +12,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), + None, Const (String (" diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl index 9f409f45808..b79c1cf78bb 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl @@ -10,14 +10,14 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), None, - Const (Int32 3, (10,8--10,9)), (2,4--2,5), Yes (2,0--10,9), - { LeadingKeyword = Let (2,0--2,3) - InlineKeyword = None - EqualsRange = Some (2,6--2,7) })], (2,0--10,9))], - PreXmlDocEmpty, [], None, (2,0--12,0), { LeadingKeyword = None })], - (true, true), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), + None, Const (Int32 3, (10,8--10,9)), (2,4--2,5), + Yes (2,0--10,9), { LeadingKeyword = Let (2,0--2,3) + InlineKeyword = None + EqualsRange = Some (2,6--2,7) })], + (2,0--10,9))], PreXmlDocEmpty, [], None, (2,0--12,0), + { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [If (Ident "FOO", (3,4--3,11)); If (Ident "MEH", (4,8--4,15)); Else (6,8--6,13); EndIf (8,8--8,14); Else (9,4--9,9); diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl index 25821646aa0..d711c1ca5b2 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl @@ -10,9 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), None, - Const (Unit, (11,4--11,6)), (2,4--2,5), Yes (2,0--11,6), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), + None, Const (Unit, (11,4--11,6)), (2,4--2,5), Yes (2,0--11,6), { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--11,6))], diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl index 72ac590cc94..8309805dc19 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl @@ -10,9 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), None, - Const (Int32 42, (6,4--6,6)), (2,4--2,5), Yes (2,0--6,6), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), + None, Const (Int32 42, (6,4--6,6)), (2,4--2,5), Yes (2,0--6,6), { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--6,6))], diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl index cd4a4243c4e..2ffc6d26257 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl @@ -10,9 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (v, None), false, None, (2,4--2,5)), None, - Const (Int32 42, (6,4--6,6)), (2,4--2,5), Yes (2,0--6,6), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (v, None), false, None, (2,4--2,5)), + None, Const (Int32 42, (6,4--6,6)), (2,4--2,5), Yes (2,0--6,6), { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--6,6))], diff --git a/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs.bsl index 8326a320162..b91f453d433 100644 --- a/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Exception/SynExceptionDefnShouldContainsTheRangeOfTheWithKeyword.fs.bsl @@ -28,7 +28,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([Meh], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl index 90e976cc843..208bba9095e 100644 --- a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some x)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([f], [], [None]), None, None, Pats [Named (SynIdent (x, None), false, None, (1,6--1,7))], diff --git a/tests/service/data/SyntaxTree/Expression/Binary - Plus 05.fs.bsl b/tests/service/data/SyntaxTree/Expression/Binary - Plus 05.fs.bsl index cf11125c6d9..91f071dec74 100644 --- a/tests/service/data/SyntaxTree/Expression/Binary - Plus 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Binary - Plus 05.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, App (NonAtomic, false, App diff --git a/tests/service/data/SyntaxTree/Expression/Do 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/Do 03.fs.bsl index 99ae567f061..3d770577467 100644 --- a/tests/service/data/SyntaxTree/Expression/Do 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Do 03.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Do (ArbitraryAfterError ("hardwhiteDoBinding1", (4,6--4,6)), (4,4--4,6)), (3,4--3,5), Yes (3,0--4,6), diff --git a/tests/service/data/SyntaxTree/Expression/Do 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/Do 04.fs.bsl index 7edad619273..b159aa693b0 100644 --- a/tests/service/data/SyntaxTree/Expression/Do 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Do 04.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Do (Const (Int32 1, (5,8--5,9)), (4,4--5,9)), (3,4--3,5), Yes (3,0--5,9), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Expression/Do 05.fs.bsl b/tests/service/data/SyntaxTree/Expression/Do 05.fs.bsl index 8707692afc7..6e3d9641ae4 100644 --- a/tests/service/data/SyntaxTree/Expression/Do 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Do 05.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Do (Const (Int32 1, (5,4--5,5)), (4,4--5,5)), (3,4--3,5), Yes (3,0--5,5), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Expression/For 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/For 03.fs.bsl index adaf09a1eaf..77170d60c51 100644 --- a/tests/service/data/SyntaxTree/Expression/For 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/For 03.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, ForEach (Yes (4,4--4,7), Yes (4,10--4,12), SeqExprOnly false, true, Wild (4,8--4,9), Const (Int32 1, (4,13--4,14)), diff --git a/tests/service/data/SyntaxTree/Expression/For 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/For 04.fs.bsl index 41ed392a753..9a1cd39bce2 100644 --- a/tests/service/data/SyntaxTree/Expression/For 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/For 04.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, ForEach (Yes (4,4--4,7), Yes (4,10--4,12), SeqExprOnly false, true, Wild (4,8--4,9), Const (Int32 1, (4,13--4,14)), diff --git a/tests/service/data/SyntaxTree/Expression/For 05.fs.bsl b/tests/service/data/SyntaxTree/Expression/For 05.fs.bsl index 9a71d8f9e4c..8853a7dfdd7 100644 --- a/tests/service/data/SyntaxTree/Expression/For 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/For 05.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, ForEach (Yes (4,4--4,7), Yes (4,10--4,12), SeqExprOnly false, true, Wild (4,8--4,9), Const (Int32 1, (4,13--4,14)), diff --git a/tests/service/data/SyntaxTree/Expression/If 08.fs.bsl b/tests/service/data/SyntaxTree/Expression/If 08.fs.bsl index 016bc4dbfe7..c74c5a5240d 100644 --- a/tests/service/data/SyntaxTree/Expression/If 08.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/If 08.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, IfThenElse (Const (Unit, (4,7--4,9)), Const (Unit, (4,15--4,17)), Some (Const (Unit, (4,23--4,25))), Yes (4,4--4,14), false, diff --git a/tests/service/data/SyntaxTree/Expression/If 09.fs.bsl b/tests/service/data/SyntaxTree/Expression/If 09.fs.bsl index 6541b409bd9..d8752038ba1 100644 --- a/tests/service/data/SyntaxTree/Expression/If 09.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/If 09.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, IfThenElse (Const (Unit, (4,7--4,9)), Const (Unit, (4,15--4,17)), Some (Const (Unit, (5,4--5,6))), Yes (4,4--4,14), false, diff --git a/tests/service/data/SyntaxTree/Expression/If 10.fs.bsl b/tests/service/data/SyntaxTree/Expression/If 10.fs.bsl index 98d5ae23eb6..fd23b9d2538 100644 --- a/tests/service/data/SyntaxTree/Expression/If 10.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/If 10.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, IfThenElse (Const (Unit, (4,7--4,9)), Const (Unit, (4,15--4,17)), Some diff --git a/tests/service/data/SyntaxTree/Expression/Lazy 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/Lazy 01.fs.bsl index 9af75da75fe..d2fb542124f 100644 --- a/tests/service/data/SyntaxTree/Expression/Lazy 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Lazy 01.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Lazy (Const (Int32 1, (5,8--5,9)), (4,4--5,9)), (3,4--3,5), Yes (3,0--5,9), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Expression/Lazy 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Lazy 02.fs.bsl index 32e1522a9e5..4d7df22426d 100644 --- a/tests/service/data/SyntaxTree/Expression/Lazy 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Lazy 02.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Lazy (Const (Int32 1, (5,4--5,5)), (4,4--5,5)), (3,4--3,5), Yes (3,0--5,5), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Expression/Lazy 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/Lazy 03.fs.bsl index f4b5370521d..4bdb1a6d7be 100644 --- a/tests/service/data/SyntaxTree/Expression/Lazy 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Lazy 03.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Lazy (ArbitraryAfterError ("declExprBlock1", (4,8--4,8)), (4,4--4,8)), (3,4--3,5), Yes (3,0--4,8), diff --git a/tests/service/data/SyntaxTree/Expression/Let 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/Let 01.fs.bsl index 8eaabfb3d65..e6b8f512427 100644 --- a/tests/service/data/SyntaxTree/Expression/Let 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Let 01.fs.bsl @@ -9,11 +9,11 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, Const (Unit, (4,4--4,6)), (3,4--3,5), - Yes (3,0--4,6), { LeadingKeyword = Let (3,0--3,3) - InlineKeyword = None - EqualsRange = Some (3,6--3,7) })], + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Const (Unit, (4,4--4,6)), + (3,4--3,5), Yes (3,0--4,6), { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })], (3,0--4,6)); Expr (Const (Unit, (6,0--6,2)), (6,0--6,2))], PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, (1,0--6,2), { LeadingKeyword = Module (1,0--1,6) })], (true, true), diff --git a/tests/service/data/SyntaxTree/Expression/Let 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Let 02.fs.bsl index 4709fa5c7ac..73ff0a8e1a8 100644 --- a/tests/service/data/SyntaxTree/Expression/Let 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Let 02.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, ArbitraryAfterError ("localBinding1", (3,7--3,7)), (3,4--3,5), Yes (3,4--3,7), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl index 132e7030303..18a26f2b638 100644 --- a/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl @@ -12,7 +12,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([f], [], [None]), None, None, Pats [Paren (Const (Unit, (2,6--2,8)), (2,6--2,8))], None, @@ -24,7 +25,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (x, None), false, None, (3,8--3,9)), None, Const (Int32 1, (3,12--3,13)), (3,8--3,9), Yes (3,4--3,13), { LeadingKeyword = Let (3,4--3,7) @@ -38,7 +39,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (y, None), false, None, (4,8--4,9)), None, Const (Int32 2, (4,12--4,13)), (4,8--4,9), Yes (4,4--4,13), { LeadingKeyword = Let (4,4--4,7) diff --git a/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs.bsl index bd5a77bfde1..ee36629c339 100644 --- a/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/ObjectExpr 01.fs.bsl @@ -9,7 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([create], [], [None]), None, None, Pats [Paren (Const (Unit, (3,11--3,13)), (3,11--3,13))], @@ -31,7 +32,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([_; ToString], [(5,18--5,19)], [None; None]), @@ -64,7 +65,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some s)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([_; Foo1], [(7,18--7,19)], [None; None]), @@ -96,7 +97,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some s)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([_; Foo2], [(10,18--10,19)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Expression/Set 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/Set 04.fs.bsl index 2f87f4e5cee..17de1ff081d 100644 --- a/tests/service/data/SyntaxTree/Expression/Set 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Set 04.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, LongIdentSet (SynLongIdent ([x], [], [None]), ArbitraryAfterError ("declExprBlock1", (4,8--4,8)), diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl index 98964bd7ecf..2481d16eba9 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl @@ -10,8 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (a, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (a, None), false, None, (2,4--2,5)), + None, Sequential (SuppressNeither, true, Do (Ident foobar, (3,4--4,14)), DoBang (Ident foobarBang, (5,4--6,18)), (3,4--6,18)), diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl index f9ce333429a..cf1e4f94b43 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl @@ -12,7 +12,7 @@ ImplFile PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (x, None), false, None, (2,4--2,5)), None, Const (Int32 1, (2,8--2,9)), (2,4--2,5), Yes (2,0--2,9), { LeadingKeyword = Let (2,0--2,3) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl index 54c3f8180e4..626e2c17377 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl @@ -15,7 +15,7 @@ ImplFile PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (x, None), false, None, (3,4--3,5)), None, Const (Int32 1, (3,8--3,9)), (3,4--3,5), Yes (3,0--3,9), { LeadingKeyword = Let (3,0--3,3) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl index a5d102356f1..747c0d8f8a9 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl @@ -17,7 +17,7 @@ ImplFile PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (e1, None), false, None, (3,4--3,6)), None, Downcast diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl index 72352706810..5683e65d5b5 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl @@ -16,7 +16,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (f, None), false, None, (3,12--3,13)), None, Const (Unit, (3,16--3,18)), (3,12--3,13), Yes (3,4--3,18), @@ -28,7 +28,7 @@ ImplFile PreXmlDoc ((4,8), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (g, None), false, None, (4,8--4,9)), None, Const (Unit, (4,12--4,14)), (4,8--4,9), Yes (4,4--4,14), { LeadingKeyword = And (4,4--4,7) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs.bsl index c84d9fb3d27..7a1a10cc0c1 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprObjExprContainsTheRangeOfWithKeyword.fs.bsl @@ -21,7 +21,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x; ToString], [(3,12--3,13)], [None; None]), None, @@ -64,7 +64,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x; GetEnumerator], [(6,12--6,13)], diff --git a/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs.bsl index 717ef3af2f2..12ec1bbfcf8 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprObjWithSetter.fs.bsl @@ -73,7 +73,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some v)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; AbstractClassPropertySet], diff --git a/tests/service/data/SyntaxTree/Expression/Try - Finally 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - Finally 01.fs.bsl index d2437e5ebfc..9c7752bdd73 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - Finally 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - Finally 01.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryFinally (Const (Int32 1, (4,8--4,9)), Const (Int32 2, (5,12--5,13)), (4,4--5,13), Yes (4,4--4,7), Yes (5,4--5,11), diff --git a/tests/service/data/SyntaxTree/Expression/Try - Finally 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - Finally 02.fs.bsl index 4d463ef1077..9bdb9d005f8 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - Finally 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - Finally 02.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryFinally (Const (Int32 1, (4,8--4,9)), Const (Int32 2, (6,8--6,9)), (4,4--6,9), Yes (4,4--4,7), Yes (5,4--5,11), diff --git a/tests/service/data/SyntaxTree/Expression/Try - Finally 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - Finally 03.fs.bsl index 2ad046c6c6a..487812e9a8e 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - Finally 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - Finally 03.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryFinally (Const (Int32 1, (4,8--4,9)), Const (Int32 2, (6,4--6,5)), (4,4--6,5), Yes (4,4--4,7), Yes (5,4--5,11), diff --git a/tests/service/data/SyntaxTree/Expression/Try - Finally 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - Finally 04.fs.bsl index 43cf24541ff..bd6a7d58c73 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - Finally 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - Finally 04.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryFinally (Const (Int32 1, (4,8--4,9)), ArbitraryAfterError diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 01.fs.bsl index beb30aedfe4..94ab1be098c 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 01.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [SynMatchClause diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 02.fs.bsl index 0fa71a2d560..17edefbbbca 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 02.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [SynMatchClause diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 03.fs.bsl index f357989f6d7..8cbcb4ef37d 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 03.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [SynMatchClause diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 04.fs.bsl index 207919af1c4..f68f5d1475a 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 04.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [SynMatchClause diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 05.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 05.fs.bsl index cce7a7716ca..ca795cc22bd 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 05.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [SynMatchClause diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 06.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 06.fs.bsl index 2b765f60b64..a04b5df6cad 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 06.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 06.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [], (4,4--5,8), Yes (4,4--4,7), Yes (5,4--5,8), { TryKeyword = (4,4--4,7) diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 07.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 07.fs.bsl index 394af4cbd7c..93733b7f470 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 07.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 07.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [SynMatchClause diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 08.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 08.fs.bsl index bcad7831beb..d70a694debe 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 08.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 08.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [SynMatchClause diff --git a/tests/service/data/SyntaxTree/Expression/Try - With 09.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try - With 09.fs.bsl index d3557177c85..a36973dec18 100644 --- a/tests/service/data/SyntaxTree/Expression/Try - With 09.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try - With 09.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [], (4,4--5,8), Yes (4,4--4,7), Yes (5,4--5,8), { TryKeyword = (4,4--4,7) diff --git a/tests/service/data/SyntaxTree/Expression/Try 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try 01.fs.bsl index 94e5c9c690d..eeae7b2690a 100644 --- a/tests/service/data/SyntaxTree/Expression/Try 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try 01.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (Const (Int32 1, (4,8--4,9)), [], (4,4--4,9), Yes (4,4--4,7), Yes (4,9--4,9), { TryKeyword = (4,4--4,7) diff --git a/tests/service/data/SyntaxTree/Expression/Try 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try 02.fs.bsl index 66b2deb6491..6665896274c 100644 --- a/tests/service/data/SyntaxTree/Expression/Try 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try 02.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, TryWith (ArbitraryAfterError ("try1", (4,7--4,7)), [], (4,4--4,7), Yes (4,4--4,7), Yes (4,7--4,7), diff --git a/tests/service/data/SyntaxTree/Expression/Try with - Missing expr 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/Try with - Missing expr 04.fs.bsl index 94ee31ce8d1..541d39ddecd 100644 --- a/tests/service/data/SyntaxTree/Expression/Try with - Missing expr 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Try with - Missing expr 04.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Wild (5,4--5,5), None, + None, None), Wild (5,4--5,5), None, Const (Unit, (5,8--5,10)), (5,4--5,5), Yes (5,0--5,10), { LeadingKeyword = Let (5,0--5,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Expression/Tuple - Missing item 10.fs.bsl b/tests/service/data/SyntaxTree/Expression/Tuple - Missing item 10.fs.bsl index dad968e1b38..6764b21e2b4 100644 --- a/tests/service/data/SyntaxTree/Expression/Tuple - Missing item 10.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Tuple - Missing item 10.fs.bsl @@ -10,8 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (x, None), false, None, (3,4--3,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (x, None), false, None, (3,4--3,5)), + None, Tuple (false, [Const (Int32 1, (3,8--3,9)); diff --git a/tests/service/data/SyntaxTree/Expression/Tuple - Missing item 11.fs.bsl b/tests/service/data/SyntaxTree/Expression/Tuple - Missing item 11.fs.bsl index df9f4900d70..b86d039bf88 100644 --- a/tests/service/data/SyntaxTree/Expression/Tuple - Missing item 11.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Tuple - Missing item 11.fs.bsl @@ -10,12 +10,12 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (x, None), false, None, (3,4--3,5)), None, - ArbitraryAfterError ("localBinding1", (3,7--3,7)), (3,4--3,5), - Yes (3,4--3,7), { LeadingKeyword = Let (3,0--3,3) - InlineKeyword = None - EqualsRange = Some (3,6--3,7) })], + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (x, None), false, None, (3,4--3,5)), + None, ArbitraryAfterError ("localBinding1", (3,7--3,7)), + (3,4--3,5), Yes (3,4--3,7), { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })], (3,0--3,7))], PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, (1,0--3,7), { LeadingKeyword = Module (1,0--1,6) })], (true, true), diff --git a/tests/service/data/SyntaxTree/Expression/Unfinished escaped ident 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Unfinished escaped ident 02.fs.bsl index 669efb602f1..8b91eb44643 100644 --- a/tests/service/data/SyntaxTree/Expression/Unfinished escaped ident 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Unfinished escaped ident 02.fs.bsl @@ -29,7 +29,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; ], [(4,15--4,16)], [None; None]), None, @@ -56,7 +56,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; ], [(6,15--6,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Expression/While 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/While 03.fs.bsl index b10e7fab890..86b6fbcef09 100644 --- a/tests/service/data/SyntaxTree/Expression/While 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/While 03.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, While (Yes (4,4--4,11), Const (Int32 1, (4,10--4,11)), ArbitraryAfterError ("whileBody1", (6,0--6,1)), (4,4--4,14)), diff --git a/tests/service/data/SyntaxTree/Expression/While 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/While 04.fs.bsl index 538e8312b75..57402d9e876 100644 --- a/tests/service/data/SyntaxTree/Expression/While 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/While 04.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, While (Yes (4,4--4,11), Const (Int32 1, (4,10--4,11)), ArbitraryAfterError ("whileBody1", (5,0--5,0)), (4,4--4,14)), diff --git a/tests/service/data/SyntaxTree/Expression/While 05.fs.bsl b/tests/service/data/SyntaxTree/Expression/While 05.fs.bsl index b6d3daf4f51..5cb6c7440a3 100644 --- a/tests/service/data/SyntaxTree/Expression/While 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/While 05.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, While (Yes (4,4--4,11), Const (Int32 1, (4,10--4,11)), Const (Int32 2, (5,8--5,9)), (4,4--5,9)), (3,4--3,5), diff --git a/tests/service/data/SyntaxTree/Expression/While 06.fs.bsl b/tests/service/data/SyntaxTree/Expression/While 06.fs.bsl index e106a73365d..a298c540af6 100644 --- a/tests/service/data/SyntaxTree/Expression/While 06.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/While 06.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, While (Yes (4,4--4,11), Const (Int32 1, (4,10--4,11)), Const (Int32 2, (5,4--5,5)), (4,4--5,5)), (3,4--3,5), diff --git a/tests/service/data/SyntaxTree/Extern/Extern 01.fs.bsl b/tests/service/data/SyntaxTree/Extern/Extern 01.fs.bsl index efb3580fda3..57c36d81411 100644 --- a/tests/service/data/SyntaxTree/Extern/Extern 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Extern/Extern 01.fs.bsl @@ -46,7 +46,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some inRef); SynArgInfo ([], false, Some outParentRef)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([GetParent], [], [None]), None, Some (SynValTyparDecls (None, false)), diff --git a/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs.bsl b/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs.bsl index 8b6a9a601fc..609eb52e896 100644 --- a/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs.bsl +++ b/tests/service/data/SyntaxTree/Extern/ExternKeywordIsPresentInTrivia.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([GetProcessHeap], [], [None]), None, Some (SynValTyparDecls (None, false)), diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl index 7376e64e8e4..ba8d22cf929 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some b)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([a], [], [None]), None, None, Pats @@ -39,7 +39,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some e)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([d], [], [None]), None, None, Pats [Named (SynIdent (e, None), false, None, (3,6--3,7))], diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl index 41ed25792f7..8580a3a53b1 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl @@ -18,7 +18,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (3,4--3,9)), None, + None, None), Const (Unit, (3,4--3,9)), None, Const (Unit, (3,7--3,9)), (3,4--3,9), NoneAtDo, { LeadingKeyword = Do (3,4--3,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl index 1c7e811ab69..290ccc9b59f 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl @@ -18,7 +18,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (3,11--3,16)), None, + None, None), Const (Unit, (3,11--3,16)), None, Const (Unit, (3,14--3,16)), (3,11--3,16), NoneAtDo, { LeadingKeyword = StaticDo ((3,4--3,10), (3,11--3,13)) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs.bsl index ae6df6a8091..f99aed7821e 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/ExternKeyword.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([Meh], [], [None]), None, Some (SynValTyparDecls (None, false)), diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl index c783b4b4354..ffb5c66346d 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some b)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([a], [], [None]), None, None, Pats [Named (SynIdent (b, None), false, None, (2,6--2,7))], diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl index a5ecb2a98b5..1ab02450392 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some b)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([a], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl index d9497db0bfe..0405d427e3e 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl @@ -25,7 +25,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Y], [(3,15--3,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl index bc62b3fc078..f0affbc321c 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl @@ -29,7 +29,7 @@ ImplFile MemberKind = Constructor }, SynValInfo ([[SynArgInfo ([], false, Some message)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([new], [], [None]), None, Some (SynValTyparDecls (None, false)), diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl index 896ea64e69b..2809127ab9f 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl @@ -25,7 +25,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([E], [], [None]), None, None, Pats [], None, (3,13--3,14)), diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl index 25ad616ec0f..fdd9e57fffb 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl @@ -19,7 +19,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), LongIdent (SynLongIdent ([PI], [], [None]), None, None, Pats [], None, (3,15--3,17)), None, diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl index a0851241351..e2d8c3a7e71 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl @@ -19,7 +19,7 @@ ImplFile SynValData (None, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), LongIdent (SynLongIdent ([forever], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl index 70b40e7ccd2..98fcbd375d4 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl @@ -24,7 +24,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Member }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), LongIdent (SynLongIdent ([Y], [], [None]), None, None, Pats [], None, (3,18--3,19)), diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs.bsl index b833f40ae10..a0590580fae 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/SyntheticKeyword.fs.bsl @@ -12,7 +12,7 @@ ImplFile (None, Normal, false, false, [], PreXmlDocEmpty, SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (a, None), false, None, (3,4--3,5)), None, Const (Unit, (3,8--3,10)), (3,4--3,5), Yes (3,8--3,10), { LeadingKeyword = Synthetic diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl index b2b3420c806..f0aa8fc7c21 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (x, None), false, None, (3,8--3,9)), None, App diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl index 7dbbc35edd7..01dfceffd2e 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (x, None), false, None, (3,12--3,13)), None, App diff --git a/tests/service/data/SyntaxTree/MatchClause/Missing expr 05.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/Missing expr 05.fs.bsl index c7c6fb79618..1ebbd482e81 100644 --- a/tests/service/data/SyntaxTree/MatchClause/Missing expr 05.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/Missing expr 05.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Match (Yes (4,4--4,17), Const (Unit, (4,10--4,12)), [SynMatchClause diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl index d1be520bff7..e5ca96208f6 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (content, None), false, None, (3,8--3,15)), None, diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl index dce57b959f6..73b389163c3 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (content, None), false, None, (3,8--3,15)), None, diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl index ea10cf70558..fed046dc51e 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((3,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (content, None), false, None, (3,8--3,15)), None, diff --git a/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl b/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl index f6876cb2bfb..3ebd73561a1 100644 --- a/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl +++ b/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl @@ -10,8 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (n, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (n, None), false, None, (2,4--2,5)), + None, Const (Measure (Decimal 1.0M, (2,8--2,12), @@ -26,8 +27,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (m, None), false, None, (3,4--3,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (m, None), false, None, (3,4--3,5)), + None, Const (Measure (Double 7.0, (3,8--3,13), diff --git a/tests/service/data/SyntaxTree/Member/Do 01.fs.bsl b/tests/service/data/SyntaxTree/Member/Do 01.fs.bsl index 5f63d7bdc38..62473ed47ff 100644 --- a/tests/service/data/SyntaxTree/Member/Do 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Do 01.fs.bsl @@ -17,7 +17,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (5,4--5,8)), None, + None, None), Const (Unit, (5,4--5,8)), None, Const (Int32 1, (5,7--5,8)), (5,4--5,8), NoneAtDo, { LeadingKeyword = Do (5,4--5,6) InlineKeyword = None @@ -28,7 +28,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,8)), None, + None, None), Const (Unit, (7,4--7,8)), None, Const (Int32 2, (7,7--7,8)), (7,4--7,8), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/Do 02.fs.bsl b/tests/service/data/SyntaxTree/Member/Do 02.fs.bsl index 1585d6135ee..04306e9e1cb 100644 --- a/tests/service/data/SyntaxTree/Member/Do 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Do 02.fs.bsl @@ -17,7 +17,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (5,11--5,15)), None, + None, None), Const (Unit, (5,11--5,15)), None, Const (Int32 1, (5,14--5,15)), (5,11--5,15), NoneAtDo, { LeadingKeyword = @@ -30,7 +30,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,8)), None, + None, None), Const (Unit, (7,4--7,8)), None, Const (Int32 2, (7,7--7,8)), (7,4--7,8), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/Do 03.fs.bsl b/tests/service/data/SyntaxTree/Member/Do 03.fs.bsl index f80e296c39b..284b3256cbf 100644 --- a/tests/service/data/SyntaxTree/Member/Do 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Do 03.fs.bsl @@ -17,7 +17,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (5,11--5,13)), None, + None, None), Const (Unit, (5,11--5,13)), None, ArbitraryAfterError ("hardwhiteDoBinding1", (5,13--5,13)), (5,11--5,13), NoneAtDo, @@ -31,7 +31,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,9)), None, + None, None), Const (Unit, (7,4--7,9)), None, Const (Unit, (7,7--7,9)), (7,4--7,9), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/Do 04.fs.bsl b/tests/service/data/SyntaxTree/Member/Do 04.fs.bsl index 9d6eb8b1895..6cd0a8d11b4 100644 --- a/tests/service/data/SyntaxTree/Member/Do 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Do 04.fs.bsl @@ -17,7 +17,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (5,4--5,6)), None, + None, None), Const (Unit, (5,4--5,6)), None, ArbitraryAfterError ("hardwhiteDoBinding1", (5,6--5,6)), (5,4--5,6), NoneAtDo, { LeadingKeyword = Do (5,4--5,6) @@ -30,7 +30,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,9)), None, + None, None), Const (Unit, (7,4--7,9)), None, Const (Unit, (7,7--7,9)), (7,4--7,9), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl b/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl index 3d88c0ff50d..5243483c2bc 100644 --- a/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/GetSetMember 01.fs.bsl @@ -33,7 +33,7 @@ ImplFile ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some key1); SynArgInfo ([], false, Some key2)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([f; X], [(4,12--4,13)], [None; None]), @@ -74,7 +74,7 @@ ImplFile [SynArgInfo ([], false, Some key1); SynArgInfo ([], false, Some key2); SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([f; X], [(4,12--4,13)], [None; None]), @@ -121,7 +121,7 @@ ImplFile ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some key1); SynArgInfo ([], false, Some key2)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([f; Y], [(5,21--5,22)], [None; None]), @@ -162,7 +162,7 @@ ImplFile [SynArgInfo ([], false, Some key1); SynArgInfo ([], false, Some key2); SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([f; Y], [(5,21--5,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl index 3768075ef94..e9ea732f51f 100644 --- a/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl @@ -28,7 +28,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x; Y], [(3,19--3,20)], [None; None]), @@ -58,7 +58,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some y)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x; Y], [(3,19--3,20)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Inherit 05.fs.bsl b/tests/service/data/SyntaxTree/Member/Inherit 05.fs.bsl index ddb47eb7ecc..37100c58ad0 100644 --- a/tests/service/data/SyntaxTree/Member/Inherit 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Inherit 05.fs.bsl @@ -27,7 +27,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P], [(6,15--6,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Member/Interface 01.fs.bsl b/tests/service/data/SyntaxTree/Member/Interface 01.fs.bsl index 332508f43f8..2fb3b66de14 100644 --- a/tests/service/data/SyntaxTree/Member/Interface 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Interface 01.fs.bsl @@ -30,7 +30,8 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([this; P1], [(5,21--5,22)], [None; None]), @@ -54,7 +55,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P2], [(7,15--7,16)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Interface 02.fs.bsl b/tests/service/data/SyntaxTree/Member/Interface 02.fs.bsl index 86a7a295554..05d431c3643 100644 --- a/tests/service/data/SyntaxTree/Member/Interface 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Interface 02.fs.bsl @@ -27,7 +27,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P], [(6,15--6,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Member/Interface 05.fs.bsl b/tests/service/data/SyntaxTree/Member/Interface 05.fs.bsl index 1394c744330..9220a59883b 100644 --- a/tests/service/data/SyntaxTree/Member/Interface 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Interface 05.fs.bsl @@ -23,9 +23,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((6,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (x, None), false, None, (6,4--6,5)), None, - Const (Int32 1, (6,8--6,9)), (6,4--6,5), Yes (6,0--6,9), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (x, None), false, None, (6,4--6,5)), + None, Const (Int32 1, (6,8--6,9)), (6,4--6,5), Yes (6,0--6,9), { LeadingKeyword = Let (6,0--6,3) InlineKeyword = None EqualsRange = Some (6,6--6,7) })], (6,0--6,9))], diff --git a/tests/service/data/SyntaxTree/Member/Interface 06.fs.bsl b/tests/service/data/SyntaxTree/Member/Interface 06.fs.bsl index 4c320397604..b5ff8001920 100644 --- a/tests/service/data/SyntaxTree/Member/Interface 06.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Interface 06.fs.bsl @@ -21,7 +21,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Wild (6,8--6,9), None, + None, None), Wild (6,8--6,9), None, Const (Unit, (6,12--6,14)), (6,8--6,9), Yes (6,4--6,14), { LeadingKeyword = Let (6,4--6,7) diff --git a/tests/service/data/SyntaxTree/Member/Interface 07.fs.bsl b/tests/service/data/SyntaxTree/Member/Interface 07.fs.bsl index 66c618d8e44..d8120f856fd 100644 --- a/tests/service/data/SyntaxTree/Member/Interface 07.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Interface 07.fs.bsl @@ -27,7 +27,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P], [(6,15--6,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Member/Let 01.fs.bsl b/tests/service/data/SyntaxTree/Member/Let 01.fs.bsl index c4071e92b4f..6609fd43ebb 100644 --- a/tests/service/data/SyntaxTree/Member/Let 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Let 01.fs.bsl @@ -18,7 +18,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Wild (5,8--5,9), None, + None, None), Wild (5,8--5,9), None, Const (Int32 1, (5,12--5,13)), (5,8--5,9), Yes (5,4--5,13), { LeadingKeyword = Let (5,4--5,7) @@ -31,7 +31,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,8)), None, + None, None), Const (Unit, (7,4--7,8)), None, Const (Int32 2, (7,7--7,8)), (7,4--7,8), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/Let 02.fs.bsl b/tests/service/data/SyntaxTree/Member/Let 02.fs.bsl index baa44f75d45..fb0db66de64 100644 --- a/tests/service/data/SyntaxTree/Member/Let 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Let 02.fs.bsl @@ -18,7 +18,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Wild (5,8--5,9), None, + None, None), Wild (5,8--5,9), None, ArbitraryAfterError ("localBinding1", (5,11--5,11)), (5,8--5,9), Yes (5,8--5,11), { LeadingKeyword = Let (5,4--5,7) @@ -31,7 +31,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,8)), None, + None, None), Const (Unit, (7,4--7,8)), None, Const (Int32 2, (7,7--7,8)), (7,4--7,8), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/Let 03.fs.bsl b/tests/service/data/SyntaxTree/Member/Let 03.fs.bsl index 01cb91bbe95..318037a56a4 100644 --- a/tests/service/data/SyntaxTree/Member/Let 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Let 03.fs.bsl @@ -18,7 +18,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Wild (5,8--5,9), None, + None, None), Wild (5,8--5,9), None, ArbitraryAfterError ("localBinding2", (5,9--5,9)), (5,8--5,9), Yes (5,4--5,9), { LeadingKeyword = Let (5,4--5,7) @@ -30,7 +30,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,8)), None, + None, None), Const (Unit, (7,4--7,8)), None, Const (Int32 2, (7,7--7,8)), (7,4--7,8), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/Let 04.fs.bsl b/tests/service/data/SyntaxTree/Member/Let 04.fs.bsl index 439bf0d6cb7..9414af5e257 100644 --- a/tests/service/data/SyntaxTree/Member/Let 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Let 04.fs.bsl @@ -18,7 +18,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,8)), None, + None, None), Const (Unit, (7,4--7,8)), None, Const (Int32 2, (7,7--7,8)), (7,4--7,8), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/Member - Attributes 01.fs.bsl b/tests/service/data/SyntaxTree/Member/Member - Attributes 01.fs.bsl index 168769ff761..46122505e0e 100644 --- a/tests/service/data/SyntaxTree/Member/Member - Attributes 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member - Attributes 01.fs.bsl @@ -32,7 +32,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -62,7 +62,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), FromParseError (Wild (5,16--5,16), (5,16--5,16)), None, ArbitraryAfterError @@ -91,7 +91,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Member - Param - Missing type 01.fs.bsl b/tests/service/data/SyntaxTree/Member/Member - Param - Missing type 01.fs.bsl index 432229da76f..8ce426a8b48 100644 --- a/tests/service/data/SyntaxTree/Member/Member - Param - Missing type 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member - Param - Missing type 01.fs.bsl @@ -26,7 +26,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some i)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; M], [(4,15--4,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Member/Member 01.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 01.fs.bsl index e5ce844b09e..279fd7c19c3 100644 --- a/tests/service/data/SyntaxTree/Member/Member 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 01.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -61,7 +61,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), FromParseError (Wild (5,16--5,16), (5,16--5,16)), None, ArbitraryAfterError @@ -90,7 +90,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Member 02.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 02.fs.bsl index dc24f73a058..f46f4b20f5e 100644 --- a/tests/service/data/SyntaxTree/Member/Member 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 02.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -61,7 +61,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (this, None), false, None, (5,17--5,21)), None, @@ -90,7 +90,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Member 03.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 03.fs.bsl index 8e25d86627c..b0e0106fbcf 100644 --- a/tests/service/data/SyntaxTree/Member/Member 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 03.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -61,7 +61,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (this, None), false, None, (5,17--5,21)), None, @@ -90,7 +90,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Member 04.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 04.fs.bsl index c4bfa610f42..f5fc86a8e89 100644 --- a/tests/service/data/SyntaxTree/Member/Member 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 04.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -61,7 +61,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P2], [(5,21--5,22)], [None; None]), @@ -91,7 +91,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Member 05.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 05.fs.bsl index 4e52c4c63b0..f661cad494f 100644 --- a/tests/service/data/SyntaxTree/Member/Member 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 05.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -61,7 +61,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P2], [(5,21--5,22)], [None; None]), @@ -92,7 +92,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Member 06.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 06.fs.bsl index d249dd2cc26..4281a25093b 100644 --- a/tests/service/data/SyntaxTree/Member/Member 06.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 06.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -61,7 +61,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P2], [(5,21--5,22)], [None; None]), @@ -91,7 +91,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Member 07.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 07.fs.bsl index 15e6eadb03f..74c3dde12a2 100644 --- a/tests/service/data/SyntaxTree/Member/Member 07.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 07.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -61,7 +61,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (this, None), false, None, (5,17--5,21)), None, Const (Int32 2, (5,25--5,26)), (5,4--5,24), @@ -89,7 +89,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Member 08.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 08.fs.bsl index 92a358d24d8..6dde644a1be 100644 --- a/tests/service/data/SyntaxTree/Member/Member 08.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 08.fs.bsl @@ -36,7 +36,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([Norm], [], [None]), None, None, Pats [], None, (4,42--4,46)), diff --git a/tests/service/data/SyntaxTree/Member/Member 09.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 09.fs.bsl index e101bf1b6da..def008304cd 100644 --- a/tests/service/data/SyntaxTree/Member/Member 09.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 09.fs.bsl @@ -30,7 +30,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), FromParseError (Wild (6,10--6,10), (6,10--6,10)), None, ArbitraryAfterError ("classDefnMember1", (6,10--6,10)), (6,4--6,10), NoneAtInvisible, diff --git a/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl index 7db3831e689..9605b1d963d 100644 --- a/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl @@ -25,7 +25,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x; Y], [(3,19--3,20)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl index 780fb23542d..75093da5d18 100644 --- a/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Read-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl @@ -35,7 +35,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; MyReadProperty], [(5,15--5,16)], diff --git a/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl index a4240a8a27e..111fa67994d 100644 --- a/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl @@ -36,7 +36,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; MyReadWriteProperty], [(4,15--4,16)], @@ -66,7 +66,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; MyReadWriteProperty], [(4,15--4,16)], diff --git a/tests/service/data/SyntaxTree/Member/Static 01.fs.bsl b/tests/service/data/SyntaxTree/Member/Static 01.fs.bsl index 7c47ccf95ec..922474498b9 100644 --- a/tests/service/data/SyntaxTree/Member/Static 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Static 01.fs.bsl @@ -23,7 +23,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Member }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), FromParseError (Wild (5,10--5,10), (5,10--5,10)), None, ArbitraryAfterError @@ -38,7 +38,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), Const (Unit, (7,4--7,9)), None, + None, None), Const (Unit, (7,4--7,9)), None, Const (Unit, (7,7--7,9)), (7,4--7,9), NoneAtDo, { LeadingKeyword = Do (7,4--7,6) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/Member/Static 02.fs.bsl b/tests/service/data/SyntaxTree/Member/Static 02.fs.bsl index ecf86c4e1f6..573810665d3 100644 --- a/tests/service/data/SyntaxTree/Member/Static 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Static 02.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -60,7 +60,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Member }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), FromParseError (Wild (5,16--5,16), (5,16--5,16)), None, ArbitraryAfterError @@ -89,7 +89,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/Static 03.fs.bsl b/tests/service/data/SyntaxTree/Member/Static 03.fs.bsl index 70d5eb3aba9..1c24fc16c45 100644 --- a/tests/service/data/SyntaxTree/Member/Static 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Static 03.fs.bsl @@ -31,7 +31,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P1], [(4,21--4,22)], [None; None]), @@ -60,7 +60,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Member }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), FromParseError (Wild (5,23--5,23), (5,23--5,23)), None, ArbitraryAfterError @@ -90,7 +90,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P3], [(6,21--6,22)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl index b09a60eed84..94215d632b7 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl @@ -28,7 +28,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([x; B], [(4,12--4,13)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl index 85520b1de87..758f4c71869 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl @@ -32,7 +32,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Z], [(3,15--3,16)], [None; None]), @@ -70,7 +70,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, None)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Z], [(3,15--3,16)], [None; None]), diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl index 7749a9c5784..aebdd9f9899 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl @@ -27,7 +27,8 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = PropertyGet }, SynValInfo - ([[]], SynArgInfo ([], false, None)), None), + ([[]], SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([ReadWrite2], [], [None]), Some get, None, @@ -71,7 +72,7 @@ ImplFile MemberKind = PropertySet }, SynValInfo ([[SynArgInfo ([], false, Some x)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([ReadWrite2], [], [None]), Some set, None, diff --git a/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl index 9dad153789c..6bd42447bb0 100644 --- a/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Write-onlyPropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl @@ -37,7 +37,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some value)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; MyWriteOnlyProperty], [(5,15--5,16)], diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl index cb73ae7b1dd..3bc8833d05f 100644 --- a/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl +++ b/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (meh, None), false, None, (2,4--2,7)), None, ObjExpr (LongIdent (SynLongIdent ([Interface], [], [None])), None, @@ -28,7 +29,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Foo], [(4,21--4,22)], [None; None]), @@ -55,7 +56,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Bar], [(5,19--5,20)], [None; None]), @@ -86,7 +87,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Blah], [(7,19--7,20)], [None; None]), diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl index ae8cfbaa083..febd91b1809 100644 --- a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl @@ -25,7 +25,7 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Member }, SynValInfo ([[]], SynArgInfo ([], false, None)), - None), + None, None), LongIdent (SynLongIdent ([this; B], [(3,22--3,23)], [None; None]), None, @@ -53,7 +53,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; A], [(4,15--4,16)], [None; None]), None, @@ -80,7 +80,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; C], [(5,17--5,18)], [None; None]), None, @@ -107,7 +107,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; D], [(6,16--6,17)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/ModuleMember/Let 01.fs.bsl b/tests/service/data/SyntaxTree/ModuleMember/Let 01.fs.bsl index 92101cded07..32218facf9d 100644 --- a/tests/service/data/SyntaxTree/ModuleMember/Let 01.fs.bsl +++ b/tests/service/data/SyntaxTree/ModuleMember/Let 01.fs.bsl @@ -9,11 +9,11 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, Const (Int32 1, (3,8--3,9)), (3,4--3,5), - Yes (3,0--3,9), { LeadingKeyword = Let (3,0--3,3) - InlineKeyword = None - EqualsRange = Some (3,6--3,7) })], + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, Const (Int32 1, (3,8--3,9)), + (3,4--3,5), Yes (3,0--3,9), { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })], (3,0--3,9)); Expr (Const (Int32 2, (5,0--5,1)), (5,0--5,1))], PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, (1,0--5,1), { LeadingKeyword = Module (1,0--1,6) })], (true, true), diff --git a/tests/service/data/SyntaxTree/ModuleMember/Let 02.fs.bsl b/tests/service/data/SyntaxTree/ModuleMember/Let 02.fs.bsl index a2548d21418..1e54c1b4465 100644 --- a/tests/service/data/SyntaxTree/ModuleMember/Let 02.fs.bsl +++ b/tests/service/data/SyntaxTree/ModuleMember/Let 02.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, ArbitraryAfterError ("localBinding1", (3,7--3,7)), (3,4--3,5), Yes (3,4--3,7), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/ModuleMember/Let 03.fs.bsl b/tests/service/data/SyntaxTree/ModuleMember/Let 03.fs.bsl index 374a64bda0e..1e03a9a4aee 100644 --- a/tests/service/data/SyntaxTree/ModuleMember/Let 03.fs.bsl +++ b/tests/service/data/SyntaxTree/ModuleMember/Let 03.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), None, ArbitraryAfterError ("localBinding2", (3,5--3,5)), (3,4--3,5), Yes (3,0--3,5), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/Module - Attribute 01.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/Module - Attribute 01.fs.bsl index 70ca7f64fdb..f355498ea38 100644 --- a/tests/service/data/SyntaxTree/ModuleOrNamespace/Module - Attribute 01.fs.bsl +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/Module - Attribute 01.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (s, None), false, None, (5,4--5,5)), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (s, None), false, None, (5,4--5,5)), Some (SynBindingReturnInfo (LongIdent (SynLongIdent ([string], [], [None])), diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs.bsl index 7e55d2eb57d..7d23c20dd87 100644 --- a/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/ModuleShouldContainModuleKeyword.fs.bsl @@ -37,7 +37,7 @@ ImplFile PreXmlDoc ((13,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (a, None), false, None, (13,8--13,9)), None, Const (Int32 42, (13,12--13,14)), (13,8--13,9), Yes (13,4--13,14), { LeadingKeyword = Let (13,4--13,7) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs.bsl index 09880fab704..8a8ce626058 100644 --- a/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/MultipleDeclaredNamespacesShouldHaveARangeThatStartsAtTheNamespaceKeyword.fs.bsl @@ -26,13 +26,13 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((9,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (x, None), false, None, (9,4--9,5)), None, - Const (Int32 42, (9,8--9,10)), (9,4--9,5), Yes (9,0--9,10), - { LeadingKeyword = Let (9,0--9,3) - InlineKeyword = None - EqualsRange = Some (9,6--9,7) })], (9,0--9,10))], - PreXmlDocEmpty, [], None, (7,0--9,10), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (x, None), false, None, (9,4--9,5)), + None, Const (Int32 42, (9,8--9,10)), (9,4--9,5), + Yes (9,0--9,10), { LeadingKeyword = Let (9,0--9,3) + InlineKeyword = None + EqualsRange = Some (9,6--9,7) })], + (9,0--9,10))], PreXmlDocEmpty, [], None, (7,0--9,10), { LeadingKeyword = Namespace (7,0--7,9) })], (true, true), { ConditionalDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs.bsl b/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs.bsl index fddeeca8a03..74a0eeb68b3 100644 --- a/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/ModuleOrNamespace/NamespaceShouldContainNamespaceKeyword.fs.bsl @@ -16,7 +16,7 @@ ImplFile PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (a, None), false, None, (4,8--4,9)), None, Const (Int32 42, (4,12--4,14)), (4,8--4,9), Yes (4,4--4,14), { LeadingKeyword = Let (4,4--4,7) diff --git a/tests/service/data/SyntaxTree/NestedModule/NestedModuleWithBeginEndAndDecls.fs.bsl b/tests/service/data/SyntaxTree/NestedModule/NestedModuleWithBeginEndAndDecls.fs.bsl index 24837f66d09..c71da6394f7 100644 --- a/tests/service/data/SyntaxTree/NestedModule/NestedModuleWithBeginEndAndDecls.fs.bsl +++ b/tests/service/data/SyntaxTree/NestedModule/NestedModuleWithBeginEndAndDecls.fs.bsl @@ -16,7 +16,7 @@ ImplFile PreXmlDoc ((5,8), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (a, None), false, None, (5,12--5,13)), None, Const (Int32 0, (5,16--5,17)), (5,12--5,13), Yes (5,8--5,17), { LeadingKeyword = Let (5,8--5,11) diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl index 9741e505625..68e8852f406 100644 --- a/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some a)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([|Odd|Even|], [], diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl index f78ea9234b9..af805042dc3 100644 --- a/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl @@ -29,7 +29,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([_; |A'|], [(3,20--3,21)], diff --git a/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl index 33ebeafb08c..66eff420883 100644 --- a/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl @@ -14,7 +14,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some a)]; [SynArgInfo ([], false, Some b)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([op_Addition], [], diff --git a/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl index 2679d87a302..ffc9b620fc5 100644 --- a/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl @@ -23,7 +23,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (allowInto, None), false, None, (3,16--3,25)), None, @@ -49,7 +49,7 @@ ImplFile MemberKind = PropertyGet }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([_; AllowIntoPattern], [(4,12--4,13)], @@ -78,7 +78,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some v)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([_; AllowIntoPattern], [(4,12--4,13)], diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl index 4e05d9cbd83..04bb473c54a 100644 --- a/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl @@ -26,7 +26,7 @@ ImplFile ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some a)]; [SynArgInfo ([], false, Some b)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([_; op_Addition], [(3,12--3,13)], diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl index 6b6c5b59524..c1771818f8b 100644 --- a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some a)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([|Int32Const|_|], [], diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl index 62cede07065..9974f43258d 100644 --- a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl @@ -11,7 +11,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (|Boolean|_|, diff --git a/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl index b83fc4ecf68..d82db251b45 100644 --- a/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl @@ -14,7 +14,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some x)]; [SynArgInfo ([], false, Some n)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([PowByte], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl b/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl index d159480e120..c88aa97f9e5 100644 --- a/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), ListCons (Const (Int32 1, (2,4--2,5)), Wild (2,9--2,10), (2,4--2,10), { ColonColonRange = (2,6--2,8) }), None, diff --git a/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl b/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl index f95f9ac0334..772e5763b7b 100644 --- a/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (ListCons (Named (SynIdent (head, None), false, None, (2,5--2,9)), diff --git a/tests/service/data/SyntaxTree/Pattern/Tuple - HeadPat 01.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Tuple - HeadPat 01.fs.bsl index a81579964af..49176464752 100644 --- a/tests/service/data/SyntaxTree/Pattern/Tuple - HeadPat 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Tuple - HeadPat 01.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Tuple (false, [Named (SynIdent (a, None), false, None, (3,4--3,5)); @@ -27,7 +28,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (Tuple (false, diff --git a/tests/service/data/SyntaxTree/Pattern/Tuple - HeadPat 02.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Tuple - HeadPat 02.fs.bsl index 61bc7ef99b7..5787f8fba0e 100644 --- a/tests/service/data/SyntaxTree/Pattern/Tuple - HeadPat 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Tuple - HeadPat 02.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (Tuple (false, diff --git a/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 01.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 01.fs.bsl index 022b45253b1..53e89c7a6a5 100644 --- a/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 01.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Tuple (false, [Named (SynIdent (a, None), false, None, (3,4--3,5)); diff --git a/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 02.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 02.fs.bsl index f8771e93093..0cc46e4c22a 100644 --- a/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 02.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Tuple (false, [Named (SynIdent (a, None), false, None, (3,4--3,5)); diff --git a/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 03.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 03.fs.bsl index ada6c9b8de0..491ae0e06ba 100644 --- a/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 03.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (Tuple (true, @@ -30,7 +31,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((4,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (Tuple (true, diff --git a/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 04.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 04.fs.bsl index 98ed45e9cfd..3380d6299ac 100644 --- a/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Tuple - Recover 04.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Tuple (false, [Wild (3,4--3,4); @@ -27,7 +28,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Tuple (false, [Paren @@ -44,7 +46,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((7,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Tuple (false, [Wild (7,4--7,4); Wild (7,5--7,5)], [(7,4--7,5)], (7,4--7,7)), None, Const (Unit, (7,8--7,10)), (7,4--7,7), diff --git a/tests/service/data/SyntaxTree/Pattern/Tuple - Struct 01.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Tuple - Struct 01.fs.bsl index 0b605142320..760f891de02 100644 --- a/tests/service/data/SyntaxTree/Pattern/Tuple - Struct 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Tuple - Struct 01.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (Tuple (true, diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 01.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 01.fs.bsl index da447d5434b..68dfb1fb5b7 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 01.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (i, None), false, None, (3,4--3,5)), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (i, None), false, None, (3,4--3,5)), Some (SynBindingReturnInfo (FromParseError (3,6--3,6), (3,6--3,6), [], diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 02.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 02.fs.bsl index b5b4b6e28e2..c263d499c74 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 02.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (i, None), false, None, (3,4--3,5)), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (i, None), false, None, (3,4--3,5)), Some (SynBindingReturnInfo (FromParseError (3,6--3,6), (3,6--3,6), [], diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 03.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 03.fs.bsl index 609bc09a6fe..54a87b2f970 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 03.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (As (Paren diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 04.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 04.fs.bsl index 6ac283f7a93..00f74ec1bd4 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 04.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Paren (As (Typed diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 05.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 05.fs.bsl index 89f2ca602eb..761c74868f1 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 05.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 05.fs.bsl @@ -15,7 +15,7 @@ ImplFile SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (i, None), false, None, (4,8--4,9)), Some (SynBindingReturnInfo diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 06.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 06.fs.bsl index 55a07b60288..b5f3cef6204 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 06.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 06.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (i, None), false, None, (4,8--4,9)), Some (SynBindingReturnInfo diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 09.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 09.fs.bsl index 89a4af5ce5c..f86915928d7 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 09.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 09.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Paren (Typed (Named diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 10.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 10.fs.bsl index f3fa83db96a..cc64cf0ff2c 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 10.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 10.fs.bsl @@ -13,7 +13,7 @@ ImplFile PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Paren (Typed (Named diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 11.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 11.fs.bsl index e89431a48e0..c17b183fe8b 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 11.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 11.fs.bsl @@ -15,7 +15,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some i)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([f], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 12.fs.bsl b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 12.fs.bsl index 97ad7191e25..b21fcb2524a 100644 --- a/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 12.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/Typed - Missing type 12.fs.bsl @@ -16,7 +16,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some i); SynArgInfo ([], false, Some j)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([f], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/SimplePats/SimplePats - Recover 01.fs.bsl b/tests/service/data/SyntaxTree/SimplePats/SimplePats - Recover 01.fs.bsl index 9f74ed36236..a8830c9d599 100644 --- a/tests/service/data/SyntaxTree/SimplePats/SimplePats - Recover 01.fs.bsl +++ b/tests/service/data/SyntaxTree/SimplePats/SimplePats - Recover 01.fs.bsl @@ -14,7 +14,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some i); SynArgInfo ([], false, None)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (x, None), false, None, (3,4--3,5)), None, Lambda (false, false, @@ -52,7 +52,7 @@ ImplFile ([[SynArgInfo ([], false, Some a); SynArgInfo ([], false, Some b); SynArgInfo ([], false, None)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (y, None), false, None, (4,4--4,5)), None, Lambda (false, false, @@ -102,7 +102,7 @@ ImplFile Range = (5,28--5,31) }] Range = (5,26--5,33) }], false, Some v); SynArgInfo ([], false, None)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (z, None), false, None, (5,4--5,5)), None, Lambda (false, false, @@ -179,7 +179,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None); SynArgInfo ([], false, None)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (ignore, None), false, None, (6,4--6,10)), None, Lambda diff --git a/tests/service/data/SyntaxTree/SimplePats/SimplePats 01.fs.bsl b/tests/service/data/SyntaxTree/SimplePats/SimplePats 01.fs.bsl index 512fa280b98..66b71da8a34 100644 --- a/tests/service/data/SyntaxTree/SimplePats/SimplePats 01.fs.bsl +++ b/tests/service/data/SyntaxTree/SimplePats/SimplePats 01.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some i)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (x, None), false, None, (3,4--3,5)), None, Lambda (false, false, @@ -44,7 +44,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some a); SynArgInfo ([], false, Some b)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (y, None), false, None, (4,4--4,5)), None, Lambda (false, false, @@ -91,7 +91,7 @@ ImplFile AppliesToGetterAndSetter = false Range = (5,28--5,31) }] Range = (5,26--5,33) }], false, Some v)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (z, None), false, None, (5,4--5,5)), None, Lambda (false, false, @@ -165,7 +165,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, None)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Named (SynIdent (ignore, None), false, None, (6,4--6,10)), None, Lambda @@ -185,7 +185,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((7,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (empty, None), false, None, (7,4--7,9)), None, Lambda (false, false, SimplePats ([], [], (7,16--7,18)), diff --git a/tests/service/data/SyntaxTree/String/InterpolatedStringOffsideInModule.fs.bsl b/tests/service/data/SyntaxTree/String/InterpolatedStringOffsideInModule.fs.bsl index 7e6563219a6..61e9f04fd1f 100644 --- a/tests/service/data/SyntaxTree/String/InterpolatedStringOffsideInModule.fs.bsl +++ b/tests/service/data/SyntaxTree/String/InterpolatedStringOffsideInModule.fs.bsl @@ -16,7 +16,7 @@ ImplFile PreXmlDoc ((2,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (b, None), false, None, (2,8--2,9)), None, InterpolatedString ([String (" diff --git a/tests/service/data/SyntaxTree/String/InterpolatedStringOffsideInNestedLet.fs.bsl b/tests/service/data/SyntaxTree/String/InterpolatedStringOffsideInNestedLet.fs.bsl index d91bffd331d..20150b3d0c0 100644 --- a/tests/service/data/SyntaxTree/String/InterpolatedStringOffsideInNestedLet.fs.bsl +++ b/tests/service/data/SyntaxTree/String/InterpolatedStringOffsideInNestedLet.fs.bsl @@ -10,8 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (a, None), false, None, (1,4--1,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (a, None), false, None, (1,4--1,5)), + None, LetOrUse (false, false, [SynBinding @@ -19,7 +20,7 @@ ImplFile PreXmlDoc ((2,4), FSharp.Compiler.Xml.XmlDocCollector), SynValData (None, SynValInfo ([], SynArgInfo ([], false, None)), - None), + None, None), Named (SynIdent (b, None), false, None, (2,8--2,9)), None, InterpolatedString diff --git a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl index be0c3ae5c30..66827cfe575 100644 --- a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (bytes, None), false, None, (2,4--2,9)), None, Const (Bytes ([|121uy; 111uy|], Regular, (2,12--2,17)), diff --git a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl index 178873fb61e..6df6f970119 100644 --- a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl @@ -10,7 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (bytes, None), false, None, (2,4--2,9)), None, Const (Bytes ([|121uy; 111uy|], Verbatim, (2,12--2,18)), diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl index aaba1c57606..ffa12576b1c 100644 --- a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl @@ -10,9 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (s, None), false, None, (2,4--2,5)), None, - Const (String ("yo", Regular, (2,8--2,12)), (2,8--2,12)), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (s, None), false, None, (2,4--2,5)), + None, Const (String ("yo", Regular, (2,8--2,12)), (2,8--2,12)), (2,4--2,5), Yes (2,0--2,12), { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl index 2ad18580156..e6ecdaa5456 100644 --- a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl @@ -10,8 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (s, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (s, None), false, None, (2,4--2,5)), + None, Const (String ("yo", TripleQuote, (2,8--2,16)), (2,8--2,16)), (2,4--2,5), Yes (2,0--2,16), { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl index 2bbac831810..6586515cb4b 100644 --- a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl @@ -10,8 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (s, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (s, None), false, None, (2,4--2,5)), + None, Const (String ("yo", Verbatim, (2,8--2,13)), (2,8--2,13)), (2,4--2,5), Yes (2,0--2,13), { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl index 601a0e5e9da..3e20d1d43ff 100644 --- a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl @@ -11,8 +11,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (s, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (s, None), false, None, (2,4--2,5)), + None, InterpolatedString ([String ("yo ", (2,8--2,14)); FillExpr (Const (Int32 42, (2,14--2,16)), None); diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl index 8eafe3c8745..34a85e88407 100644 --- a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl @@ -13,8 +13,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (s, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (s, None), false, None, (2,4--2,5)), + None, InterpolatedString ([String ("yo ", (2,8--2,16)); FillExpr (Const (Int32 42, (2,16--2,18)), None); diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl index 486b527607a..212c5a6e384 100644 --- a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl @@ -13,8 +13,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (s, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (s, None), false, None, (2,4--2,5)), + None, InterpolatedString ([String ("Migrate notes of file "", (2,8--2,36)); FillExpr (Ident oldId, None); diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars.fs.bsl index 8fbc4d9d76c..8df990ce9c0 100644 --- a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithTripleQuoteMultipleDollars.fs.bsl @@ -13,8 +13,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (s, None), false, None, (2,4--2,5)), None, + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (s, None), false, None, (2,4--2,5)), + None, InterpolatedString ([String ("1 + ", (2,8--2,21)); FillExpr (Const (Int32 41, (2,21--2,23)), None); diff --git a/tests/service/data/SyntaxTree/SynType/Fun 06.fs.bsl b/tests/service/data/SyntaxTree/SynType/Fun 06.fs.bsl index 79fba7f21d4..b81dac6c95c 100644 --- a/tests/service/data/SyntaxTree/SynType/Fun 06.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Fun 06.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Fun 07.fs.bsl b/tests/service/data/SyntaxTree/SynType/Fun 07.fs.bsl index fc09b3f737f..13ea6abd7b4 100644 --- a/tests/service/data/SyntaxTree/SynType/Fun 07.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Fun 07.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Fun 08.fs.bsl b/tests/service/data/SyntaxTree/SynType/Fun 08.fs.bsl index 914be23e3c5..4d18b66affd 100644 --- a/tests/service/data/SyntaxTree/SynType/Fun 08.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Fun 08.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Fun 09.fs.bsl b/tests/service/data/SyntaxTree/SynType/Fun 09.fs.bsl index 3a7ecdba3cf..e0a19b95ecf 100644 --- a/tests/service/data/SyntaxTree/SynType/Fun 09.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Fun 09.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Fun 10.fs.bsl b/tests/service/data/SyntaxTree/SynType/Fun 10.fs.bsl index 061982252ad..5c7ab73a05d 100644 --- a/tests/service/data/SyntaxTree/SynType/Fun 10.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Fun 10.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl index 7782c254288..f617178cedc 100644 --- a/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some x)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([op_BangBang], [], diff --git a/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl index f5c0013ec18..b98adfd3425 100644 --- a/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl @@ -26,7 +26,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, Some a); SynArgInfo ([], false, Some f)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([replace], [], [None]), None, Some diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl index 370e07d5746..b17ef02e715 100644 --- a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some x)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([op_BangBang], [], diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl index 8cf244eae01..5ae1b83c7dc 100644 --- a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl @@ -13,7 +13,8 @@ ImplFile (None, Normal, true, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([f_StaticMethod], [], [None]), None, Some diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl index 0ee54488a53..76496719abe 100644 --- a/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl @@ -13,7 +13,7 @@ ImplFile (None, SynValInfo ([[SynArgInfo ([], false, Some x)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([f], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/SynType/Tuple 09.fs.bsl b/tests/service/data/SyntaxTree/SynType/Tuple 09.fs.bsl index c0d052bcc9f..81cef2eb1a5 100644 --- a/tests/service/data/SyntaxTree/SynType/Tuple 09.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Tuple 09.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Tuple 10.fs.bsl b/tests/service/data/SyntaxTree/SynType/Tuple 10.fs.bsl index dc553f72214..7c4d54985d6 100644 --- a/tests/service/data/SyntaxTree/SynType/Tuple 10.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Tuple 10.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Tuple 11.fs.bsl b/tests/service/data/SyntaxTree/SynType/Tuple 11.fs.bsl index 31ca0e7d595..9533d03d933 100644 --- a/tests/service/data/SyntaxTree/SynType/Tuple 11.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Tuple 11.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Tuple 12.fs.bsl b/tests/service/data/SyntaxTree/SynType/Tuple 12.fs.bsl index 48dd1654f53..53d7860de8a 100644 --- a/tests/service/data/SyntaxTree/SynType/Tuple 12.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Tuple 12.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Tuple 13.fs.bsl b/tests/service/data/SyntaxTree/SynType/Tuple 13.fs.bsl index 1c4baa1ad5b..be79c42ae15 100644 --- a/tests/service/data/SyntaxTree/SynType/Tuple 13.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Tuple 13.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/SynType/Tuple 14.fs.bsl b/tests/service/data/SyntaxTree/SynType/Tuple 14.fs.bsl index 8f40539042b..3dd20696d2f 100644 --- a/tests/service/data/SyntaxTree/SynType/Tuple 14.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/Tuple 14.fs.bsl @@ -9,8 +9,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (3,4--3,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (3,4--3,5), Some (SynBindingReturnInfo (Fun diff --git a/tests/service/data/SyntaxTree/Type/Record 01.fs.bsl b/tests/service/data/SyntaxTree/Type/Record 01.fs.bsl index 91d5f58ca56..9d22a74e529 100644 --- a/tests/service/data/SyntaxTree/Type/Record 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/Record 01.fs.bsl @@ -31,7 +31,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((9,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (meh, None), false, None, (9,4--9,7)), None, Const (Unit, (9,10--9,12)), (9,4--9,7), Yes (9,0--9,12), { LeadingKeyword = Let (9,0--9,3) diff --git a/tests/service/data/SyntaxTree/Type/Record 02.fs.bsl b/tests/service/data/SyntaxTree/Type/Record 02.fs.bsl index 3ebdfe18ae4..9d61bce8323 100644 --- a/tests/service/data/SyntaxTree/Type/Record 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/Record 02.fs.bsl @@ -32,7 +32,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((9,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (meh, None), false, None, (9,4--9,7)), None, Const (Unit, (9,10--9,12)), (9,4--9,7), Yes (9,0--9,12), { LeadingKeyword = Let (9,0--9,3) diff --git a/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl index ed20d359009..5cd03c597aa 100644 --- a/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl @@ -38,7 +38,8 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([Meh], [], [None]), None, None, diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl index 285ecf0975e..f273c8c5690 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl @@ -27,7 +27,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([_; Zero], [(3,12--3,13)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl index 41f5400ce1a..424aac50850 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl @@ -36,7 +36,7 @@ ImplFile SynValInfo ([[SynArgInfo ([], false, None)]; [SynArgInfo ([], false, Some v)]], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; Meh], [(5,19--5,20)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl index e0f51c6ee46..07ff7d74576 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (2,4--2,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (2,4--2,5), Some (SynBindingReturnInfo (Tuple diff --git a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl index c69d94938c8..6d6179cbd3e 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl @@ -10,8 +10,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((2,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Wild (2,4--2,5), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Wild (2,4--2,5), Some (SynBindingReturnInfo (Tuple diff --git a/tests/service/data/SyntaxTree/Type/Type 07.fs.bsl b/tests/service/data/SyntaxTree/Type/Type 07.fs.bsl index 0eb812102a6..59012668b75 100644 --- a/tests/service/data/SyntaxTree/Type/Type 07.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/Type 07.fs.bsl @@ -24,7 +24,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P], [(4,15--4,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Type/Type 10.fs.bsl b/tests/service/data/SyntaxTree/Type/Type 10.fs.bsl index 979759d4dbf..920010d29d4 100644 --- a/tests/service/data/SyntaxTree/Type/Type 10.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/Type 10.fs.bsl @@ -29,7 +29,8 @@ ImplFile GetterOrSetterIsCompilerGenerated = false MemberKind = Member }, SynValInfo - ([[]], SynArgInfo ([], false, None)), None), + ([[]], SynArgInfo ([], false, None)), None, + None), LongIdent (SynLongIdent ([M], [], [None]), None, None, Pats diff --git a/tests/service/data/SyntaxTree/Type/With 01.fs.bsl b/tests/service/data/SyntaxTree/Type/With 01.fs.bsl index 7fd1e7479f6..160d04dec6a 100644 --- a/tests/service/data/SyntaxTree/Type/With 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/With 01.fs.bsl @@ -23,7 +23,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P], [(4,15--4,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/Type/With 04.fs.bsl b/tests/service/data/SyntaxTree/Type/With 04.fs.bsl index 99ddf674425..b2715532783 100644 --- a/tests/service/data/SyntaxTree/Type/With 04.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/With 04.fs.bsl @@ -30,7 +30,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P], [(6,15--6,16)], [None; None]), None, diff --git a/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs.bsl index 61ef3fc7998..bacab6c3a26 100644 --- a/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs.bsl @@ -10,9 +10,9 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), - Named (SynIdent (a, None), false, None, (3,4--3,5)), None, - Const (Unit, (3,8--3,10)), (3,4--3,5), Yes (3,0--3,10), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (a, None), false, None, (3,4--3,5)), + None, Const (Unit, (3,8--3,10)), (3,4--3,5), Yes (3,0--3,10), { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,6--3,7) })], (3,0--3,10)); @@ -71,7 +71,8 @@ ImplFile (None, Normal, false, false, [], PreXmlDoc ((11,0), FSharp.Compiler.Xml.XmlDocCollector), SynValData - (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + (None, SynValInfo ([], SynArgInfo ([], false, None)), None, + None), Named (SynIdent (b, None), false, None, (11,4--11,5)), None, Const (Unit, (11,8--11,10)), (11,4--11,5), Yes (11,0--11,10), { LeadingKeyword = Let (11,0--11,3) From 80f3b65d2a3b691bee35c057b995e164105a9e98 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 14:31:56 +0200 Subject: [PATCH 10/19] Use correct range of property if available. --- src/Compiler/Checking/CheckDeclarations.fs | 10 ++++-- src/Compiler/Checking/CheckExpressions.fs | 10 +++--- src/Compiler/Checking/NameResolution.fs | 30 ++++++++--------- src/Compiler/Checking/NameResolution.fsi | 2 +- src/Compiler/Service/FSharpCheckerResults.fs | 4 +-- src/Compiler/Service/ItemKey.fs | 2 +- .../Service/SemanticClassification.fs | 2 +- .../Service/ServiceDeclarationLists.fs | 12 +++---- src/Compiler/Symbols/SymbolHelpers.fs | 27 ++++++++------- src/Compiler/Symbols/Symbols.fs | 10 +++--- tests/service/Symbols.fs | 33 ++++++++++++++++--- 11 files changed, 88 insertions(+), 54 deletions(-) diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index ca02eb87d63..660dd014c55 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -961,7 +961,7 @@ module MutRecBindingChecking = for b1, b2 in List.pairwise defnAs do match b1, b2 with | TyconBindingPhase2A.Phase2AMember { - SyntacticBinding = NormalizedBinding(valSynData = SynValData(transformedFromProperty = Some getPropertyIdent)) + SyntacticBinding = NormalizedBinding(valSynData = SynValData(transformedFromProperty = Some getPropertyIdent; memberFlags = Some mf)) RecBindingInfo = RecursiveBindingInfo(vspec = vGet) }, TyconBindingPhase2A.Phase2AMember { @@ -972,7 +972,13 @@ module MutRecBindingChecking = | ParentNone -> () | Parent parentRef -> let apparentEnclosingType = generalizedTyconRef g parentRef - let item = Item.Property(getPropertyIdent.idText, [ PropInfo.FSProp(g, apparentEnclosingType, Some (mkLocalValRef vGet), Some (mkLocalValRef vSet)) ]) + let vGet, vSet = if mf.MemberKind = SynMemberKind.PropertyGet then vGet, vSet else vSet, vGet + let item = + Item.Property( + getPropertyIdent.idText, + [ PropInfo.FSProp(g, apparentEnclosingType, Some (mkLocalValRef vGet), Some (mkLocalValRef vSet)) ], + Some getPropertyIdent.idRange + ) CallNameResolutionSink cenv.tcSink (getPropertyIdent.idRange, envForTycon.NameEnv, item, emptyTyparInst, ItemOccurence.Binding, envForTycon.eAccessRights) | _ -> () diff --git a/src/Compiler/Checking/CheckExpressions.fs b/src/Compiler/Checking/CheckExpressions.fs index f096bd0d385..193b4708da5 100644 --- a/src/Compiler/Checking/CheckExpressions.fs +++ b/src/Compiler/Checking/CheckExpressions.fs @@ -8273,7 +8273,7 @@ and TcItemThen (cenv: cenv) (overallTy: OverallTy) env tpenv (tinstEnclosing, it | Item.Value vref -> TcValueItemThen cenv overallTy env vref tpenv mItem afterResolution delayed - | Item.Property (nm, pinfos) -> + | Item.Property (nm, pinfos, _) -> TcPropertyItemThen cenv overallTy env nm pinfos tpenv mItem afterResolution staticTyOpt delayed | Item.ILField finfo -> @@ -9088,7 +9088,7 @@ and TcLookupItemThen cenv overallTy env tpenv mObjExpr objExpr objExprTy delayed TcMethodApplicationThen cenv env overallTy None tpenv tyArgsOpt objArgs mExprAndItem mItem methodName ad mutates false meths afterResolution NormalValUse args atomicFlag None delayed - | Item.Property (nm, pinfos) -> + | Item.Property (nm, pinfos, _) -> // Instance property if isNil pinfos then error (InternalError ("Unexpected error: empty property list", mItem)) // if there are both intrinsics and extensions in pinfos, intrinsics will be listed first. @@ -9761,7 +9761,7 @@ and TcMethodApplication let overriding = match unrefinedItem with | Item.MethodGroup(_, overridenMeths, _) -> overridenMeths |> List.map (fun minfo -> minfo, None) - | Item.Property(_, pinfos) -> + | Item.Property(info = pinfos) -> if result.Method.LogicalName.StartsWithOrdinal("set_") then SettersOfPropInfos pinfos else @@ -9949,7 +9949,7 @@ and TcSetterArgExpr (cenv: cenv) env denv objExpr ad assignedSetter calledFromCo let argExprPrebinder, argExpr = MethodCalls.AdjustCallerArgExpr tcVal g cenv.amap cenv.infoReader ad false calledArgTy ReflectedArgInfo.None callerArgTy m argExpr let mut = (if isStructTy g (tyOfExpr g objExpr) then DefinitelyMutates else PossiblyMutates) let action = BuildPossiblyConditionalMethodCall cenv env mut m true pminfo NormalValUse pminst [objExpr] [argExpr] propStaticTyOpt |> fst - argExprPrebinder, action, Item.Property (pinfo.PropertyName, [pinfo]) + argExprPrebinder, action, Item.Property (pinfo.PropertyName, [pinfo], None) | AssignedILFieldSetter finfo -> // Get or set instance IL field @@ -10760,7 +10760,7 @@ and TcAttributeEx canFail (cenv: cenv) (env: TcEnv) attrTgt attrEx (synAttr: Syn let setterItem, _ = ResolveLongIdentInType cenv.tcSink cenv.nameResolver env.NameEnv lookupKind m ad id IgnoreOverrides TypeNameResolutionInfo.Default ty let nm, isProp, argTy = match setterItem with - | Item.Property (_, [pinfo]) -> + | Item.Property (info = [pinfo]) -> if not pinfo.HasSetter then errorR(Error(FSComp.SR.tcPropertyCannotBeSet0(), m)) id.idText, true, pinfo.GetPropertyType(cenv.amap, m) diff --git a/src/Compiler/Checking/NameResolution.fs b/src/Compiler/Checking/NameResolution.fs index b01e074229c..90340f07b33 100644 --- a/src/Compiler/Checking/NameResolution.fs +++ b/src/Compiler/Checking/NameResolution.fs @@ -193,7 +193,7 @@ type Item = | Event of EventInfo /// Represents the resolution of a name to a property - | Property of string * PropInfo list + | Property of name: string * info: PropInfo list * sourceIdentifierRange: range option /// Represents the resolution of a name to a group of methods. | MethodGroup of displayName: string * methods: MethInfo list * uninstantiatedMethodOpt: MethInfo option @@ -267,8 +267,8 @@ type Item = | Item.NewDef id -> id.idText | Item.ILField finfo -> finfo.DisplayNameCore | Item.Event einfo -> einfo.DisplayNameCore - | Item.Property(_, pinfo :: _) -> pinfo.DisplayNameCore - | Item.Property(nm, _) -> nm |> ConvertValLogicalNameToDisplayNameCore + | Item.Property(info = pinfo :: _) -> pinfo.DisplayNameCore + | Item.Property(name = nm) -> nm |> ConvertValLogicalNameToDisplayNameCore | Item.MethodGroup(_, FSMeth(_, _, v, _) :: _, _) -> v.DisplayNameCore | Item.MethodGroup(nm, _, _) -> nm |> ConvertValLogicalNameToDisplayNameCore | Item.CtorGroup(nm, _) -> nm |> DemangleGenericTypeName @@ -303,7 +303,7 @@ type Item = | Item.UnionCaseField (uci, fieldIndex) -> uci.UnionCase.GetFieldByIndex(fieldIndex).DisplayName | Item.AnonRecdField (anonInfo, _tys, fieldIndex, _m) -> anonInfo.DisplayNameByIdx fieldIndex | Item.ActivePatternCase apref -> apref.DisplayName - | Item.Property(_, pinfo :: _) -> pinfo.DisplayName + | Item.Property(info = pinfo :: _) -> pinfo.DisplayName | Item.Event einfo -> einfo.DisplayName | Item.MethodGroup(_, minfo :: _, _) -> minfo.DisplayName | Item.DelegateCtor (AbbrevOrAppTy tcref) -> tcref.DisplayName @@ -1183,7 +1183,7 @@ let ChoosePropInfosForNameEnv g ty (pinfos: PropInfo list) = pinfo.IsStatic && typeEquiv g pinfo.ApparentEnclosingType ty) |> List.groupBy (fun pinfo -> pinfo.PropertyName) |> List.filter (fun (_, propGroup) -> not propGroup.IsEmpty) - |> List.map (fun (propName, propGroup) -> KeyValuePair(propName, Item.Property(propName, propGroup))) + |> List.map (fun (propName, propGroup) -> KeyValuePair(propName, Item.Property(propName, propGroup, None))) let ChooseFSharpFieldInfosForNameEnv g ty (rfinfos: RecdFieldInfo list) = rfinfos @@ -1786,13 +1786,13 @@ let rec (|ILFieldUse|_|) (item: Item) = let rec (|PropertyUse|_|) (item: Item) = match item with - | Item.Property(_, pinfo :: _) -> Some pinfo + | Item.Property(info = pinfo :: _) -> Some pinfo | Item.SetterArg(_, PropertyUse pinfo) -> Some pinfo | _ -> None let rec (|FSharpPropertyUse|_|) (item: Item) = match item with - | Item.Property(_, [ValRefOfProp vref]) -> Some vref + | Item.Property(info = [ValRefOfProp vref]) -> Some vref | Item.SetterArg(_, FSharpPropertyUse propDef) -> Some propDef | _ -> None @@ -2231,7 +2231,7 @@ type ResultTyparChecker = ResultTyparChecker of (unit -> bool) let CheckAllTyparsInferrable amap m item = match item with - | Item.Property(_, pinfos) -> + | Item.Property(info = pinfos) -> pinfos |> List.forall (fun pinfo -> pinfo.IsExtensionMember || let freeInDeclaringType = freeInType CollectTyparsNoCaching pinfo.ApparentEnclosingType @@ -2575,10 +2575,10 @@ let DecodeFSharpEvent (pinfos: PropInfo list) ad g (ncenv: NameResolver) m = Some(Item.Event(FSEvent(g, pinfo, addValRef, removeValRef))) | _ -> // FOUND PROPERTY-AS-EVENT BUT DIDN'T FIND CORRESPONDING ADD/REMOVE METHODS - Some(Item.Property (nm, pinfos)) + Some(Item.Property (nm, pinfos, None)) | pinfo :: _ -> let nm = DisplayNameCoreMangled pinfo - Some(Item.Property (nm, pinfos)) + Some(Item.Property (nm, pinfos, None)) | _ -> None @@ -2669,7 +2669,7 @@ let rec ResolveLongIdentInTypePrim (ncenv: NameResolver) nenv lookupKind (resInf let pinfos = ExtensionPropInfosOfTypeInScope ResultCollectionSettings.AllResults ncenv.InfoReader nenv optFilter isInstanceFilter ad m ty - if not (isNil pinfos) && isLookUpExpr then OneResult(success (resInfo, Item.Property (nm, pinfos), rest)) else + if not (isNil pinfos) && isLookUpExpr then OneResult(success (resInfo, Item.Property (nm, pinfos, None), rest)) else let minfos = ExtensionMethInfosOfTypeInScope ResultCollectionSettings.AllResults ncenv.InfoReader nenv optFilter isInstanceFilter m ty @@ -3963,7 +3963,7 @@ let NeedsWorkAfterResolution namedItem = match namedItem with | Item.MethodGroup(_, minfos, _) | Item.CtorGroup(_, minfos) -> minfos.Length > 1 || minfos |> List.exists (fun minfo -> not (isNil minfo.FormalMethodInst)) - | Item.Property(_, pinfos) -> pinfos.Length > 1 + | Item.Property(info = pinfos) -> pinfos.Length > 1 | Item.ImplicitOp(_, { contents = Some(TraitConstraintSln.FSMethSln(vref=vref)) }) | Item.Value vref | Item.CustomBuilder (_, vref) -> not (List.isEmpty vref.Typars) | Item.CustomOperation (_, _, Some minfo) -> not (isNil minfo.FormalMethodInst) @@ -4020,7 +4020,7 @@ let ResolveLongIdentAsExprAndComputeRange (sink: TcResultsSink) (ncenv: NameReso match pinfoOpt with | None when minfo.IsConstructor -> Item.CtorGroup(minfo.LogicalName, [minfo]) | None -> Item.MethodGroup(minfo.LogicalName, [minfo], None) - | Some pinfo -> Item.Property(pinfo.PropertyName, [pinfo]) + | Some pinfo -> Item.Property(pinfo.PropertyName, [pinfo], None) callSink (refinedItem, tpinst) @@ -4039,7 +4039,7 @@ let ResolveLongIdentAsExprAndComputeRange (sink: TcResultsSink) (ncenv: NameReso let (|NonOverridable|_|) namedItem = match namedItem with | Item.MethodGroup(_, minfos, _) when minfos |> List.exists(fun minfo -> minfo.IsVirtual || minfo.IsAbstract) -> None - | Item.Property(_, pinfos) when pinfos |> List.exists(fun pinfo -> pinfo.IsVirtualProperty) -> None + | Item.Property(info = pinfos) when pinfos |> List.exists(fun pinfo -> pinfo.IsVirtualProperty) -> None | _ -> Some () /// Called for 'expression.Bar' - for VS IntelliSense, we can filter out static members from method groups @@ -4083,7 +4083,7 @@ let ResolveExprDotLongIdentAndComputeRange (sink: TcResultsSink) (ncenv: NameRes match pinfoOpt with | None when minfo.IsConstructor -> Item.CtorGroup(minfo.LogicalName, [minfo]) | None -> Item.MethodGroup(minfo.LogicalName, [minfo], None) - | Some pinfo -> Item.Property(pinfo.PropertyName, [pinfo]) + | Some pinfo -> Item.Property(pinfo.PropertyName, [pinfo], None) callSink (refinedItem, tpinst) diff --git a/src/Compiler/Checking/NameResolution.fsi b/src/Compiler/Checking/NameResolution.fsi index 32f06d9cddd..0ed9dc1a3e4 100755 --- a/src/Compiler/Checking/NameResolution.fsi +++ b/src/Compiler/Checking/NameResolution.fsi @@ -86,7 +86,7 @@ type Item = | Event of EventInfo /// Represents the resolution of a name to a property - | Property of string * PropInfo list + | Property of name: string * info: PropInfo list * sourceIdentifierRange: range option /// Represents the resolution of a name to a group of methods. | MethodGroup of displayName: string * methods: MethInfo list * uninstantiatedMethodOpt: MethInfo option diff --git a/src/Compiler/Service/FSharpCheckerResults.fs b/src/Compiler/Service/FSharpCheckerResults.fs index 17349ec1023..12a0481ac83 100644 --- a/src/Compiler/Service/FSharpCheckerResults.fs +++ b/src/Compiler/Service/FSharpCheckerResults.fs @@ -1974,7 +1974,7 @@ type internal TypeCheckInfo FindDeclResult.ExternalDecl(assemblyRef.Name, externalSym)) | _ -> None - | Item.Property (name, ILProp propInfo :: _) -> + | Item.Property (name, ILProp propInfo :: _, _) -> let methInfo = if propInfo.HasGetter then Some propInfo.GetterMethod elif propInfo.HasSetter then Some propInfo.SetterMethod @@ -2045,7 +2045,7 @@ type internal TypeCheckInfo // provided items may have TypeProviderDefinitionLocationAttribute that binds them to some location | Item.CtorGroup (name, ProvidedMeth _ :: _) | Item.MethodGroup (name, ProvidedMeth _ :: _, _) - | Item.Property (name, ProvidedProp _ :: _) -> FindDeclFailureReason.ProvidedMember name + | Item.Property (name, ProvidedProp _ :: _, _) -> FindDeclFailureReason.ProvidedMember name | Item.Event (ProvidedEvent _ as e) -> FindDeclFailureReason.ProvidedMember e.EventName | Item.ILField (ProvidedField _ as f) -> FindDeclFailureReason.ProvidedMember f.FieldName | ItemIsProvidedType g tcref -> FindDeclFailureReason.ProvidedType tcref.DisplayName diff --git a/src/Compiler/Service/ItemKey.fs b/src/Compiler/Service/ItemKey.fs index ef0ddedc3ea..6f364e2cdd7 100644 --- a/src/Compiler/Service/ItemKey.fs +++ b/src/Compiler/Service/ItemKey.fs @@ -383,7 +383,7 @@ and [] ItemKeyStoreBuilder() = writeString info.EventName writeEntityRef info.DeclaringTyconRef - | Item.Property (nm, infos) -> + | Item.Property (nm, infos, _) -> writeString ItemKeyTags.itemProperty writeString nm diff --git a/src/Compiler/Service/SemanticClassification.fs b/src/Compiler/Service/SemanticClassification.fs index b9576972cfa..ff54dee3b87 100644 --- a/src/Compiler/Service/SemanticClassification.fs +++ b/src/Compiler/Service/SemanticClassification.fs @@ -268,7 +268,7 @@ module TcResolutionsExtensions = else add m SemanticClassificationType.RecordField - | Item.Property (_, pinfo :: _), _, m -> + | Item.Property(info = pinfo :: _), _, m -> if not pinfo.IsIndexer then add m SemanticClassificationType.Property diff --git a/src/Compiler/Service/ServiceDeclarationLists.fs b/src/Compiler/Service/ServiceDeclarationLists.fs index a0da4745902..80c69418c1f 100644 --- a/src/Compiler/Service/ServiceDeclarationLists.fs +++ b/src/Compiler/Service/ServiceDeclarationLists.fs @@ -320,7 +320,7 @@ module DeclarationListHelpers = ToolTipElement.Single (layout, xml, ?symbol = symbol) // F# and .NET properties - | Item.Property(_, pinfo :: _) -> + | Item.Property(info = pinfo :: _) -> let layout = NicePrint.prettyLayoutOfPropInfoFreeStyle g amap m denv pinfo let layout = PrintUtilities.squashToWidth width layout let layout = toArray layout @@ -520,7 +520,7 @@ module DeclarationListHelpers = // We don't expect these cases | Item.Types (_, []) - | Item.Property (_, []) + | Item.Property (info = []) | Item.UnqualifiedType [] | Item.ModuleOrNamespaces [] | Item.CustomOperation (_, _, None) -> ToolTipElement.None @@ -798,7 +798,7 @@ module internal DescriptionListsImpl = let _prettyTyparInst, prettyRetTyL = NicePrint.prettyLayoutOfUncurriedSig denv item.TyparInstantiation [] (PropTypeOfEventInfo infoReader m AccessibleFromSomewhere einfo) [], prettyRetTyL - | Item.Property(_, pinfo :: _) -> + | Item.Property(info = pinfo :: _) -> let paramDatas = pinfo.GetParamDatas(amap, m) let propTy = pinfo.GetPropertyType(amap, m) @@ -874,7 +874,7 @@ module internal DescriptionListsImpl = | Item.OtherName _ | Item.MethodGroup(_, [], _) | Item.CtorGroup(_,[]) - | Item.Property(_,[]) -> + | Item.Property(info = []) -> [], emptyL @@ -999,7 +999,7 @@ module internal DescriptionListsImpl = if not ucr.UnionCase.IsNullary then [item] else [] | Item.ExnCase(ecr) -> if isNil (recdFieldsOfExnDefRef ecr) then [] else [item] - | Item.Property(_, pinfos) -> + | Item.Property(info = pinfos) -> let pinfo = List.head pinfos if pinfo.IsIndexer then [item] else [] #if !NO_TYPEPROVIDERS @@ -1112,7 +1112,7 @@ type DeclarationListInfo(declarations: DeclarationListItem[], isForType: bool, i // Put type ctors after types, sorted by #typars. RemoveDuplicateItems will remove DefaultStructCtors if a type is also reported with this name | Item.CtorGroup (_, cinfo :: _) -> { x with MinorPriority = 1000 + 10 * cinfo.DeclaringTyconRef.TyparsNoRange.Length } | Item.MethodGroup(_, minfo :: _, _) -> { x with IsOwnMember = tyconRefOptEq x.Type minfo.DeclaringTyconRef } - | Item.Property(_, pinfo :: _) -> { x with IsOwnMember = tyconRefOptEq x.Type pinfo.DeclaringTyconRef } + | Item.Property(info = pinfo :: _) -> { x with IsOwnMember = tyconRefOptEq x.Type pinfo.DeclaringTyconRef } | Item.ILField finfo -> { x with IsOwnMember = tyconRefOptEq x.Type finfo.DeclaringTyconRef } | _ -> x) |> List.sortBy (fun x -> x.MinorPriority) diff --git a/src/Compiler/Symbols/SymbolHelpers.fs b/src/Compiler/Symbols/SymbolHelpers.fs index 67161c99f0f..6e4dbc284fe 100644 --- a/src/Compiler/Symbols/SymbolHelpers.fs +++ b/src/Compiler/Symbols/SymbolHelpers.fs @@ -99,7 +99,10 @@ module internal SymbolHelpers = | Item.UnionCaseField (UnionCaseInfo (_, ucref), fieldIndex) -> Some (rangeOfRecdField preferFlag (ucref.FieldByIndex(fieldIndex))) | Item.Event einfo -> rangeOfEventInfo preferFlag einfo | Item.ILField _ -> None - | Item.Property(_, pinfos) -> rangeOfPropInfo preferFlag pinfos.Head + | Item.Property(info = pinfos; sourceIdentifierRange = mNameOpt) -> + match mNameOpt with + | Some m -> Some m + | None -> rangeOfPropInfo preferFlag pinfos.Head | Item.Types(_, tys) -> tys |> List.tryPick (tryNiceEntityRefOfTyOption >> Option.map (rangeOfEntityRef preferFlag)) | Item.CustomOperation (_, _, Some minfo) -> rangeOfMethInfo g preferFlag minfo | Item.Trait _ -> None @@ -162,7 +165,7 @@ module internal SymbolHelpers = | Item.ILField finfo -> finfo.DeclaringTyconRef |> computeCcuOfTyconRef - | Item.Property(_, pinfos) -> + | Item.Property(info = pinfos) -> pinfos |> List.tryPick (fun pinfo -> pinfo.ArbitraryValRef |> Option.bind ccuOfValRef @@ -297,7 +300,7 @@ module internal SymbolHelpers = | Item.ModuleOrNamespaces(modref :: _) -> mkXmlComment (GetXmlDocSigOfEntityRef infoReader m modref) - | Item.Property(_, pinfo :: _) -> + | Item.Property(info = pinfo :: _) -> mkXmlComment (GetXmlDocSigOfProp infoReader m pinfo) | Item.Event einfo -> @@ -330,7 +333,7 @@ module internal SymbolHelpers = // These empty lists are not expected to occur | Item.CtorGroup (_, []) | Item.MethodGroup (_, [], _) - | Item.Property (_, []) + | Item.Property (info = []) | Item.ModuleOrNamespaces [] | Item.UnqualifiedType [] | Item.Types(_, []) -> @@ -449,7 +452,7 @@ module internal SymbolHelpers = g.unionCaseRefEq ur1 ur2 | Item.RecdField(RecdFieldInfo(_, RecdFieldRef(tcref1, n1))), Item.RecdField(RecdFieldInfo(_, RecdFieldRef(tcref2, n2))) -> (tyconRefEq g tcref1 tcref2) && (n1 = n2) // there is no direct function as in the previous case - | Item.Property(_, pi1s), Item.Property(_, pi2s) -> + | Item.Property(info = pi1s), Item.Property(info = pi2s) -> (pi1s, pi2s) ||> List.forall2 (fun pi1 pi2 -> PropInfo.PropInfosUseIdenticalDefinitions pi1 pi2) | Item.Event evt1, Item.Event evt2 -> EventInfo.EventInfosUseIdenticalDefinitions evt1 evt2 @@ -493,7 +496,7 @@ module internal SymbolHelpers = | Item.AnonRecdField(anon, _, i, _) -> hash anon.SortedNames[i] | Item.Trait traitInfo -> hash traitInfo.MemberLogicalName | Item.Event evt -> evt.ComputeHashCode() - | Item.Property(_name, pis) -> hash (pis |> List.map (fun pi -> pi.ComputeHashCode())) + | Item.Property(info = pis) -> hash (pis |> List.map (fun pi -> pi.ComputeHashCode())) | Item.UnqualifiedType(tcref :: _) -> hash tcref.LogicalName // These are not expected to occur, see InEqualityRelation and ItemWhereTypIsPreferred @@ -561,7 +564,7 @@ module internal SymbolHelpers = | Item.NewDef id -> id.idText | Item.ILField finfo -> buildString (fun os -> NicePrint.outputType denv os finfo.ApparentEnclosingType; bprintf os ".%s" finfo.FieldName) | Item.Event einfo -> buildString (fun os -> NicePrint.outputTyconRef denv os einfo.DeclaringTyconRef; bprintf os ".%s" einfo.EventName) - | Item.Property(_, pinfo :: _) -> buildString (fun os -> NicePrint.outputTyconRef denv os pinfo.DeclaringTyconRef; bprintf os ".%s" pinfo.PropertyName) + | Item.Property(info = pinfo :: _) -> buildString (fun os -> NicePrint.outputTyconRef denv os pinfo.DeclaringTyconRef; bprintf os ".%s" pinfo.PropertyName) | Item.CustomOperation (customOpName, _, _) -> customOpName | Item.CtorGroup(_, minfo :: _) -> buildString (fun os -> NicePrint.outputTyconRef denv os minfo.DeclaringTyconRef) | Item.MethodGroup(_, _, Some minfo) -> buildString (fun os -> NicePrint.outputTyconRef denv os minfo.DeclaringTyconRef; bprintf os ".%s" minfo.DisplayName) @@ -588,7 +591,7 @@ module internal SymbolHelpers = | Item.CtorGroup(_, []) | Item.MethodGroup(_, [], _) | Item.ModuleOrNamespaces [] - | Item.Property(_, []) -> "" + | Item.Property(info = []) -> "" /// Output the description of a language item let rec GetXmlCommentForItem (infoReader: InfoReader) m item = @@ -638,7 +641,7 @@ module internal SymbolHelpers = let doc = if einfo.HasDirectXmlComment || einfo.XmlDoc.NonEmpty then Some einfo.XmlDoc else None GetXmlCommentForItemAux doc infoReader m item - | Item.Property(_, pinfos) -> + | Item.Property(info = pinfos) -> let pinfo = pinfos.Head let doc = if pinfo.HasDirectXmlComment || pinfo.XmlDoc.NonEmpty then Some pinfo.XmlDoc else None GetXmlCommentForItemAux doc infoReader m item @@ -879,7 +882,7 @@ module internal SymbolHelpers = | _ -> modref.Deref.CompiledRepresentationForNamedType.FullName |> Some | [] -> None // Pathological case of the above - | Item.Property(_, pinfo :: _) -> + | Item.Property(info = pinfo :: _) -> match pinfo with | FSProp(_, _, Some vref, _) | FSProp(_, _, _, Some vref) -> @@ -896,7 +899,7 @@ module internal SymbolHelpers = #if !NO_TYPEPROVIDERS | ProvidedProp _ -> None #endif - | Item.Property(_, []) -> None // Pathological case of the above + | Item.Property(info = []) -> None // Pathological case of the above | Item.Event einfo -> match einfo with @@ -963,7 +966,7 @@ module internal SymbolHelpers = | Item.Value v -> if isForallFunctionTy g v.Type then [item] else [] | Item.UnionCase(ucr, _) -> if not ucr.UnionCase.IsNullary then [item] else [] | Item.ExnCase ecr -> if isNil (recdFieldsOfExnDefRef ecr) then [] else [item] - | Item.Property(_, pinfos) -> + | Item.Property(info = pinfos) -> let pinfo = List.head pinfos if pinfo.IsIndexer then [item] else [] #if !NO_TYPEPROVIDERS diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index 615648dd9c4..6cbc301de11 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -283,7 +283,7 @@ type FSharpSymbol(cenv: SymbolEnv, item: unit -> Item, access: FSharpSymbol -> C | Item.Event einfo -> FSharpMemberOrFunctionOrValue(cenv, E einfo, item) :> _ - | Item.Property(_, pinfo :: _) -> + | Item.Property(info = pinfo :: _) -> FSharpMemberOrFunctionOrValue(cenv, P pinfo, item) :> _ | Item.MethodGroup(_, minfo :: _, _) -> @@ -337,7 +337,7 @@ type FSharpSymbol(cenv: SymbolEnv, item: unit -> Item, access: FSharpSymbol -> C | Item.CustomOperation (_, _, None) | Item.UnqualifiedType [] | Item.ModuleOrNamespaces [] - | Item.Property (_, []) + | Item.Property (info = []) | Item.MethodGroup (_, [], _) | Item.CtorGroup (_, []) // These cases cover misc. corned cases (non-symbol types) @@ -664,7 +664,7 @@ type FSharpEntity(cenv: SymbolEnv, entity: EntityRef) = let events = cenv.infoReader.GetImmediateIntrinsicEventsOfType (None, AccessibleFromSomeFSharpCode, range0, entityTy) for pinfo in props do - yield FSharpMemberOrFunctionOrValue(cenv, P pinfo, Item.Property (pinfo.PropertyName, [pinfo])) + yield FSharpMemberOrFunctionOrValue(cenv, P pinfo, Item.Property (pinfo.PropertyName, [pinfo], None)) for einfo in events do yield FSharpMemberOrFunctionOrValue(cenv, E einfo, Item.Event einfo) @@ -679,10 +679,10 @@ type FSharpEntity(cenv: SymbolEnv, entity: EntityRef) = match v.MemberInfo.Value.MemberFlags.MemberKind, v.ApparentEnclosingEntity with | SynMemberKind.PropertyGet, Parent tcref -> let pinfo = FSProp(cenv.g, generalizedTyconRef cenv.g tcref, Some vref, None) - yield FSharpMemberOrFunctionOrValue(cenv, P pinfo, Item.Property (pinfo.PropertyName, [pinfo])) + yield FSharpMemberOrFunctionOrValue(cenv, P pinfo, Item.Property (pinfo.PropertyName, [pinfo], None)) | SynMemberKind.PropertySet, Parent p -> let pinfo = FSProp(cenv.g, generalizedTyconRef cenv.g p, None, Some vref) - yield FSharpMemberOrFunctionOrValue(cenv, P pinfo, Item.Property (pinfo.PropertyName, [pinfo])) + yield FSharpMemberOrFunctionOrValue(cenv, P pinfo, Item.Property (pinfo.PropertyName, [pinfo], None)) | _ -> () elif not v.IsMember then diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index 9028d245309..b32dbfb9db4 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -446,6 +446,7 @@ type Foo = match xSymbol.Symbol with | :? FSharpMemberOrFunctionOrValue as mfv -> + Assert.True mfv.IsProperty Assert.True mfv.HasGetterMethod Assert.True mfv.HasSetterMethod | symbol-> Assert.Fail $"Expected {symbol} to be FSharpMemberOrFunctionOrValue" @@ -477,10 +478,12 @@ type Foo = match autoPropertySymbolUse.Symbol with | :? FSharpMemberOrFunctionOrValue as mfv -> + Assert.True mfv.IsProperty Assert.True mfv.HasGetterMethod Assert.True mfv.HasSetterMethod Assert.True (mfv.GetterMethod.CompiledName.StartsWith("get_")) Assert.True (mfv.SetterMethod.CompiledName.StartsWith("set_")) + assertRange (5, 15) (5, 29) autoPropertySymbolUse.Range | _ -> Assert.Fail "Symbol was not FSharpMemberOrFunctionOrValue" @@ -517,8 +520,10 @@ type X(y: string) = match symbolUses with | [ :? FSharpMemberOrFunctionOrValue as mfv ] -> + Assert.True mfv.IsProperty Assert.True mfv.HasGetterMethod Assert.True mfv.HasSetterMethod + assertRange (3, 15) (3, 16) mfv.SignatureLocation.Value | _ -> Assert.Fail "Expected symbols" [] @@ -610,6 +615,30 @@ type Foo() = Assert.True mfv.IsPropertySetterMethod assertRange (6, 16) (6, 21) mfv.SignatureLocation.Value | symbols -> Assert.Fail $"Unexpected symbols, got %A{symbols}" + + [] + let ``Property with set/get has property symbol`` () = + let _, checkResults = getParseAndCheckResults """ +namespace F + +type Foo() = + let mutable b = 0 + member this.Count with set (v:int) = b <- v and get () = b +""" + + let _all = checkResults.GetAllUsesOfAllSymbolsInFile() + + let getSymbolUses = + checkResults.GetSymbolUsesAtLocation(6, 21, " member this.Count with set (v:int) = b <- v", ["Count"]) + |> List.map (fun su -> su.Symbol) + + match getSymbolUses with + | [ :? FSharpMemberOrFunctionOrValue as mfv ] -> + Assert.True mfv.IsProperty + Assert.True mfv.HasGetterMethod + Assert.True mfv.HasSetterMethod + assertRange (6, 16) (6, 21) mfv.SignatureLocation.Value + | symbols -> Assert.Fail $"Unexpected symbols, got %A{symbols}" module Expressions = [] @@ -766,7 +795,3 @@ type BAttribute() = let a ([] c: int) : int = 0 """ (7, 5, "let a ([] c: int) : int = 0", "a") - -type Foo() = - let mutable b = 0 - member this.Bar with get () = b and set (v: int) = b <- v \ No newline at end of file From f67b707cdca62368607bc05ed187459882cf3b7f Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 14:34:44 +0200 Subject: [PATCH 11/19] Update surface area. --- ...arp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl | 6 ++++-- ...p.Compiler.Service.SurfaceArea.netstandard20.release.bsl | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl index be1414fc12f..0427f3a0155 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl @@ -2080,8 +2080,8 @@ FSharp.Compiler.CodeAnalysis.FSharpChecker: Void InvalidateConfiguration(FSharp. FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsBindingALambdaAtPosition(FSharp.Compiler.Text.Position) FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsPosContainedInApplication(FSharp.Compiler.Text.Position) FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsPositionContainedInACurriedParameter(FSharp.Compiler.Text.Position) -FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsTypeName(FSharp.Compiler.Text.Range) FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsTypeAnnotationGivenAtPosition(FSharp.Compiler.Text.Position) +FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsTypeName(FSharp.Compiler.Text.Range) FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean ParseHadErrors FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean get_ParseHadErrors() FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: FSharp.Compiler.Diagnostics.FSharpDiagnostic[] Diagnostics @@ -9034,7 +9034,7 @@ FSharp.Compiler.Syntax.SynUnionCaseKind: FSharp.Compiler.Syntax.SynUnionCaseKind FSharp.Compiler.Syntax.SynUnionCaseKind: Int32 Tag FSharp.Compiler.Syntax.SynUnionCaseKind: Int32 get_Tag() FSharp.Compiler.Syntax.SynUnionCaseKind: System.String ToString() -FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValData NewSynValData(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags], FSharp.Compiler.Syntax.SynValInfo, Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident]) +FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValData NewSynValData(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags], FSharp.Compiler.Syntax.SynValInfo, Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident]) FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValInfo SynValInfo FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValInfo get_SynValInfo() FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValInfo get_valInfo() @@ -9042,7 +9042,9 @@ FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValInfo valInfo FSharp.Compiler.Syntax.SynValData: Int32 Tag FSharp.Compiler.Syntax.SynValData: Int32 get_Tag() FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident] get_thisIdOpt() +FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident] get_transformedFromProperty() FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident] thisIdOpt +FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident] transformedFromProperty FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags] get_memberFlags() FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags] memberFlags FSharp.Compiler.Syntax.SynValData: System.String ToString() diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl index f4b2e93a5f4..8161dedbac4 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl @@ -2080,8 +2080,8 @@ FSharp.Compiler.CodeAnalysis.FSharpChecker: Void InvalidateConfiguration(FSharp. FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsBindingALambdaAtPosition(FSharp.Compiler.Text.Position) FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsPosContainedInApplication(FSharp.Compiler.Text.Position) FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsPositionContainedInACurriedParameter(FSharp.Compiler.Text.Position) -FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsTypeName(FSharp.Compiler.Text.Range) FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsTypeAnnotationGivenAtPosition(FSharp.Compiler.Text.Position) +FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean IsTypeName(FSharp.Compiler.Text.Range) FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean ParseHadErrors FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: Boolean get_ParseHadErrors() FSharp.Compiler.CodeAnalysis.FSharpParseFileResults: FSharp.Compiler.Diagnostics.FSharpDiagnostic[] Diagnostics @@ -9034,7 +9034,7 @@ FSharp.Compiler.Syntax.SynUnionCaseKind: FSharp.Compiler.Syntax.SynUnionCaseKind FSharp.Compiler.Syntax.SynUnionCaseKind: Int32 Tag FSharp.Compiler.Syntax.SynUnionCaseKind: Int32 get_Tag() FSharp.Compiler.Syntax.SynUnionCaseKind: System.String ToString() -FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValData NewSynValData(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags], FSharp.Compiler.Syntax.SynValInfo, Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident]) +FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValData NewSynValData(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags], FSharp.Compiler.Syntax.SynValInfo, Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident]) FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValInfo SynValInfo FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValInfo get_SynValInfo() FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValInfo get_valInfo() @@ -9042,7 +9042,9 @@ FSharp.Compiler.Syntax.SynValData: FSharp.Compiler.Syntax.SynValInfo valInfo FSharp.Compiler.Syntax.SynValData: Int32 Tag FSharp.Compiler.Syntax.SynValData: Int32 get_Tag() FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident] get_thisIdOpt() +FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident] get_transformedFromProperty() FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident] thisIdOpt +FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident] transformedFromProperty FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags] get_memberFlags() FSharp.Compiler.Syntax.SynValData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags] memberFlags FSharp.Compiler.Syntax.SynValData: System.String ToString() From 89a1a7aea9b8c6d37e456ba3610bc2915665ec44 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 15:32:56 +0200 Subject: [PATCH 12/19] Update existing tests. --- tests/service/ProjectAnalysisTests.fs | 57 ++++++++++++++++----------- tests/service/Symbols.fs | 27 ++++++++++++- 2 files changed, 59 insertions(+), 25 deletions(-) diff --git a/tests/service/ProjectAnalysisTests.fs b/tests/service/ProjectAnalysisTests.fs index 0ee58b1898f..f7cb93317cc 100644 --- a/tests/service/ProjectAnalysisTests.fs +++ b/tests/service/ProjectAnalysisTests.fs @@ -3441,12 +3441,12 @@ let ``Test Project24 all symbols`` () = allUses |> shouldEqual [|("TypeWithProperties", "file1", ((4, 5), (4, 23)), ["defn"], ["class"]); ("``.ctor``", "file1", ((4, 5), (4, 23)), ["defn"], ["member"; "ctor"]); - ("NameGetSet", "file1", ((5, 13), (5, 23)), ["defn"], ["member"; "getter"]); + ("NameGetSet", "file1", ((6, 13), (6, 16)), ["defn"], ["member"; "getter"]); ("int", "file1", ((7, 20), (7, 23)), ["type"], ["abbrev"]); - ("NameGetSet", "file1", ((5, 13), (5, 23)), ["defn"], ["member"; "setter"]); - ("NameGet", "file1", ((9, 13), (9, 20)), ["defn"], ["member"; "getter"]); + ("NameGetSet", "file1", ((7, 12), (7, 15)), ["defn"], ["member"; "setter"]); + ("NameGet", "file1", ((10, 13), (10, 16)), ["defn"], ["member"; "getter"]); ("int", "file1", ((11, 20), (11, 23)), ["type"], ["abbrev"]); - ("NameGet", "file1", ((9, 13), (9, 20)), ["defn"], ["member"; "setter"]); + ("NameGet", "file1", ((11, 12), (11, 15)), ["defn"], ["member"; "setter"]); ("int", "file1", ((14, 21), (14, 24)), ["type"], ["abbrev"]); ("NameSet", "file1", ((13, 13), (13, 20)), ["defn"], ["member"; "setter"]); ("StaticNameGetSet", "file1", ((16, 18), (16, 34)), ["defn"], @@ -3462,14 +3462,20 @@ let ``Test Project24 all symbols`` () = ["member"; "setter"]); ("AutoPropGet", "file1", ((27, 15), (27, 26)), ["defn"], ["member"; "getter"]); - ("AutoPropGetSet", "file1", ((28, 15), (28, 29)), ["defn"], + ("AutoPropGetSet", "file1", ((28, 39), (28, 42)), ["defn"], ["member"; "getter"]); - ("AutoPropGetSet", "file1", ((28, 15), (28, 29)), ["defn"], ["member"; "setter"]) + ("AutoPropGetSet", "file1", ((28, 44), (28, 47)), ["defn"], ["member"; "setter"]) ("StaticAutoPropGet", "file1", ((30, 22), (30, 39)), ["defn"], ["member"; "getter"]); - ("StaticAutoPropGetSet", "file1", ((31, 22), (31, 42)), ["defn"], + ("StaticAutoPropGetSet", "file1", ((31, 52), (31, 55)), ["defn"], ["member"; "getter"]) - ("StaticAutoPropGetSet", "file1", ((31, 22), (31, 42)), ["defn"], ["member"; "setter"]); + ("StaticAutoPropGetSet", "file1", ((31, 57), (31, 60)), ["defn"], ["member"; "setter"]) + ("NameGetSet", "file1", ((5, 13), (5, 23)), ["defn"], ["member"; "prop"]); + ("NameGet", "file1", ((9, 13), (9, 20)), ["defn"], ["member"; "prop"]) + ("StaticNameGetSet", "file1", ((16, 18), (16, 34)), ["defn"], ["member"; "prop"]); + ("StaticNameGet", "file1", ((20, 18), (20, 31)), ["defn"], ["member"; "prop"]); + ("AutoPropGetSet", "file1", ((28, 15), (28, 29)), ["defn"], ["member"; "prop"]) + ("StaticAutoPropGetSet", "file1", ((31, 22), (31, 42)), ["defn"], ["member"; "prop"]); ("x", "file1", ((5, 11), (5, 12)), ["defn"], []); ("int", "file1", ((7, 20), (7, 23)), ["type"], ["abbrev"]); ("v", "file1", ((7, 17), (7, 18)), ["defn"], []); @@ -3487,10 +3493,10 @@ let ``Test Project24 all symbols`` () = ("v", "file1", ((25, 18), (25, 19)), ["defn"], []); ("``AutoPropGet@``", "file1", ((27, 15), (27, 26)), [], ["compgen"]); ("``AutoPropGetSet@``", "file1", ((28, 15), (28, 29)), [], ["compgen";"mutable"]); - ("v", "file1", ((28, 15), (28, 29)), ["defn"], []); + ("v", "file1", ((28, 44), (28, 47)), ["defn"], []); ("``StaticAutoPropGet@``", "file1", ((30, 22), (30, 39)), [], ["compgen"]); ("``StaticAutoPropGetSet@``", "file1", ((31, 22), (31, 42)), [], - ["compgen";"mutable"]); ("v", "file1", ((31, 22), (31, 42)), ["defn"], []); + ["compgen";"mutable"]); ("v", "file1", ((31, 57), (31, 60)), ["defn"], []); ("``.cctor``", "file1", ((4, 5), (4, 23)), ["defn"], ["member"]); ("TypeWithProperties", "file1", ((33, 9), (33, 27)), [], ["member"; "ctor"]); @@ -3554,12 +3560,12 @@ let ``Test symbol uses of properties with both getters and setters`` () = getAllSymbolUses |> shouldEqual [|("TypeWithProperties", "file1", ((4, 5), (4, 23)), ["class"]); ("``.ctor``", "file1", ((4, 5), (4, 23)), ["member"; "ctor"]); - ("NameGetSet", "file1", ((5, 13), (5, 23)), ["member"; "getter"]); + ("NameGetSet", "file1", ((6, 13), (6, 16)), ["member"; "getter"]); ("int", "file1", ((7, 20), (7, 23)), ["abbrev"]) - ("NameGetSet", "file1", ((5, 13), (5, 23)), ["member"; "setter"]); - ("NameGet", "file1", ((9, 13), (9, 20)), ["member"; "getter"]); + ("NameGetSet", "file1", ((7, 12), (7, 15)), ["member"; "setter"]); + ("NameGet", "file1", ((10, 13), (10, 16)), ["member"; "getter"]); ("int", "file1", ((11, 20), (11, 23)), ["abbrev"]) - ("NameGet", "file1", ((9, 13), (9, 20)), ["member"; "setter"]); + ("NameGet", "file1", ((11, 12), (11, 15)), ["member"; "setter"]); ("int", "file1", ((14, 21), (14, 24)), ["abbrev"]); ("NameSet", "file1", ((13, 13), (13, 20)), ["member"; "setter"]); ("StaticNameGetSet", "file1", ((16, 18), (16, 34)), ["member"; "getter"]); @@ -3571,12 +3577,18 @@ let ``Test symbol uses of properties with both getters and setters`` () = ("int", "file1", ((25, 21), (25, 24)), ["abbrev"]); ("StaticNameSet", "file1", ((24, 18), (24, 31)), ["member"; "setter"]); ("AutoPropGet", "file1", ((27, 15), (27, 26)), ["member"; "getter"]); - ("AutoPropGetSet", "file1", ((28, 15), (28, 29)), ["member"; "getter"]) - ("AutoPropGetSet", "file1", ((28, 15), (28, 29)), ["member"; "setter"]); + ("AutoPropGetSet", "file1", ((28, 39), (28, 42)), ["member"; "getter"]) + ("AutoPropGetSet", "file1", ((28, 44), (28, 47)), ["member"; "setter"]); ("StaticAutoPropGet", "file1", ((30, 22), (30, 39)), ["member"; "getter"]); - ("StaticAutoPropGetSet", "file1", ((31, 22), (31, 42)), + ("StaticAutoPropGetSet", "file1", ((31, 52), (31, 55)), ["member"; "getter"]) - ("StaticAutoPropGetSet", "file1", ((31, 22), (31, 42)), ["member"; "setter"]) + ("StaticAutoPropGetSet", "file1", ((31, 57), (31, 60)), ["member"; "setter"]) + ("NameGetSet", "file1", ((5, 13), (5, 23)), ["member"; "prop"]) + ("NameGet", "file1", ((9, 13), (9, 20)), ["member"; "prop"]) + ("StaticNameGetSet", "file1", ((16, 18), (16, 34)), ["member"; "prop"]) + ("StaticNameGet", "file1", ((20, 18), (20, 31)), ["member"; "prop"]) + ("AutoPropGetSet", "file1", ((28, 15), (28, 29)), ["member"; "prop"]) + ("StaticAutoPropGetSet", "file1", ((31, 22), (31, 42)), ["member"; "prop"]) ("x", "file1", ((5, 11), (5, 12)), []); ("int", "file1", ((7, 20), (7, 23)), ["abbrev"]); ("v", "file1", ((7, 17), (7, 18)), []); @@ -3594,10 +3606,10 @@ let ``Test symbol uses of properties with both getters and setters`` () = ("v", "file1", ((25, 18), (25, 19)), []); ("``AutoPropGet@``", "file1", ((27, 15), (27, 26)), ["compgen"]); ("``AutoPropGetSet@``", "file1", ((28, 15), (28, 29)), ["compgen";"mutable"]); - ("v", "file1", ((28, 15), (28, 29)), []); + ("v", "file1", ((28, 44), (28, 47)), []); ("``StaticAutoPropGet@``", "file1", ((30, 22), (30, 39)), ["compgen"]); ("``StaticAutoPropGetSet@``", "file1", ((31, 22), (31, 42)), ["compgen";"mutable"]); - ("v", "file1", ((31, 22), (31, 42)), []); + ("v", "file1", ((31, 57), (31, 60)), []); ("``.cctor``", "file1", ((4, 5), (4, 23)), ["member"]); ("TypeWithProperties", "file1", ((33, 9), (33, 27)), ["member"; "ctor"]); ("NameGetSet", "file1", ((33, 9), (33, 40)), ["member"; "prop"]); @@ -3638,8 +3650,7 @@ let ``Test symbol uses of properties with both getters and setters`` () = ("PropertyTest", "file1", ((2, 7), (2, 19)), ["module"])|] let getSampleSymbolUseOpt = - backgroundTypedParse1.GetSymbolUseAtLocation(9,20,"",["get_NameGet"]) - + backgroundTypedParse1.GetSymbolUseAtLocation(9,20,"",["NameGet"]) let getSampleSymbol = getSampleSymbolUseOpt.Value.Symbol @@ -3648,7 +3659,7 @@ let ``Test symbol uses of properties with both getters and setters`` () = |> Array.map (fun s -> (Project24.cleanFileName s.FileName, tups s.Range)) - usesOfGetSampleSymbol |> shouldEqual [|("file1", ((9, 13), (9, 20))); ("file1", ((36, 9), (36, 37)))|] + usesOfGetSampleSymbol |> shouldEqual [|("file1", ((10, 13), (10, 16))); ("file1", ((9, 13), (9, 20))); ("file1", ((36, 9), (36, 37)))|] #if NO_CHECK_USE_OF_FSHARP_DATA_DLL #endif diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index b32dbfb9db4..92091ad8049 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -626,8 +626,6 @@ type Foo() = member this.Count with set (v:int) = b <- v and get () = b """ - let _all = checkResults.GetAllUsesOfAllSymbolsInFile() - let getSymbolUses = checkResults.GetSymbolUsesAtLocation(6, 21, " member this.Count with set (v:int) = b <- v", ["Count"]) |> List.map (fun su -> su.Symbol) @@ -640,6 +638,31 @@ type Foo() = assertRange (6, 16) (6, 21) mfv.SignatureLocation.Value | symbols -> Assert.Fail $"Unexpected symbols, got %A{symbols}" + [] + let ``Property usage is reported properly`` () = + let _, checkResults = getParseAndCheckResults """ +module X + +type Foo() = + let mutable b = 0 + member x.Name + with get() = 0 + and set (v: int) = () + +ignore (Foo().Name) +""" + + let propertySymbolUse = + checkResults.GetSymbolUsesAtLocation(6, 17, " member x.Name", ["Name"]) + |> List.map (fun su -> su.Symbol) + |> List.exactlyOne + + let usages = checkResults.GetUsesOfSymbolInFile(propertySymbolUse) + Assert.AreEqual(3, usages.Length) + Assert.True usages.[0].IsFromDefinition + Assert.True usages.[1].IsFromDefinition + Assert.True usages.[2].IsFromUse + module Expressions = [] let ``Unresolved record field 01`` () = From 321a4e9b4b554ee47a98c93be82de404176444b3 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 16:28:09 +0200 Subject: [PATCH 13/19] Correct GetValSignatureText for Properties --- src/Compiler/Checking/NicePrint.fs | 16 ---------------- src/Compiler/Checking/infos.fs | 18 +++++++++++++++++- src/Compiler/Checking/infos.fsi | 2 ++ src/Compiler/Symbols/Symbols.fs | 22 ++++++++++++++-------- tests/service/Symbols.fs | 26 ++++++++++++++++++++++++++ 5 files changed, 59 insertions(+), 25 deletions(-) diff --git a/src/Compiler/Checking/NicePrint.fs b/src/Compiler/Checking/NicePrint.fs index f9193b4206e..c30db905d76 100644 --- a/src/Compiler/Checking/NicePrint.fs +++ b/src/Compiler/Checking/NicePrint.fs @@ -1820,22 +1820,6 @@ module TastDefinitionPrinting = match getter.ArbitraryValRef, setter.ArbitraryValRef with | Some gRef, Some sRef -> isPublicAccess gRef.Accessibility && isPublicAccess sRef.Accessibility | _ -> false - - let (|DifferentGetterAndSetter|_|) (pinfo: PropInfo) = - if not (pinfo.HasGetter && pinfo.HasSetter) then - None - else - match pinfo.GetterMethod.ArbitraryValRef, pinfo.SetterMethod.ArbitraryValRef with - | Some getValRef, Some setValRef -> - if getValRef.Accessibility <> setValRef.Accessibility then - Some (getValRef, setValRef) - else - match getValRef.ValReprInfo with - | Some getValReprInfo when - // Getter has an index parameter - getValReprInfo.TotalArgCount > 1 -> Some (getValRef, setValRef) - | _ -> None - | _ -> None match pinfo.ArbitraryValRef with | Some vref -> diff --git a/src/Compiler/Checking/infos.fs b/src/Compiler/Checking/infos.fs index 4548b98eb39..af33e162200 100644 --- a/src/Compiler/Checking/infos.fs +++ b/src/Compiler/Checking/infos.fs @@ -2370,4 +2370,20 @@ let PropInfosEquivByNameAndSig erasureFlag g amap m (pinfo: PropInfo) (pinfo2: P let SettersOfPropInfos (pinfos: PropInfo list) = pinfos |> List.choose (fun pinfo -> if pinfo.HasSetter then Some(pinfo.SetterMethod, Some pinfo) else None) -let GettersOfPropInfos (pinfos: PropInfo list) = pinfos |> List.choose (fun pinfo -> if pinfo.HasGetter then Some(pinfo.GetterMethod, Some pinfo) else None) \ No newline at end of file +let GettersOfPropInfos (pinfos: PropInfo list) = pinfos |> List.choose (fun pinfo -> if pinfo.HasGetter then Some(pinfo.GetterMethod, Some pinfo) else None) + +let (|DifferentGetterAndSetter|_|) (pinfo: PropInfo) = + if not (pinfo.HasGetter && pinfo.HasSetter) then + None + else + match pinfo.GetterMethod.ArbitraryValRef, pinfo.SetterMethod.ArbitraryValRef with + | Some getValRef, Some setValRef -> + if getValRef.Accessibility <> setValRef.Accessibility then + Some (getValRef, setValRef) + else + match getValRef.ValReprInfo with + | Some getValReprInfo when + // Getter has an index parameter + getValReprInfo.TotalArgCount > 1 -> Some (getValRef, setValRef) + | _ -> None + | _ -> None \ No newline at end of file diff --git a/src/Compiler/Checking/infos.fsi b/src/Compiler/Checking/infos.fsi index eb34d3523cb..5f6aab66a91 100644 --- a/src/Compiler/Checking/infos.fsi +++ b/src/Compiler/Checking/infos.fsi @@ -1089,3 +1089,5 @@ val PropInfosEquivByNameAndSig: val SettersOfPropInfos: pinfos: PropInfo list -> (MethInfo * PropInfo option) list val GettersOfPropInfos: pinfos: PropInfo list -> (MethInfo * PropInfo option) list + +val (|DifferentGetterAndSetter|_|): pinfo: PropInfo -> (ValRef * ValRef) option diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index 6cbc301de11..abad652e312 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -2365,14 +2365,20 @@ type FSharpMemberOrFunctionOrValue(cenv, d:FSharpMemberOrValData, item) = | _ -> NicePrint.stringOfMethInfoFSharpStyle cenv.infoReader m displayEnv methInfo let stringValOfPropInfo (p: PropInfo) = - let t = p.GetPropertyType(cenv.amap, m ) |> NicePrint.layoutType displayEnv |> LayoutRender.showL - let withGetSet = - if p.HasGetter && p.HasSetter then "with get, set" - elif p.HasGetter then "with get" - elif p.HasSetter then "with set" - else "" - - $"member val %s{p.DisplayName}: %s{t} %s{withGetSet}" + match p with + | DifferentGetterAndSetter(getValRef, setValRef) -> + let g = NicePrint.stringValOrMember displayEnv cenv.infoReader getValRef + let s = NicePrint.stringValOrMember displayEnv cenv.infoReader setValRef + $"{g}\n{s}" + | _ -> + let t = p.GetPropertyType(cenv.amap, m ) |> NicePrint.layoutType displayEnv |> LayoutRender.showL + let withGetSet = + if p.HasGetter && p.HasSetter then "with get, set" + elif p.HasGetter then "with get" + elif p.HasSetter then "with set" + else "" + + $"member %s{p.DisplayName}: %s{t} %s{withGetSet}" match d with | E _ -> None diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index 92091ad8049..163d0490dd4 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -818,3 +818,29 @@ type BAttribute() = let a ([] c: int) : int = 0 """ (7, 5, "let a ([] c: int) : int = 0", "a") + + [] + let ``Signature text for auto property`` () = + assertSignature + "member AutoPropGetSet: int with get, set" + """ +module T + +type Foo() = + member val AutoPropGetSet = 0 with get, set +""" + (5, 29, " member val AutoPropGetSet = 0 with get, set", "AutoPropGetSet") + + [] + let ``Signature text for property`` () = + assertSignature + "member X: y: int -> string with get\nmember X: a: int -> float with set" + """ +module T + +type Foo() = + member _.X + with get (y: int) : string = "" + and set (a: int) (b: float) = () +""" + (5, 14, " member _.X", "X") \ No newline at end of file From c7341361081244658c38c83899999f5e5d1d7259 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 17:06:02 +0200 Subject: [PATCH 14/19] Update old tests --- test.fsi | 14 ++++++++++++++ .../AutoProperties/E_PrivateProperty01.fs | 2 +- .../E_PropertyInvalidGetterSetter01.fs | 2 +- .../MemberDeclarations/E_PropertySetterUnit01.fs | 4 ++-- 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 test.fsi diff --git a/test.fsi b/test.fsi new file mode 100644 index 00000000000..f9b617238a5 --- /dev/null +++ b/test.fsi @@ -0,0 +1,14 @@ + +namespace Microsoft.FSharp.Core + open System + [] + [] + type NoDynamicInvocationAttribute = + inherit Attribute + new: unit -> NoDynamicInvocationAttribute + internal new: isLegacy: bool -> NoDynamicInvocationAttribute + + module Operators = + [] + val inline id: value: 'T -> 'T + \ No newline at end of file diff --git a/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/AutoProperties/E_PrivateProperty01.fs b/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/AutoProperties/E_PrivateProperty01.fs index acb21f79b71..8623318815d 100644 --- a/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/AutoProperties/E_PrivateProperty01.fs +++ b/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/AutoProperties/E_PrivateProperty01.fs @@ -1,5 +1,5 @@ // #Conformance #ObjectOrientedTypes #Classes #MethodsAndProperties #Accessibility -//The type 'X' is less accessible than the value, member or type 'member XX\.PublicProperty: X' it is used in.$ +//The type 'X' is less accessible than the value, member or type 'member XX\.PublicProperty: X' it is used in.$ type private X() = class end type XX() = diff --git a/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/MemberDeclarations/E_PropertyInvalidGetterSetter01.fs b/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/MemberDeclarations/E_PropertyInvalidGetterSetter01.fs index 8679d30a42c..94093a22e50 100644 --- a/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/MemberDeclarations/E_PropertyInvalidGetterSetter01.fs +++ b/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/MemberDeclarations/E_PropertyInvalidGetterSetter01.fs @@ -1,6 +1,6 @@ // #Regression #Conformance #ObjectOrientedTypes #Classes #MethodsAndProperties #MemberDefinitions // Regression test for 342901 -//A property's getter and setter must have the same type\. Property 'X' has getter of type 'obj option' but setter of type 'obj'\. +//A property's getter and setter must have the same type\. Property 'X' has getter of type 'obj option' but setter of type 'obj'\. type Foo(x) = let mutable x = x member this.X diff --git a/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/MemberDeclarations/E_PropertySetterUnit01.fs b/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/MemberDeclarations/E_PropertySetterUnit01.fs index bdc20b5b1f4..2023bb37c63 100644 --- a/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/MemberDeclarations/E_PropertySetterUnit01.fs +++ b/tests/fsharpqa/Source/Conformance/ObjectOrientedTypeDefinitions/ClassTypes/MemberDeclarations/E_PropertySetterUnit01.fs @@ -4,8 +4,8 @@ // See also bug #5456 // Since Dev11, A property's getter and setter must have the same type, so error would be reported. // See bug #342901 -//A property's getter and setter must have the same type\. Property 'ini' has getter of type 'bool' but setter of type 'unit'\. -//A property's getter and setter must have the same type\. Property 'ini' has getter of type 'bool' but setter of type 'unit'\. +//A property's getter and setter must have the same type\. Property 'ini' has getter of type 'bool' but setter of type 'unit'\. +//A property's getter and setter must have the same type\. Property 'ini' has getter of type 'bool' but setter of type 'unit'\. module M type test = class val mutable Init : bool From a37065d43ac89e9cbdca6150250edd0adbe9e112 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 14 Jul 2023 17:28:15 +0200 Subject: [PATCH 15/19] Remove test.fsi --- test.fsi | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 test.fsi diff --git a/test.fsi b/test.fsi deleted file mode 100644 index f9b617238a5..00000000000 --- a/test.fsi +++ /dev/null @@ -1,14 +0,0 @@ - -namespace Microsoft.FSharp.Core - open System - [] - [] - type NoDynamicInvocationAttribute = - inherit Attribute - new: unit -> NoDynamicInvocationAttribute - internal new: isLegacy: bool -> NoDynamicInvocationAttribute - - module Operators = - [] - val inline id: value: 'T -> 'T - \ No newline at end of file From 81b0fc6b81c94ec68367cb47f9002d520e6b270a Mon Sep 17 00:00:00 2001 From: nojaf Date: Mon, 17 Jul 2023 09:54:18 +0200 Subject: [PATCH 16/19] Update VS test --- .../Tests.LanguageService.GotoDefinition.fs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.GotoDefinition.fs b/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.GotoDefinition.fs index b1049408fac..9b2e2b9fe2f 100644 --- a/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.GotoDefinition.fs +++ b/vsintegration/tests/UnitTests/LegacyLanguageService/Tests.LanguageService.GotoDefinition.fs @@ -560,12 +560,12 @@ type UsingMSBuild() = [] member this.``GotoDefinition.OverloadResolutionForProperties``() = let lines = [ "type D() =" - " member this.#1##2#Foo" - " with get(i:int) = 1" + " member this.Foo" + " with #1##2#get(i:int) = 1" " and set (i:int) v = ()" "" - " member this.#3##4#Foo" - " with get (s:string) = 1" + " member this.Foo" + " with #3##4#get (s:string) = 1" " and set (s:string) v = ()" "" "D().$1$Foo 1" From 216766e21e8038f7266f04a896a24119d54dbf96 Mon Sep 17 00:00:00 2001 From: nojaf Date: Wed, 19 Jul 2023 11:06:21 +0200 Subject: [PATCH 17/19] Update syntax tree tests --- tests/service/data/SyntaxTree/Member/Member 10.fs.bsl | 2 +- tests/service/data/SyntaxTree/Member/Member 11.fs.bsl | 2 +- tests/service/data/SyntaxTree/Type/Class 02.fs.bsl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/service/data/SyntaxTree/Member/Member 10.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 10.fs.bsl index 5749df6a18b..05c75ad23db 100644 --- a/tests/service/data/SyntaxTree/Member/Member 10.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 10.fs.bsl @@ -30,7 +30,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), Wild (6,11--6,12), None, ArbitraryAfterError ("memberCore2", (6,12--6,12)), (6,11--6,12), NoneAtInvisible, diff --git a/tests/service/data/SyntaxTree/Member/Member 11.fs.bsl b/tests/service/data/SyntaxTree/Member/Member 11.fs.bsl index a4d4b985c40..75ab7ee9c3b 100644 --- a/tests/service/data/SyntaxTree/Member/Member 11.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/Member 11.fs.bsl @@ -30,7 +30,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), FromParseError (Wild (6,10--6,10), (6,10--6,10)), None, ArbitraryAfterError ("classDefnMember1", (6,10--6,10)), (6,4--6,10), NoneAtInvisible, diff --git a/tests/service/data/SyntaxTree/Type/Class 02.fs.bsl b/tests/service/data/SyntaxTree/Type/Class 02.fs.bsl index f7e959d10a0..951bc97fc0b 100644 --- a/tests/service/data/SyntaxTree/Type/Class 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/Class 02.fs.bsl @@ -24,7 +24,7 @@ ImplFile MemberKind = Member }, SynValInfo ([[SynArgInfo ([], false, None)]; []], - SynArgInfo ([], false, None)), None), + SynArgInfo ([], false, None)), None, None), LongIdent (SynLongIdent ([this; P], [(5,19--5,20)], [None; None]), None, From 662c45cbe137c184c0c863bf188709a90e83f480 Mon Sep 17 00:00:00 2001 From: Florian Verdonck Date: Wed, 19 Jul 2023 13:07:22 +0200 Subject: [PATCH 18/19] Update src/Compiler/SyntaxTree/SyntaxTree.fsi Co-authored-by: dawe --- src/Compiler/SyntaxTree/SyntaxTree.fsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fsi b/src/Compiler/SyntaxTree/SyntaxTree.fsi index b45687bb839..9ed2332f9d6 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fsi +++ b/src/Compiler/SyntaxTree/SyntaxTree.fsi @@ -1178,7 +1178,7 @@ type SynValData = memberFlags: SynMemberFlags option * valInfo: SynValInfo * thisIdOpt: Ident option * - /// Is only used populated during type-checking when an property has both a getter and setter. + /// Is only populated during type-checking when an property has both a getter and setter. /// It is used to track the fact that the getter and setter are part of the same property when they are desugared. transformedFromProperty: Ident option From 3f7d14e8023d5ed7d77eba788bf8a9d2d432e85b Mon Sep 17 00:00:00 2001 From: nojaf Date: Wed, 19 Jul 2023 13:13:05 +0200 Subject: [PATCH 19/19] Remove reverted tests --- tests/service/Symbols.fs | 93 ---------------------------------------- 1 file changed, 93 deletions(-) diff --git a/tests/service/Symbols.fs b/tests/service/Symbols.fs index bd2d4724199..6dbfd2bbaf9 100644 --- a/tests/service/Symbols.fs +++ b/tests/service/Symbols.fs @@ -663,99 +663,6 @@ ignore (Foo().Name) Assert.True usages.[1].IsFromDefinition Assert.True usages.[2].IsFromUse -module Expressions = - [] - let ``Unresolved record field 01`` () = - let _, checkResults = getParseAndCheckResults """ -type R = - { F1: int - F2: int } - -{ F = 1 - F2 = 1 } -""" - getSymbolUses checkResults - |> Seq.exists (fun symbolUse -> symbolUse.IsFromUse && symbolUse.Symbol.DisplayName = "F2") - |> shouldEqual true - - [] - let ``Unresolved record field 02`` () = - let _, checkResults = getParseAndCheckResults """ -[] -type R = - { F1: int - F2: int } - -{ F1 = 1 - R.F2 = 1 } -""" - getSymbolUses checkResults - |> Seq.exists (fun symbolUse -> symbolUse.IsFromUse && symbolUse.Symbol.DisplayName = "F2") - |> shouldEqual true - - [] - let ``Unresolved record field 03`` () = - let _, checkResults = getParseAndCheckResults """ -[] -type R = - { F1: int - F2: int } - -{ R.F2 = 1 - F1 = 1 } -""" - getSymbolUses checkResults - |> Seq.exists (fun symbolUse -> symbolUse.IsFromUse && symbolUse.Symbol.DisplayName = "F2") - |> shouldEqual true - - [] - let ``Unresolved record field 04`` () = - let _, checkResults = getParseAndCheckResults """ -type R = - { F1: int - F2: int } - -match Unchecked.defaultof with -{ F = 1 - F2 = 1 } -> () -""" - getSymbolUses checkResults - |> Seq.exists (fun symbolUse -> symbolUse.IsFromUse && symbolUse.Symbol.DisplayName = "F2") - |> shouldEqual true - - [] - let ``Unresolved record field 05`` () = - let _, checkResults = getParseAndCheckResults """ -[] -type R = - { F1: int - F2: int } - -match Unchecked.defaultof with -{ F = 1 - R.F2 = 1 } -> () -""" - getSymbolUses checkResults - |> Seq.exists (fun symbolUse -> symbolUse.IsFromUse && symbolUse.Symbol.DisplayName = "F2") - |> shouldEqual true - - - [] - let ``Unresolved record field 06`` () = - let _, checkResults = getParseAndCheckResults """ -[] -type R = - { F1: int - F2: int } - -match Unchecked.defaultof with -{ R.F2 = 1 - F = 1 } -> () -""" - getSymbolUses checkResults - |> Seq.exists (fun symbolUse -> symbolUse.IsFromUse && symbolUse.Symbol.DisplayName = "F2") - |> shouldEqual true - module GetValSignatureText = let private assertSignature (expected:string) source (lineNumber, column, line, identifier) = let _, checkResults = getParseAndCheckResults source