From ac3980e9b757dba566204d7f5d4a7acf8421450a Mon Sep 17 00:00:00 2001 From: 0101 <0101@innit.cz> Date: Thu, 27 Apr 2023 14:13:17 +0200 Subject: [PATCH 1/2] Make getting source text async --- src/Compiler/Facilities/BuildGraph.fsi | 2 + src/Compiler/Service/FSharpSource.fs | 19 ++++-- src/Compiler/Service/FSharpSource.fsi | 4 +- src/Compiler/Service/IncrementalBuild.fs | 65 ++++++++++--------- src/Compiler/Service/IncrementalBuild.fsi | 2 +- src/Compiler/Service/service.fs | 4 +- src/Compiler/Service/service.fsi | 2 +- .../TooltipTests.fs | 4 +- tests/FSharp.Test.Utilities/Compiler.fs | 1 + tests/FSharp.Test.Utilities/CompilerAssert.fs | 2 +- .../ProjectGeneration.fs | 3 +- .../LanguageService/LanguageService.fs | 11 ++-- 12 files changed, 68 insertions(+), 51 deletions(-) diff --git a/src/Compiler/Facilities/BuildGraph.fsi b/src/Compiler/Facilities/BuildGraph.fsi index 1bfa2f30cac..afbf9d2898b 100644 --- a/src/Compiler/Facilities/BuildGraph.fsi +++ b/src/Compiler/Facilities/BuildGraph.fsi @@ -70,6 +70,8 @@ type NodeCode = static member Parallel: computations: (NodeCode<'T> seq) -> NodeCode<'T[]> + static member AwaitAsync: computation: Async<'T> -> NodeCode<'T> + static member AwaitTask: task: Task<'T> -> NodeCode<'T> static member AwaitTask: task: Task -> NodeCode diff --git a/src/Compiler/Service/FSharpSource.fs b/src/Compiler/Service/FSharpSource.fs index f2483115b26..fdcf70c28b9 100644 --- a/src/Compiler/Service/FSharpSource.fs +++ b/src/Compiler/Service/FSharpSource.fs @@ -28,7 +28,7 @@ type FSharpSource internal () = abstract TimeStamp: DateTime - abstract GetTextContainer: unit -> TextContainer + abstract GetTextContainer: unit -> Async type private FSharpSourceMemoryMappedFile(filePath: string, timeStamp: DateTime, openStream: unit -> Stream) = inherit FSharpSource() @@ -37,7 +37,8 @@ type private FSharpSourceMemoryMappedFile(filePath: string, timeStamp: DateTime, override _.TimeStamp = timeStamp - override _.GetTextContainer() = openStream () |> TextContainer.Stream + override _.GetTextContainer() = + openStream () |> TextContainer.Stream |> async.Return type private FSharpSourceByteArray(filePath: string, timeStamp: DateTime, bytes: byte[]) = inherit FSharpSource() @@ -48,6 +49,7 @@ type private FSharpSourceByteArray(filePath: string, timeStamp: DateTime, bytes: override _.GetTextContainer() = TextContainer.Stream(new MemoryStream(bytes, 0, bytes.Length, false) :> Stream) + |> async.Return type private FSharpSourceFromFile(filePath: string) = inherit FSharpSource() @@ -56,7 +58,7 @@ type private FSharpSourceFromFile(filePath: string) = override _.TimeStamp = FileSystem.GetLastWriteTimeShim(filePath) - override _.GetTextContainer() = TextContainer.OnDisk + override _.GetTextContainer() = TextContainer.OnDisk |> async.Return type private FSharpSourceCustom(filePath: string, getTimeStamp, getSourceText) = inherit FSharpSource() @@ -66,9 +68,14 @@ type private FSharpSourceCustom(filePath: string, getTimeStamp, getSourceText) = override _.TimeStamp = getTimeStamp () override _.GetTextContainer() = - getSourceText () - |> Option.map TextContainer.SourceText - |> Option.defaultValue TextContainer.OnDisk + async { + let! sourceOpt = getSourceText () + + return + sourceOpt + |> Option.map TextContainer.SourceText + |> Option.defaultValue TextContainer.OnDisk + } type FSharpSource with diff --git a/src/Compiler/Service/FSharpSource.fsi b/src/Compiler/Service/FSharpSource.fsi index 36688631254..ca272a51fef 100644 --- a/src/Compiler/Service/FSharpSource.fsi +++ b/src/Compiler/Service/FSharpSource.fsi @@ -26,7 +26,7 @@ type internal FSharpSource = abstract TimeStamp: DateTime /// Gets the internal text container. Text may be on-disk, in a stream, or a source text. - abstract internal GetTextContainer: unit -> TextContainer + abstract internal GetTextContainer: unit -> Async /// Creates a FSharpSource from disk. Only used internally. static member internal CreateFromFile: filePath: string -> FSharpSource @@ -36,5 +36,5 @@ type internal FSharpSource = /// Creates a FSharpSource. static member Create: - filePath: string * getTimeStamp: (unit -> DateTime) * getSourceText: (unit -> ISourceText option) -> + filePath: string * getTimeStamp: (unit -> DateTime) * getSourceText: (unit -> Async) -> FSharpSource diff --git a/src/Compiler/Service/IncrementalBuild.fs b/src/Compiler/Service/IncrementalBuild.fs index d010a518b80..dc27983338e 100644 --- a/src/Compiler/Service/IncrementalBuild.fs +++ b/src/Compiler/Service/IncrementalBuild.fs @@ -136,38 +136,41 @@ module IncrementalBuildSyntaxTree = ), sourceRange, fileName, [||] let parse (source: FSharpSource) = - IncrementalBuilderEventTesting.MRU.Add(IncrementalBuilderEventTesting.IBEParsed fileName) - use _ = - Activity.start "IncrementalBuildSyntaxTree.parse" - [| - Activity.Tags.fileName, fileName - Activity.Tags.buildPhase, BuildPhase.Parse.ToString() - |] - - try - let diagnosticsLogger = CompilationDiagnosticLogger("Parse", tcConfig.diagnosticsOptions) - // Return the disposable object that cleans up - use _holder = new CompilationGlobalsScope(diagnosticsLogger, BuildPhase.Parse) - use text = source.GetTextContainer() - let input = - match text with - | TextContainer.Stream(stream) -> - ParseOneInputStream(tcConfig, lexResourceManager, fileName, isLastCompiland, diagnosticsLogger, false, stream) - | TextContainer.SourceText(sourceText) -> - ParseOneInputSourceText(tcConfig, lexResourceManager, fileName, isLastCompiland, diagnosticsLogger, sourceText) - | TextContainer.OnDisk -> - ParseOneInputFile(tcConfig, lexResourceManager, fileName, isLastCompiland, diagnosticsLogger, true) - - fileParsed.Trigger fileName - - input, sourceRange, fileName, diagnosticsLogger.GetDiagnostics() - with exn -> - let msg = sprintf "unexpected failure in SyntaxTree.parse\nerror = %s" (exn.ToString()) - System.Diagnostics.Debug.Assert(false, msg) - failwith msg + node { + IncrementalBuilderEventTesting.MRU.Add(IncrementalBuilderEventTesting.IBEParsed fileName) + use _ = + Activity.start "IncrementalBuildSyntaxTree.parse" + [| + Activity.Tags.fileName, fileName + Activity.Tags.buildPhase, BuildPhase.Parse.ToString() + |] + + try + let diagnosticsLogger = CompilationDiagnosticLogger("Parse", tcConfig.diagnosticsOptions) + // Return the disposable object that cleans up + use _holder = new CompilationGlobalsScope(diagnosticsLogger, BuildPhase.Parse) + use! text = source.GetTextContainer() |> NodeCode.AwaitAsync + let input = + match text :?> TextContainer with + | TextContainer.Stream(stream) -> + ParseOneInputStream(tcConfig, lexResourceManager, fileName, isLastCompiland, diagnosticsLogger, false, stream) + | TextContainer.SourceText(sourceText) -> + ParseOneInputSourceText(tcConfig, lexResourceManager, fileName, isLastCompiland, diagnosticsLogger, sourceText) + | TextContainer.OnDisk -> + ParseOneInputFile(tcConfig, lexResourceManager, fileName, isLastCompiland, diagnosticsLogger, true) + + fileParsed.Trigger fileName + + return input, sourceRange, fileName, diagnosticsLogger.GetDiagnostics() + with exn -> + let msg = sprintf "unexpected failure in SyntaxTree.parse\nerror = %s" (exn.ToString()) + System.Diagnostics.Debug.Assert(false, msg) + failwith msg + return Unchecked.defaultof<_> + } /// Parse the given file and return the given input. - member val ParseNode : GraphNode = node { return parse source } |> GraphNode + member val ParseNode : GraphNode = parse source |> GraphNode member _.Invalidate() = SyntaxTree(tcConfig, fileParsed, lexResourceManager, file, hasSignature) @@ -1563,7 +1566,7 @@ type IncrementalBuilder(initialState: IncrementalBuilderInitialState, state: Inc let sourceFiles = sourceFiles - |> List.map (fun (m, fileName, isLastCompiland) -> + |> List.map (fun (m, fileName, isLastCompiland) -> { Range = m; Source = getFSharpSource fileName; Flags = isLastCompiland } ) let initialState = diff --git a/src/Compiler/Service/IncrementalBuild.fsi b/src/Compiler/Service/IncrementalBuild.fsi index ec8d0ed7461..b4e60d403f0 100644 --- a/src/Compiler/Service/IncrementalBuild.fsi +++ b/src/Compiler/Service/IncrementalBuild.fsi @@ -271,7 +271,7 @@ type internal IncrementalBuilder = dependencyProvider: DependencyProvider option * parallelReferenceResolution: ParallelReferenceResolution * captureIdentifiersWhenParsing: bool * - getSource: (string -> ISourceText option) option * + getSource: (string -> Async) option * useChangeNotifications: bool * useSyntaxTreeCache: bool -> NodeCode diff --git a/src/Compiler/Service/service.fs b/src/Compiler/Service/service.fs index cf5487e25df..ba7fcf70a7e 100644 --- a/src/Compiler/Service/service.fs +++ b/src/Compiler/Service/service.fs @@ -52,7 +52,7 @@ module EnvMisc = [] type DocumentSource = | FileSystem - | Custom of (string -> ISourceText option) + | Custom of (string -> Async) /// Callback that indicates whether a requested result has become obsolete. [] @@ -194,7 +194,7 @@ type BackgroundCompiler enablePartialTypeChecking, parallelReferenceResolution, captureIdentifiersWhenParsing, - getSource: (string -> ISourceText option) option, + getSource: (string -> Async) option, useChangeNotifications, useSyntaxTreeCache ) as self = diff --git a/src/Compiler/Service/service.fsi b/src/Compiler/Service/service.fsi index 5d482b3cbed..8e7da679296 100644 --- a/src/Compiler/Service/service.fsi +++ b/src/Compiler/Service/service.fsi @@ -20,7 +20,7 @@ open FSharp.Compiler.Tokenization [] type DocumentSource = | FileSystem - | Custom of (string -> ISourceText option) + | Custom of (string -> Async) /// Used to parse and check F# source code. [] diff --git a/tests/FSharp.Compiler.Service.Tests/TooltipTests.fs b/tests/FSharp.Compiler.Service.Tests/TooltipTests.fs index b76d402c83d..82f4245c29a 100644 --- a/tests/FSharp.Compiler.Service.Tests/TooltipTests.fs +++ b/tests/FSharp.Compiler.Service.Tests/TooltipTests.fs @@ -20,7 +20,7 @@ let testXmlDocFallbackToSigFileWhileInImplFile sigSource implSource line colAtEn "A.fs", SourceText.ofString implSource |] - let documentSource fileName = Map.tryFind fileName files + let documentSource fileName = Map.tryFind fileName files |> async.Return let projectOptions = let _, projectOptions = mkTestFileAndOptions "" Array.empty @@ -267,7 +267,7 @@ let testToolTipSquashing source line colAtEndOfNames lineText names tokenTag = [| "A.fs", SourceText.ofString source |] - let documentSource fileName = Map.tryFind fileName files + let documentSource fileName = Map.tryFind fileName files |> async.Return let projectOptions = let _, projectOptions = mkTestFileAndOptions "" Array.empty diff --git a/tests/FSharp.Test.Utilities/Compiler.fs b/tests/FSharp.Test.Utilities/Compiler.fs index c49e3f35a00..d702509defa 100644 --- a/tests/FSharp.Test.Utilities/Compiler.fs +++ b/tests/FSharp.Test.Utilities/Compiler.fs @@ -838,6 +838,7 @@ module rec Compiler = fun (name: string) -> Map.tryFind name project |> Option.bind (Option.map SourceText.ofString) + |> async.Return let sourceFiles = Array.map fst sourceFiles CompilerAssert.TypeCheckProject(options, sourceFiles, getSourceText) diff --git a/tests/FSharp.Test.Utilities/CompilerAssert.fs b/tests/FSharp.Test.Utilities/CompilerAssert.fs index 742be80cf6e..d018461571b 100644 --- a/tests/FSharp.Test.Utilities/CompilerAssert.fs +++ b/tests/FSharp.Test.Utilities/CompilerAssert.fs @@ -858,7 +858,7 @@ Updated automatically, please check diffs in your pull request, changes must be static member TypeCheckSingleError (source: string) (expectedSeverity: FSharpDiagnosticSeverity) (expectedErrorNumber: int) (expectedErrorRange: int * int * int * int) (expectedErrorMsg: string) = CompilerAssert.TypeCheckWithErrors source [| expectedSeverity, expectedErrorNumber, expectedErrorRange, expectedErrorMsg |] - static member TypeCheckProject(options: string array, sourceFiles: string array, getSourceText: string -> ISourceText option) : FSharpCheckProjectResults = + static member TypeCheckProject(options: string array, sourceFiles: string array, getSourceText) : FSharpCheckProjectResults = let checker = FSharpChecker.Create(documentSource = DocumentSource.Custom getSourceText) let defaultOptions = defaultProjectOptions TargetFramework.Current let projectOptions = { defaultOptions with OtherOptions = Array.append options defaultOptions.OtherOptions; SourceFiles = sourceFiles } diff --git a/tests/FSharp.Test.Utilities/ProjectGeneration.fs b/tests/FSharp.Test.Utilities/ProjectGeneration.fs index 23b2315efee..cd873ddbb0d 100644 --- a/tests/FSharp.Test.Utilities/ProjectGeneration.fs +++ b/tests/FSharp.Test.Utilities/ProjectGeneration.fs @@ -468,7 +468,7 @@ module Helpers = let fileName = "test.fs" - let getSource _ = source |> SourceText.ofString |> Some + let getSource _ = source |> SourceText.ofString |> Some |> async.Return let checker = FSharpChecker.Create( keepAllBackgroundSymbolUses = false, @@ -561,6 +561,7 @@ type ProjectWorkflowBuilder |> renderSourceFile latestProject |> SourceText.ofString |> Some + |> async.Return let checker = defaultArg diff --git a/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs b/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs index dcbafaa0fa0..c9b25aad44d 100644 --- a/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs +++ b/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs @@ -104,10 +104,13 @@ type internal FSharpWorkspaceServiceFactory [ None let getSource filename = - workspace.CurrentSolution.TryGetDocumentFromPath(filename) - |> Option.map (fun document -> - let text = document.GetTextAsync().Result - text.ToFSharpSourceText()) + async { + match workspace.CurrentSolution.TryGetDocumentFromPath filename with + | Some document -> + let! text = document.GetTextAsync() |> Async.AwaitTask + return Some(text.ToFSharpSourceText()) + | None -> return None + } lock gate (fun () -> match checkerSingleton with From cac211a0af4acbbe049446e51f05d1024ce4c56f Mon Sep 17 00:00:00 2001 From: 0101 <0101@innit.cz> Date: Thu, 27 Apr 2023 15:56:32 +0200 Subject: [PATCH 2/2] update surface area --- ...piler.Service.SurfaceArea.netstandard20.debug.bsl | 12 +++++++----- ...ler.Service.SurfaceArea.netstandard20.release.bsl | 6 +++--- 2 files changed, 10 insertions(+), 8 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 4554f2b0539..f9dbb1525c5 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 @@ -1945,8 +1945,8 @@ FSharp.Compiler.AbstractIL.ILBinaryReader: FSharp.Compiler.AbstractIL.ILBinaryRe FSharp.Compiler.AbstractIL.ILBinaryReader: FSharp.Compiler.AbstractIL.ILBinaryReader+MetadataOnlyFlag FSharp.Compiler.AbstractIL.ILBinaryReader: FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag FSharp.Compiler.AbstractIL.ILBinaryReader: FSharp.Compiler.AbstractIL.ILBinaryReader+Shim -FSharp.Compiler.CodeAnalysis.DocumentSource+Custom: Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]] Item -FSharp.Compiler.CodeAnalysis.DocumentSource+Custom: Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]] get_Item() +FSharp.Compiler.CodeAnalysis.DocumentSource+Custom: Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]]] Item +FSharp.Compiler.CodeAnalysis.DocumentSource+Custom: Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]]] get_Item() FSharp.Compiler.CodeAnalysis.DocumentSource+Tags: Int32 Custom FSharp.Compiler.CodeAnalysis.DocumentSource+Tags: Int32 FileSystem FSharp.Compiler.CodeAnalysis.DocumentSource: Boolean IsCustom @@ -1954,7 +1954,7 @@ FSharp.Compiler.CodeAnalysis.DocumentSource: Boolean IsFileSystem FSharp.Compiler.CodeAnalysis.DocumentSource: Boolean get_IsCustom() FSharp.Compiler.CodeAnalysis.DocumentSource: Boolean get_IsFileSystem() FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource FileSystem -FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource NewCustom(Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]]) +FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource NewCustom(Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]]]) FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource get_FileSystem() FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource+Custom FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource+Tags @@ -3972,7 +3972,7 @@ FSharp.Compiler.EditorServices.ToolTipElement: Boolean get_IsNone() FSharp.Compiler.EditorServices.ToolTipElement: FSharp.Compiler.EditorServices.ToolTipElement NewCompositionError(System.String) FSharp.Compiler.EditorServices.ToolTipElement: FSharp.Compiler.EditorServices.ToolTipElement NewGroup(Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.EditorServices.ToolTipElementData]) FSharp.Compiler.EditorServices.ToolTipElement: FSharp.Compiler.EditorServices.ToolTipElement None -FSharp.Compiler.EditorServices.ToolTipElement: FSharp.Compiler.EditorServices.ToolTipElement Single(FSharp.Compiler.Text.TaggedText[], FSharp.Compiler.Symbols.FSharpXmlDoc, Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.TaggedText[]]], Microsoft.FSharp.Core.FSharpOption`1[System.String], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.TaggedText[]]) +FSharp.Compiler.EditorServices.ToolTipElement: FSharp.Compiler.EditorServices.ToolTipElement Single(FSharp.Compiler.Text.TaggedText[], FSharp.Compiler.Symbols.FSharpXmlDoc, Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.TaggedText[]]], Microsoft.FSharp.Core.FSharpOption`1[System.String], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.TaggedText[]], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Symbols.FSharpSymbol]) FSharp.Compiler.EditorServices.ToolTipElement: FSharp.Compiler.EditorServices.ToolTipElement get_None() FSharp.Compiler.EditorServices.ToolTipElement: FSharp.Compiler.EditorServices.ToolTipElement+CompositionError FSharp.Compiler.EditorServices.ToolTipElement: FSharp.Compiler.EditorServices.ToolTipElement+Group @@ -3993,12 +3993,14 @@ FSharp.Compiler.EditorServices.ToolTipElementData: Int32 GetHashCode() FSharp.Compiler.EditorServices.ToolTipElementData: Int32 GetHashCode(System.Collections.IEqualityComparer) FSharp.Compiler.EditorServices.ToolTipElementData: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.TaggedText[]] TypeMapping FSharp.Compiler.EditorServices.ToolTipElementData: Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.TaggedText[]] get_TypeMapping() +FSharp.Compiler.EditorServices.ToolTipElementData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Symbols.FSharpSymbol] Symbol +FSharp.Compiler.EditorServices.ToolTipElementData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Symbols.FSharpSymbol] get_Symbol() FSharp.Compiler.EditorServices.ToolTipElementData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.TaggedText[]] Remarks FSharp.Compiler.EditorServices.ToolTipElementData: Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.TaggedText[]] get_Remarks() FSharp.Compiler.EditorServices.ToolTipElementData: Microsoft.FSharp.Core.FSharpOption`1[System.String] ParamName FSharp.Compiler.EditorServices.ToolTipElementData: Microsoft.FSharp.Core.FSharpOption`1[System.String] get_ParamName() FSharp.Compiler.EditorServices.ToolTipElementData: System.String ToString() -FSharp.Compiler.EditorServices.ToolTipElementData: Void .ctor(FSharp.Compiler.Text.TaggedText[], FSharp.Compiler.Symbols.FSharpXmlDoc, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.TaggedText[]], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.TaggedText[]], Microsoft.FSharp.Core.FSharpOption`1[System.String]) +FSharp.Compiler.EditorServices.ToolTipElementData: Void .ctor(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Symbols.FSharpSymbol], FSharp.Compiler.Text.TaggedText[], FSharp.Compiler.Symbols.FSharpXmlDoc, Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Text.TaggedText[]], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.TaggedText[]], Microsoft.FSharp.Core.FSharpOption`1[System.String]) FSharp.Compiler.EditorServices.ToolTipText: Boolean Equals(FSharp.Compiler.EditorServices.ToolTipText) FSharp.Compiler.EditorServices.ToolTipText: Boolean Equals(System.Object) FSharp.Compiler.EditorServices.ToolTipText: Boolean Equals(System.Object, System.Collections.IEqualityComparer) 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 964ddbf6e56..f9dbb1525c5 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 @@ -1945,8 +1945,8 @@ FSharp.Compiler.AbstractIL.ILBinaryReader: FSharp.Compiler.AbstractIL.ILBinaryRe FSharp.Compiler.AbstractIL.ILBinaryReader: FSharp.Compiler.AbstractIL.ILBinaryReader+MetadataOnlyFlag FSharp.Compiler.AbstractIL.ILBinaryReader: FSharp.Compiler.AbstractIL.ILBinaryReader+ReduceMemoryFlag FSharp.Compiler.AbstractIL.ILBinaryReader: FSharp.Compiler.AbstractIL.ILBinaryReader+Shim -FSharp.Compiler.CodeAnalysis.DocumentSource+Custom: Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]] Item -FSharp.Compiler.CodeAnalysis.DocumentSource+Custom: Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]] get_Item() +FSharp.Compiler.CodeAnalysis.DocumentSource+Custom: Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]]] Item +FSharp.Compiler.CodeAnalysis.DocumentSource+Custom: Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]]] get_Item() FSharp.Compiler.CodeAnalysis.DocumentSource+Tags: Int32 Custom FSharp.Compiler.CodeAnalysis.DocumentSource+Tags: Int32 FileSystem FSharp.Compiler.CodeAnalysis.DocumentSource: Boolean IsCustom @@ -1954,7 +1954,7 @@ FSharp.Compiler.CodeAnalysis.DocumentSource: Boolean IsFileSystem FSharp.Compiler.CodeAnalysis.DocumentSource: Boolean get_IsCustom() FSharp.Compiler.CodeAnalysis.DocumentSource: Boolean get_IsFileSystem() FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource FileSystem -FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource NewCustom(Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]]) +FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource NewCustom(Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Text.ISourceText]]]) FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource get_FileSystem() FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource+Custom FSharp.Compiler.CodeAnalysis.DocumentSource: FSharp.Compiler.CodeAnalysis.DocumentSource+Tags