diff --git a/docs/release-notes/.FSharp.Compiler.Service/9.0.200.md b/docs/release-notes/.FSharp.Compiler.Service/9.0.200.md index 7c7f9652b19..3103193f748 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/9.0.200.md +++ b/docs/release-notes/.FSharp.Compiler.Service/9.0.200.md @@ -15,6 +15,7 @@ * Fix locals allocating for the special `copyOfStruct` defensive copy ([PR #18025](https://github.com/dotnet/fsharp/pull/18025)) * Fix lowering of computed array expressions when the expression consists of a simple mapping from a `uint64` or `unativeint` array. [PR #18081](https://github.com/dotnet/fsharp/pull/18081) * Add missing nullable-metadata for C# consumers of records,exceptions and DU subtypes generated from F# code. [PR #18079](https://github.com/dotnet/fsharp/pull/18079) +* Reduce excess memory usage in TransparentCompiler. [PR #17543](https://github.com/dotnet/fsharp/pull/17543) ### Added diff --git a/src/Compiler/Service/FSharpProjectSnapshot.fs b/src/Compiler/Service/FSharpProjectSnapshot.fs index 605e52afe35..030d070a375 100644 --- a/src/Compiler/Service/FSharpProjectSnapshot.fs +++ b/src/Compiler/Service/FSharpProjectSnapshot.fs @@ -747,26 +747,35 @@ and [] FSha FSharpProjectSnapshot.FromOptions(options, getFileSnapshot) -let rec internal snapshotToOptions (projectSnapshot: ProjectSnapshotBase<_>) = - { - ProjectFileName = projectSnapshot.ProjectFileName - ProjectId = projectSnapshot.ProjectId - SourceFiles = projectSnapshot.SourceFiles |> Seq.map (fun x -> x.FileName) |> Seq.toArray - OtherOptions = projectSnapshot.CommandLineOptions |> List.toArray - ReferencedProjects = - projectSnapshot.ReferencedProjects - |> Seq.map (function - | FSharpReference(name, opts) -> FSharpReferencedProject.FSharpReference(name, opts.ProjectSnapshot |> snapshotToOptions) - | PEReference(getStamp, reader) -> FSharpReferencedProject.PEReference(getStamp, reader) - | ILModuleReference(name, getStamp, getReader) -> FSharpReferencedProject.ILModuleReference(name, getStamp, getReader)) - |> Seq.toArray - IsIncompleteTypeCheckEnvironment = projectSnapshot.IsIncompleteTypeCheckEnvironment - UseScriptResolutionRules = projectSnapshot.UseScriptResolutionRules - LoadTime = projectSnapshot.LoadTime - UnresolvedReferences = projectSnapshot.UnresolvedReferences - OriginalLoadReferences = projectSnapshot.OriginalLoadReferences - Stamp = projectSnapshot.Stamp - } +let internal snapshotTable = + ConditionalWeakTable() + +let rec internal snapshotToOptions (projectSnapshot: ProjectSnapshot) = + snapshotTable.GetValue( + projectSnapshot, + fun projectSnapshot -> + { + ProjectFileName = projectSnapshot.ProjectFileName + ProjectId = projectSnapshot.ProjectId + SourceFiles = projectSnapshot.SourceFiles |> Seq.map (fun x -> x.FileName) |> Seq.toArray + OtherOptions = projectSnapshot.CommandLineOptions |> List.toArray + ReferencedProjects = + projectSnapshot.ReferencedProjects + |> Seq.map (function + | FSharpReference(name, opts) -> + FSharpReferencedProject.FSharpReference(name, opts.ProjectSnapshot |> snapshotToOptions) + | PEReference(getStamp, reader) -> FSharpReferencedProject.PEReference(getStamp, reader) + | ILModuleReference(name, getStamp, getReader) -> + FSharpReferencedProject.ILModuleReference(name, getStamp, getReader)) + |> Seq.toArray + IsIncompleteTypeCheckEnvironment = projectSnapshot.IsIncompleteTypeCheckEnvironment + UseScriptResolutionRules = projectSnapshot.UseScriptResolutionRules + LoadTime = projectSnapshot.LoadTime + UnresolvedReferences = projectSnapshot.UnresolvedReferences + OriginalLoadReferences = projectSnapshot.OriginalLoadReferences + Stamp = projectSnapshot.Stamp + } + ) [] type internal Extensions = diff --git a/src/Compiler/Service/TransparentCompiler.fs b/src/Compiler/Service/TransparentCompiler.fs index f5ec26102d3..bc15b6c3b67 100644 --- a/src/Compiler/Service/TransparentCompiler.fs +++ b/src/Compiler/Service/TransparentCompiler.fs @@ -259,44 +259,137 @@ module private TypeCheckingGraphProcessing = return finalFileResults, state } -type internal CompilerCaches(sizeFactor: int) = +type CacheSizes = + { + ParseFileKeepStrongly: int + ParseFileKeepWeakly: int + ParseFileWithoutProjectKeepStrongly: int + ParseFileWithoutProjectKeepWeakly: int + ParseAndCheckFileInProjectKeepStrongly: int + ParseAndCheckFileInProjectKeepWeakly: int + ParseAndCheckAllFilesInProjectKeepStrongly: int + ParseAndCheckAllFilesInProjectKeepWeakly: int + ParseAndCheckProjectKeepStrongly: int + ParseAndCheckProjectKeepWeakly: int + FrameworkImportsKeepStrongly: int + FrameworkImportsKeepWeakly: int + BootstrapInfoStaticKeepStrongly: int + BootstrapInfoStaticKeepWeakly: int + BootstrapInfoKeepStrongly: int + BootstrapInfoKeepWeakly: int + TcLastFileKeepStrongly: int + TcLastFileKeepWeakly: int + TcIntermediateKeepStrongly: int + TcIntermediateKeepWeakly: int + DependencyGraphKeepStrongly: int + DependencyGraphKeepWeakly: int + ProjectExtrasKeepStrongly: int + ProjectExtrasKeepWeakly: int + AssemblyDataKeepStrongly: int + AssemblyDataKeepWeakly: int + SemanticClassificationKeepStrongly: int + SemanticClassificationKeepWeakly: int + ItemKeyStoreKeepStrongly: int + ItemKeyStoreKeepWeakly: int + ScriptClosureKeepStrongly: int + ScriptClosureKeepWeakly: int + } + + static member Create sizeFactor = + + { + ParseFileKeepStrongly = 50 * sizeFactor + ParseFileKeepWeakly = 20 * sizeFactor + ParseFileWithoutProjectKeepStrongly = 5 * sizeFactor + ParseFileWithoutProjectKeepWeakly = 2 * sizeFactor + ParseAndCheckFileInProjectKeepStrongly = sizeFactor + ParseAndCheckFileInProjectKeepWeakly = 2 * sizeFactor + ParseAndCheckAllFilesInProjectKeepStrongly = sizeFactor + ParseAndCheckAllFilesInProjectKeepWeakly = 2 * sizeFactor + ParseAndCheckProjectKeepStrongly = sizeFactor + ParseAndCheckProjectKeepWeakly = 2 * sizeFactor + FrameworkImportsKeepStrongly = sizeFactor + FrameworkImportsKeepWeakly = 2 * sizeFactor + BootstrapInfoStaticKeepStrongly = sizeFactor + BootstrapInfoStaticKeepWeakly = 2 * sizeFactor + BootstrapInfoKeepStrongly = sizeFactor + BootstrapInfoKeepWeakly = 2 * sizeFactor + TcLastFileKeepStrongly = sizeFactor + TcLastFileKeepWeakly = 2 * sizeFactor + TcIntermediateKeepStrongly = 20 * sizeFactor + TcIntermediateKeepWeakly = 20 * sizeFactor + DependencyGraphKeepStrongly = sizeFactor + DependencyGraphKeepWeakly = 2 * sizeFactor + ProjectExtrasKeepStrongly = sizeFactor + ProjectExtrasKeepWeakly = 2 * sizeFactor + AssemblyDataKeepStrongly = sizeFactor + AssemblyDataKeepWeakly = 2 * sizeFactor + SemanticClassificationKeepStrongly = sizeFactor + SemanticClassificationKeepWeakly = 2 * sizeFactor + ItemKeyStoreKeepStrongly = sizeFactor + ItemKeyStoreKeepWeakly = 2 * sizeFactor + ScriptClosureKeepStrongly = sizeFactor + ScriptClosureKeepWeakly = 2 * sizeFactor + } - let sf = sizeFactor + static member Default = + let sizeFactor = 100 + CacheSizes.Create sizeFactor - member _.SizeFactor = sf +type internal CompilerCaches(cacheSizes: CacheSizes) = + let cs = cacheSizes - member val ParseFile = AsyncMemoize(keepStrongly = 50 * sf, keepWeakly = 20 * sf, name = "ParseFile") + member _.CacheSizes = cs + + member val ParseFile = AsyncMemoize(keepStrongly = cs.ParseFileKeepStrongly, keepWeakly = cs.ParseFileKeepWeakly, name = "ParseFile") member val ParseFileWithoutProject = - AsyncMemoize(keepStrongly = 5 * sf, keepWeakly = 2 * sf, name = "ParseFileWithoutProject") + AsyncMemoize( + cs.ParseFileWithoutProjectKeepStrongly, + keepWeakly = cs.ParseFileWithoutProjectKeepWeakly, + name = "ParseFileWithoutProject" + ) - member val ParseAndCheckFileInProject = AsyncMemoize(sf, 2 * sf, name = "ParseAndCheckFileInProject") + member val ParseAndCheckFileInProject = + AsyncMemoize( + cs.ParseAndCheckFileInProjectKeepStrongly, + cs.ParseAndCheckFileInProjectKeepWeakly, + name = "ParseAndCheckFileInProject" + ) - member val ParseAndCheckAllFilesInProject = AsyncMemoizeDisabled(sf, 2 * sf, name = "ParseAndCheckFullProject") + member val ParseAndCheckAllFilesInProject = + AsyncMemoizeDisabled( + cs.ParseAndCheckAllFilesInProjectKeepStrongly, + cs.ParseAndCheckAllFilesInProjectKeepWeakly, + name = "ParseAndCheckFullProject" + ) - member val ParseAndCheckProject = AsyncMemoize(sf, 2 * sf, name = "ParseAndCheckProject") + member val ParseAndCheckProject = + AsyncMemoize(cs.ParseAndCheckProjectKeepStrongly, cs.ParseAndCheckProjectKeepWeakly, name = "ParseAndCheckProject") - member val FrameworkImports = AsyncMemoize(sf, 2 * sf, name = "FrameworkImports") + member val FrameworkImports = AsyncMemoize(cs.FrameworkImportsKeepStrongly, cs.FrameworkImportsKeepWeakly, name = "FrameworkImports") - member val BootstrapInfoStatic = AsyncMemoize(sf, 2 * sf, name = "BootstrapInfoStatic") + member val BootstrapInfoStatic = + AsyncMemoize(cs.BootstrapInfoStaticKeepStrongly, cs.BootstrapInfoStaticKeepWeakly, name = "BootstrapInfoStatic") - member val BootstrapInfo = AsyncMemoize(sf, 2 * sf, name = "BootstrapInfo") + member val BootstrapInfo = AsyncMemoize(cs.BootstrapInfoKeepStrongly, cs.BootstrapInfoKeepWeakly, name = "BootstrapInfo") - member val TcLastFile = AsyncMemoizeDisabled(sf, 2 * sf, name = "TcLastFile") + member val TcLastFile = AsyncMemoizeDisabled(cs.TcLastFileKeepStrongly, cs.TcLastFileKeepWeakly, name = "TcLastFile") - member val TcIntermediate = AsyncMemoize(20 * sf, 20 * sf, name = "TcIntermediate") + member val TcIntermediate = AsyncMemoize(cs.TcIntermediateKeepStrongly, cs.TcIntermediateKeepWeakly, name = "TcIntermediate") - member val DependencyGraph = AsyncMemoize(sf, 2 * sf, name = "DependencyGraph") + member val DependencyGraph = AsyncMemoize(cs.DependencyGraphKeepStrongly, cs.DependencyGraphKeepWeakly, name = "DependencyGraph") - member val ProjectExtras = AsyncMemoizeDisabled(sf, 2 * sf, name = "ProjectExtras") + member val ProjectExtras = AsyncMemoizeDisabled(cs.ProjectExtrasKeepStrongly, cs.ProjectExtrasKeepWeakly, name = "ProjectExtras") - member val AssemblyData = AsyncMemoize(sf, 2 * sf, name = "AssemblyData") + member val AssemblyData = AsyncMemoize(cs.AssemblyDataKeepStrongly, cs.AssemblyDataKeepWeakly, name = "AssemblyData") - member val SemanticClassification = AsyncMemoize(sf, 2 * sf, name = "SemanticClassification") + member val SemanticClassification = + AsyncMemoize(cs.SemanticClassificationKeepStrongly, cs.SemanticClassificationKeepWeakly, name = "SemanticClassification") - member val ItemKeyStore = AsyncMemoize(sf, 2 * sf, name = "ItemKeyStore") + member val ItemKeyStore = AsyncMemoize(cs.ItemKeyStoreKeepStrongly, cs.ItemKeyStoreKeepWeakly, name = "ItemKeyStore") - member val ScriptClosure = AsyncMemoize(sf, 2 * sf, name = "ScriptClosure") + member val ScriptClosure = AsyncMemoize(cs.ScriptClosureKeepStrongly, cs.ScriptClosureKeepWeakly, name = "ScriptClosure") member this.Clear(projects: Set) = let shouldClear project = projects |> Set.contains project @@ -326,7 +419,8 @@ type internal TransparentCompiler parallelReferenceResolution, captureIdentifiersWhenParsing, getSource: (string -> Async) option, - useChangeNotifications + useChangeNotifications, + ?cacheSizes ) as self = let documentSource = @@ -337,8 +431,10 @@ type internal TransparentCompiler // Is having just one of these ok? let lexResourceManager = Lexhelp.LexResourceManager() + let cacheSizes = defaultArg cacheSizes CacheSizes.Default + // Mutable so we can easily clear them by creating a new instance - let mutable caches = CompilerCaches(100) + let mutable caches = CompilerCaches(cacheSizes) // TODO: do we need this? //let maxTypeCheckingParallelism = max 1 (Environment.ProcessorCount / 2) @@ -1371,17 +1467,6 @@ type internal TransparentCompiler node, (fun tcInfo -> - if tcInfo.stateContainsNodes |> Set.contains fileNode then - failwith $"Oops!" - - //if - // tcInfo.stateContainsNodes - // Signature files don't have to be right above the impl file... if we need this check then - // we need to do it differently - // |> Set.contains (NodeToTypeCheck.ArtificialImplFile(index - 1)) - //then - // failwith $"Oops???" - let partialResult, tcState = finisher tcInfo.tcState let tcEnv, topAttribs, _checkImplFileOpt, ccuSigForFile = partialResult @@ -1417,15 +1502,6 @@ type internal TransparentCompiler fileNode, (fun tcInfo -> - if tcInfo.stateContainsNodes |> Set.contains fileNode then - failwith $"Oops!" - - // if - // tcInfo.stateContainsNodes - // |> Set.contains (NodeToTypeCheck.PhysicalFile(index + 1)) - // then - // failwith $"Oops!!!" - let parsedInput = projectSnapshot.SourceFiles[index].ParsedInput let prefixPathOpt = None // Retrieve the type-checked signature information and add it to the TcEnvFromImpls. @@ -2087,9 +2163,13 @@ type internal TransparentCompiler member _.Caches = caches - member _.SetCacheSizeFactor(sizeFactor: int) = - if sizeFactor <> caches.SizeFactor then - caches <- CompilerCaches(sizeFactor) + member _.SetCacheSize(cacheSize: CacheSizes) = + if cacheSize <> caches.CacheSizes then + caches <- CompilerCaches(cacheSize) + + member x.SetCacheSizeFactor(sizeFactor: int) = + let newCacheSize = CacheSizes.Create sizeFactor + x.SetCacheSize newCacheSize interface IBackgroundCompiler with @@ -2151,7 +2231,7 @@ type internal TransparentCompiler member _.ClearCaches() : unit = backgroundCompiler.ClearCaches() - caches <- CompilerCaches(100) // TODO: check + caches <- CompilerCaches(cacheSizes) // TODO: check member _.DownsizeCaches() : unit = backgroundCompiler.DownsizeCaches() diff --git a/src/Compiler/Service/TransparentCompiler.fsi b/src/Compiler/Service/TransparentCompiler.fsi index ed4241f523d..93df10b29e2 100644 --- a/src/Compiler/Service/TransparentCompiler.fsi +++ b/src/Compiler/Service/TransparentCompiler.fsi @@ -98,9 +98,46 @@ type internal Extensions = fileSnapshots: #ProjectSnapshot.IFileSnapshot list * ?extraKeyFlag: DependencyGraphType -> ICacheKey<(DependencyGraphType option * byte array), string> +[] +type CacheSizes = + { ParseFileKeepStrongly: int + ParseFileKeepWeakly: int + ParseFileWithoutProjectKeepStrongly: int + ParseFileWithoutProjectKeepWeakly: int + ParseAndCheckFileInProjectKeepStrongly: int + ParseAndCheckFileInProjectKeepWeakly: int + ParseAndCheckAllFilesInProjectKeepStrongly: int + ParseAndCheckAllFilesInProjectKeepWeakly: int + ParseAndCheckProjectKeepStrongly: int + ParseAndCheckProjectKeepWeakly: int + FrameworkImportsKeepStrongly: int + FrameworkImportsKeepWeakly: int + BootstrapInfoStaticKeepStrongly: int + BootstrapInfoStaticKeepWeakly: int + BootstrapInfoKeepStrongly: int + BootstrapInfoKeepWeakly: int + TcLastFileKeepStrongly: int + TcLastFileKeepWeakly: int + TcIntermediateKeepStrongly: int + TcIntermediateKeepWeakly: int + DependencyGraphKeepStrongly: int + DependencyGraphKeepWeakly: int + ProjectExtrasKeepStrongly: int + ProjectExtrasKeepWeakly: int + AssemblyDataKeepStrongly: int + AssemblyDataKeepWeakly: int + SemanticClassificationKeepStrongly: int + SemanticClassificationKeepWeakly: int + ItemKeyStoreKeepStrongly: int + ItemKeyStoreKeepWeakly: int + ScriptClosureKeepStrongly: int + ScriptClosureKeepWeakly: int } + + static member Create: sizeFactor: int -> CacheSizes + type internal CompilerCaches = - new: sizeFactor: int -> CompilerCaches + new: cacheSizes: CacheSizes -> CompilerCaches member AssemblyData: AsyncMemoize @@ -134,7 +171,7 @@ type internal CompilerCaches = member SemanticClassification: AsyncMemoize<(string * FSharpProjectIdentifier), string, SemanticClassificationView option> - member SizeFactor: int + member CacheSizes: CacheSizes member TcIntermediate: AsyncMemoize<(string * FSharpProjectIdentifier), (string * int), TcIntermediate> @@ -158,7 +195,8 @@ type internal TransparentCompiler = parallelReferenceResolution: ParallelReferenceResolution * captureIdentifiersWhenParsing: bool * getSource: (string -> Async) option * - useChangeNotifications: bool -> + useChangeNotifications: bool * + ?cacheSizes: CacheSizes -> TransparentCompiler member FindReferencesInFile: @@ -177,6 +215,7 @@ type internal TransparentCompiler = fileName: string * projectSnapshot: ProjectSnapshot.ProjectSnapshot * _userOpName: 'a -> Async + member SetCacheSize: cacheSize: CacheSizes -> unit member SetCacheSizeFactor: sizeFactor: int -> unit member Caches: CompilerCaches diff --git a/src/Compiler/Service/service.fs b/src/Compiler/Service/service.fs index 3e42e03223c..4835b784bf8 100644 --- a/src/Compiler/Service/service.fs +++ b/src/Compiler/Service/service.fs @@ -117,7 +117,8 @@ type FSharpChecker captureIdentifiersWhenParsing, getSource, useChangeNotifications, - useTransparentCompiler + useTransparentCompiler, + ?transparentCompilerCacheSizes ) = let backgroundCompiler = @@ -135,7 +136,8 @@ type FSharpChecker parallelReferenceResolution, captureIdentifiersWhenParsing, getSource, - useChangeNotifications + useChangeNotifications, + ?cacheSizes = transparentCompilerCacheSizes ) :> IBackgroundCompiler else @@ -198,7 +200,8 @@ type FSharpChecker ?parallelReferenceResolution: bool, ?captureIdentifiersWhenParsing: bool, ?documentSource: DocumentSource, - ?useTransparentCompiler: bool + ?useTransparentCompiler: bool, + ?transparentCompilerCacheSizes: CacheSizes ) = use _ = Activity.startNoTags "FSharpChecker.Create" @@ -247,7 +250,8 @@ type FSharpChecker | Some(DocumentSource.Custom f) -> Some f | _ -> None), useChangeNotifications, - useTransparentCompiler + useTransparentCompiler, + ?transparentCompilerCacheSizes = transparentCompilerCacheSizes ) member _.UsesTransparentCompiler = useTransparentCompiler = Some true diff --git a/src/Compiler/Service/service.fsi b/src/Compiler/Service/service.fsi index 3e4fde2229c..58c4a8c1dfb 100644 --- a/src/Compiler/Service/service.fsi +++ b/src/Compiler/Service/service.fsi @@ -39,6 +39,7 @@ type public FSharpChecker = /// When set to true we create a set of all identifiers for each parsed file which can be used to speed up finding references. /// Default: FileSystem. You can use Custom source to provide a function that will return the source for a given file path instead of reading it from the file system. Note that with this option the FSharpChecker will also not monitor the file system for file changes. It will expect to be notified of changes via the NotifyFileChanged method. /// Default: false. Indicates whether we use a new experimental background compiler. This does not yet support all features + /// Default: None. The cache sizes for the transparent compiler static member Create: ?projectCacheSize: int * ?keepAssemblyContents: bool * @@ -54,7 +55,9 @@ type public FSharpChecker = [] ?documentSource: DocumentSource * [] ?useTransparentCompiler: - bool -> + bool * + [] ?transparentCompilerCacheSizes: + CacheSizes -> FSharpChecker [] 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 b66bebd1cbc..e079d08a862 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 @@ -2138,7 +2138,7 @@ FSharp.Compiler.CodeAnalysis.FSharpCheckProjectResults: System.String[] Dependen FSharp.Compiler.CodeAnalysis.FSharpCheckProjectResults: System.String[] get_DependencyFiles() FSharp.Compiler.CodeAnalysis.FSharpChecker: Boolean UsesTransparentCompiler FSharp.Compiler.CodeAnalysis.FSharpChecker: Boolean get_UsesTransparentCompiler() -FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpChecker Create(Microsoft.FSharp.Core.FSharpOption`1[System.Int32], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver], Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,System.IntPtr,System.Int32]]]], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.DocumentSource], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean]) +FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpChecker Create(Microsoft.FSharp.Core.FSharpOption`1[System.Int32], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver], Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,System.IntPtr,System.Int32]]]], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.DocumentSource], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes]) FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpChecker Instance FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpChecker get_Instance() FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpProjectOptions GetProjectOptionsFromCommandLineArgs(System.String, System.String[], Microsoft.FSharp.Core.FSharpOption`1[System.DateTime], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean]) @@ -2575,6 +2575,82 @@ FSharp.Compiler.CodeAnalysis.ProjectSnapshot: FSharp.Compiler.CodeAnalysis.Proje FSharp.Compiler.CodeAnalysis.ProjectSnapshot: FSharp.Compiler.CodeAnalysis.ProjectSnapshot+FSharpReferencedProjectSnapshot FSharp.Compiler.CodeAnalysis.ProjectSnapshot: FSharp.Compiler.CodeAnalysis.ProjectSnapshot+ProjectConfig FSharp.Compiler.CodeAnalysis.ProjectSnapshot: FSharp.Compiler.CodeAnalysis.ProjectSnapshot+ReferenceOnDisk +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Boolean Equals(FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Boolean Equals(FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes, System.Collections.IEqualityComparer) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Boolean Equals(System.Object) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Boolean Equals(System.Object, System.Collections.IEqualityComparer) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes Create(Int32) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 AssemblyDataKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 AssemblyDataKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 BootstrapInfoKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 BootstrapInfoKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 BootstrapInfoStaticKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 BootstrapInfoStaticKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 CompareTo(FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 CompareTo(System.Object) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 CompareTo(System.Object, System.Collections.IComparer) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 DependencyGraphKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 DependencyGraphKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 FrameworkImportsKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 FrameworkImportsKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 GetHashCode() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 GetHashCode(System.Collections.IEqualityComparer) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ItemKeyStoreKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ItemKeyStoreKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckAllFilesInProjectKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckAllFilesInProjectKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckFileInProjectKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckFileInProjectKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckProjectKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckProjectKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseFileKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseFileKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseFileWithoutProjectKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseFileWithoutProjectKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ProjectExtrasKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ProjectExtrasKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ScriptClosureKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ScriptClosureKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 SemanticClassificationKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 SemanticClassificationKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 TcIntermediateKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 TcIntermediateKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 TcLastFileKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 TcLastFileKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_AssemblyDataKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_AssemblyDataKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_BootstrapInfoKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_BootstrapInfoKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_BootstrapInfoStaticKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_BootstrapInfoStaticKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_DependencyGraphKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_DependencyGraphKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_FrameworkImportsKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_FrameworkImportsKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ItemKeyStoreKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ItemKeyStoreKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckAllFilesInProjectKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckAllFilesInProjectKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckFileInProjectKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckFileInProjectKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckProjectKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckProjectKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseFileKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseFileKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseFileWithoutProjectKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseFileWithoutProjectKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ProjectExtrasKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ProjectExtrasKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ScriptClosureKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ScriptClosureKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_SemanticClassificationKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_SemanticClassificationKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_TcIntermediateKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_TcIntermediateKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_TcLastFileKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_TcLastFileKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: System.String ToString() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Void .ctor(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32) FSharp.Compiler.CodeAnalysis.Workspace.FSharpWorkspace: FSharp.Compiler.CodeAnalysis.FSharpChecker Checker FSharp.Compiler.CodeAnalysis.Workspace.FSharpWorkspace: FSharp.Compiler.CodeAnalysis.FSharpChecker get_Checker() FSharp.Compiler.CodeAnalysis.Workspace.FSharpWorkspace: FSharpWorkspaceFiles Files 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 b66bebd1cbc..e079d08a862 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 @@ -2138,7 +2138,7 @@ FSharp.Compiler.CodeAnalysis.FSharpCheckProjectResults: System.String[] Dependen FSharp.Compiler.CodeAnalysis.FSharpCheckProjectResults: System.String[] get_DependencyFiles() FSharp.Compiler.CodeAnalysis.FSharpChecker: Boolean UsesTransparentCompiler FSharp.Compiler.CodeAnalysis.FSharpChecker: Boolean get_UsesTransparentCompiler() -FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpChecker Create(Microsoft.FSharp.Core.FSharpOption`1[System.Int32], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver], Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,System.IntPtr,System.Int32]]]], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.DocumentSource], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean]) +FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpChecker Create(Microsoft.FSharp.Core.FSharpOption`1[System.Int32], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.LegacyReferenceResolver], Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Core.FSharpFunc`2[System.Tuple`2[System.String,System.DateTime],Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`3[System.Object,System.IntPtr,System.Int32]]]], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.DocumentSource], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes]) FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpChecker Instance FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpChecker get_Instance() FSharp.Compiler.CodeAnalysis.FSharpChecker: FSharp.Compiler.CodeAnalysis.FSharpProjectOptions GetProjectOptionsFromCommandLineArgs(System.String, System.String[], Microsoft.FSharp.Core.FSharpOption`1[System.DateTime], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean], Microsoft.FSharp.Core.FSharpOption`1[System.Boolean]) @@ -2575,6 +2575,82 @@ FSharp.Compiler.CodeAnalysis.ProjectSnapshot: FSharp.Compiler.CodeAnalysis.Proje FSharp.Compiler.CodeAnalysis.ProjectSnapshot: FSharp.Compiler.CodeAnalysis.ProjectSnapshot+FSharpReferencedProjectSnapshot FSharp.Compiler.CodeAnalysis.ProjectSnapshot: FSharp.Compiler.CodeAnalysis.ProjectSnapshot+ProjectConfig FSharp.Compiler.CodeAnalysis.ProjectSnapshot: FSharp.Compiler.CodeAnalysis.ProjectSnapshot+ReferenceOnDisk +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Boolean Equals(FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Boolean Equals(FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes, System.Collections.IEqualityComparer) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Boolean Equals(System.Object) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Boolean Equals(System.Object, System.Collections.IEqualityComparer) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes Create(Int32) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 AssemblyDataKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 AssemblyDataKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 BootstrapInfoKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 BootstrapInfoKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 BootstrapInfoStaticKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 BootstrapInfoStaticKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 CompareTo(FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 CompareTo(System.Object) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 CompareTo(System.Object, System.Collections.IComparer) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 DependencyGraphKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 DependencyGraphKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 FrameworkImportsKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 FrameworkImportsKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 GetHashCode() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 GetHashCode(System.Collections.IEqualityComparer) +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ItemKeyStoreKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ItemKeyStoreKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckAllFilesInProjectKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckAllFilesInProjectKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckFileInProjectKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckFileInProjectKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckProjectKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseAndCheckProjectKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseFileKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseFileKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseFileWithoutProjectKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ParseFileWithoutProjectKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ProjectExtrasKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ProjectExtrasKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ScriptClosureKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 ScriptClosureKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 SemanticClassificationKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 SemanticClassificationKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 TcIntermediateKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 TcIntermediateKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 TcLastFileKeepStrongly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 TcLastFileKeepWeakly +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_AssemblyDataKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_AssemblyDataKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_BootstrapInfoKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_BootstrapInfoKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_BootstrapInfoStaticKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_BootstrapInfoStaticKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_DependencyGraphKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_DependencyGraphKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_FrameworkImportsKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_FrameworkImportsKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ItemKeyStoreKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ItemKeyStoreKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckAllFilesInProjectKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckAllFilesInProjectKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckFileInProjectKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckFileInProjectKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckProjectKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseAndCheckProjectKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseFileKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseFileKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseFileWithoutProjectKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ParseFileWithoutProjectKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ProjectExtrasKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ProjectExtrasKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ScriptClosureKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_ScriptClosureKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_SemanticClassificationKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_SemanticClassificationKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_TcIntermediateKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_TcIntermediateKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_TcLastFileKeepStrongly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Int32 get_TcLastFileKeepWeakly() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: System.String ToString() +FSharp.Compiler.CodeAnalysis.TransparentCompiler.CacheSizes: Void .ctor(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32) FSharp.Compiler.CodeAnalysis.Workspace.FSharpWorkspace: FSharp.Compiler.CodeAnalysis.FSharpChecker Checker FSharp.Compiler.CodeAnalysis.Workspace.FSharpWorkspace: FSharp.Compiler.CodeAnalysis.FSharpChecker get_Checker() FSharp.Compiler.CodeAnalysis.Workspace.FSharpWorkspace: FSharpWorkspaceFiles Files