diff --git a/ReSharper.FSharp/src/FSharp.TypeProviders.Host/FSharp.TypeProviders.Host/src/Hosts/TypeProvidersTestHost.cs b/ReSharper.FSharp/src/FSharp.TypeProviders.Host/FSharp.TypeProviders.Host/src/Hosts/TypeProvidersTestHost.cs index 82bb4c9699..8acdb25de1 100644 --- a/ReSharper.FSharp/src/FSharp.TypeProviders.Host/FSharp.TypeProviders.Host/src/Hosts/TypeProvidersTestHost.cs +++ b/ReSharper.FSharp/src/FSharp.TypeProviders.Host/FSharp.TypeProviders.Host/src/Hosts/TypeProvidersTestHost.cs @@ -1,5 +1,4 @@ -using System.Runtime.InteropServices; -using JetBrains.Core; +using JetBrains.Core; using JetBrains.Rd.Tasks; using JetBrains.Rider.FSharp.TypeProviders.Protocol.Server; using JetBrains.Util; diff --git a/ReSharper.FSharp/src/FSharp/FSharp.Common/FSharp.Common.fsproj b/ReSharper.FSharp/src/FSharp/FSharp.Common/FSharp.Common.fsproj index 0f3525bee3..418b6bec3f 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.Common/FSharp.Common.fsproj +++ b/ReSharper.FSharp/src/FSharp/FSharp.Common/FSharp.Common.fsproj @@ -68,8 +68,8 @@ - - + + diff --git a/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Checker/FcsProjectProvider.fs b/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Checker/FcsProjectProvider.fs index c0612f48d2..17206aa41e 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Checker/FcsProjectProvider.fs +++ b/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Checker/FcsProjectProvider.fs @@ -611,7 +611,7 @@ type FcsProjectProvider(lifetime: Lifetime, solution: ISolution, changeManager: /// which makes FCS cached resolve results stale [] type OutputAssemblyChangeInvalidator(lifetime: Lifetime, outputAssemblies: OutputAssemblies, daemon: IDaemon, - psiFiles: IPsiFiles, fcsProjectProvider: IFcsProjectProvider, typeProvidersShim: IProxyExtensionTypingProvider, + psiFiles: IPsiFiles, fcsProjectProvider: IFcsProjectProvider, typeProvidersShim: ITypeProvidersShim, fcsAssemblyReaderShim: ILazy) = interface ISolutionLoadTasksStartPsiListener2 with diff --git a/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersManager.fs b/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersClient.fs similarity index 52% rename from ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersManager.fs rename to ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersClient.fs index c27b90ea16..b1991a9197 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersManager.fs +++ b/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersClient.fs @@ -6,7 +6,9 @@ open System.Collections.Generic open FSharp.Compiler.TypeProviders open FSharp.Compiler.Text open FSharp.Core.CompilerServices +open JetBrains.Core open JetBrains.Diagnostics +open JetBrains.Lifetimes open JetBrains.ProjectModel open JetBrains.ProjectModel.Build open JetBrains.ReSharper.Plugins.FSharp.Checker @@ -21,31 +23,31 @@ open JetBrains.Rider.FSharp.TypeProviders.Protocol.Client open JetBrains.Util.Concurrency type internal TypeProvidersCache() = - let typeProvidersPerAssembly = ConcurrentDictionary>() + let typeProvidersPerScriptOrProjectOutputPath = ConcurrentDictionary>() let proxyTypeProvidersPerId = ConcurrentDictionary() - let rec addTypeProvider (projectAssembly: string) (tp: IProxyTypeProvider) = - match typeProvidersPerAssembly.TryGetValue(projectAssembly) with + let rec addTypeProvider (scriptOrProjectOutputPath: string) (tp: IProxyTypeProvider) = + match typeProvidersPerScriptOrProjectOutputPath.TryGetValue(scriptOrProjectOutputPath) with | true, assemblyCache -> match assemblyCache.TryGetValue(tp.EntityId) with | true, _ -> () | false, _ -> assemblyCache.TryAdd(tp.EntityId, tp) |> ignore proxyTypeProvidersPerId.TryAdd(tp.EntityId, tp) |> ignore - tp.Disposed.Add(fun _ -> removeTypeProvider projectAssembly tp.EntityId) + tp.Disposed.Add(fun _ -> removeTypeProvider scriptOrProjectOutputPath tp.EntityId) | false, _ -> - typeProvidersPerAssembly.TryAdd(projectAssembly, ConcurrentDictionary()) |> ignore - addTypeProvider projectAssembly tp + typeProvidersPerScriptOrProjectOutputPath.TryAdd(scriptOrProjectOutputPath, ConcurrentDictionary()) |> ignore + addTypeProvider scriptOrProjectOutputPath tp - and removeTypeProvider projectAssembly tpId = - typeProvidersPerAssembly[projectAssembly].TryRemove(tpId) |> ignore + and removeTypeProvider scriptOrProjectOutputPath tpId = + typeProvidersPerScriptOrProjectOutputPath[scriptOrProjectOutputPath].TryRemove(tpId) |> ignore proxyTypeProvidersPerId.TryRemove(tpId) |> ignore - if typeProvidersPerAssembly[projectAssembly].Count = 0 then - typeProvidersPerAssembly.TryRemove(projectAssembly) |> ignore + if typeProvidersPerScriptOrProjectOutputPath[scriptOrProjectOutputPath].Count = 0 then + typeProvidersPerScriptOrProjectOutputPath.TryRemove(scriptOrProjectOutputPath) |> ignore - member x.Add(projectAssembly, tp) = - addTypeProvider projectAssembly tp + member x.Add(scriptOrProjectOutputPath, tp) = + addTypeProvider scriptOrProjectOutputPath tp member x.TryGet(id) = proxyTypeProvidersPerId.TryGetValue(id) @@ -55,7 +57,7 @@ type internal TypeProvidersCache() = | _ -> Assertion.Fail($"Cannot get type provider {id} from TypeProvidersCache"); null member x.Get(projectOutputPath) = - match typeProvidersPerAssembly.TryGetValue(projectOutputPath) with + match typeProvidersPerScriptOrProjectOutputPath.TryGetValue(projectOutputPath) with | true, x -> x.Values | _ -> [||] @@ -69,8 +71,11 @@ type internal TypeProvidersCache() = $"Type Providers:\n{typeProviders}" +type TypeProvidersHostingScope = + | Solution + | Scripts -type IProxyTypeProvidersManager = +type ITypeProvidersClient = abstract member GetOrCreate: runTimeAssemblyFileName: string * designTimeAssemblyNameString: string * @@ -82,28 +87,20 @@ type IProxyTypeProvidersManager = compilerToolsPath: string list * m: range -> ITypeProvider list + abstract member Scope: TypeProvidersHostingScope abstract member Context: TypeProvidersContext - abstract member HasGenerativeTypeProviders: project: IProject -> bool + abstract member IsActive: bool + abstract member RuntimeVersion: string + abstract member Terminate: unit -> unit abstract member Dump: unit -> string -type TypeProvidersManager(connection: TypeProvidersConnection, fcsProjectProvider: IFcsProjectProvider, - scriptPsiModulesProvider: FSharpScriptPsiModulesProvider, - outputAssemblies: OutputAssemblies, enableGenerativeTypeProvidersInMemoryAnalysis) = +[] +type internal TypeProvidersClientBase(lifetimeDef: LifetimeDefinition, connection: TypeProvidersConnection, + enableGenerativeTypeProvidersInMemoryAnalysis) = let protocol = connection.ProtocolModel.RdTypeProviderProcessModel let lifetime = connection.Lifetime let tpContext = TypeProvidersContext(connection, enableGenerativeTypeProvidersInMemoryAnalysis) let typeProviders = TypeProvidersCache() - let lock = SpinWaitLockRef() - let projectsWithGenerativeProviders = HashSet() - - let addProjectWithGenerativeProvider outputPath = - let outputAssemblyPath = VirtualFileSystemPath.Parse(outputPath, InteractionContext.SolutionContext) - Assertion.Assert(not outputAssemblyPath.IsEmpty, "OutputAssemblyPath expected to be not empty") - match outputAssemblies.TryGetProjectByOutputAssemblyLocation(outputAssemblyPath) with - | null -> () - | project -> - use lock = lock.Push() - projectsWithGenerativeProviders.Add(project.GetPersistentID()) |> ignore let disposeTypeProviders (path: string) = let providersToDispose = typeProviders.Get(path) @@ -123,28 +120,21 @@ type TypeProvidersManager(connection: TypeProvidersConnection, fcsProjectProvide | true, provider -> provider.OnInvalidate() | _ -> ())) - fcsProjectProvider.ProjectRemoved.Advise(lifetime, fun (projectKey, fcsProject) -> - use lock = lock.Push() - let project = projectKey.Project - projectsWithGenerativeProviders.Remove(project.GetPersistentID()) |> ignore - disposeTypeProviders fcsProject.OutputPath.FullPath - ) - - scriptPsiModulesProvider.ModuleInvalidated.Advise(lifetime, - fun psiModule -> disposeTypeProviders psiModule.Path.FullPath) + member this.Lifetime = lifetime + member this.DisposeTypeProviders(path: string) = disposeTypeProviders path + abstract member CreateTypeProviders: RdTypeProvider[] * TypeProvidersContext * ResolutionEnvironment -> IProxyTypeProvider list + abstract member Scope: TypeProvidersHostingScope - interface IProxyTypeProvidersManager with + interface ITypeProvidersClient with member x.GetOrCreate(runTimeAssemblyFileName: string, designTimeAssemblyNameString: string, resolutionEnvironment: ResolutionEnvironment, isInvalidationSupported: bool, isInteractive: bool, systemRuntimeContainsType: string -> bool, systemRuntimeAssemblyVersion: Version, compilerToolsPath: string list, m: range) = - let envPath, projectPsiModule = + let envPath = match resolutionEnvironment.OutputFile with - | Some file -> - // todo: module might have been changed after project changes - file, fcsProjectProvider.GetPsiModule(VirtualFileSystemPath.Parse(file, InteractionContext.SolutionContext)) - | None -> m.FileName, None + | Some file -> file + | None -> m.FileName let fakeTcImports = TcImportsHack.GetFakeTcImports(systemRuntimeContainsType) @@ -156,25 +146,96 @@ type TypeProvidersManager(connection: TypeProvidersConnection, fcsProjectProvide isInvalidationSupported, isInteractive, systemRuntimeAssemblyVersion.ToString(), compilerToolsPath |> Array.ofList, fakeTcImports, envPath), RpcTimeouts.Maximal) - [ for tp in result.TypeProviders -> - let tp = new ProxyTypeProvider(tp, tpContext, Option.toObj projectPsiModule) - - if not isInteractive then - tp.ContainsGenerativeTypes.Add(fun _ -> addProjectWithGenerativeProvider envPath) - + [ for tp in x.CreateTypeProviders(result.TypeProviders, tpContext, resolutionEnvironment) -> typeProviders.Add(envPath, tp) tp :> ITypeProvider for id in result.CachedIds -> - typeProviders.Get(id) :> ITypeProvider ]) + typeProviders.Get(id) ]) typeProviderProxies + member this.Scope = this.Scope member this.Context = tpContext + member this.IsActive = connection.IsActive + member this.Terminate() = lifetimeDef.Terminate() + + member this.Dump() = + let this = this :> ITypeProvidersClient + let scope = this.Scope + + if not this.IsActive then $"{scope}: Out-of-process disabled" else + + let inProcessDump = + $"[{scope} - In-Process dump]:\n\n" + $"{typeProviders.Dump()}\n\n{tpContext.Dump()}" + + let outOfProcessDump = + $"[{scope} - Out-Process dump]:\n\n{connection.ProtocolModel.RdTestHost.Dump.Sync(Unit.Instance)}" + + $"{inProcessDump}\n\n{outOfProcessDump}" + + member this.RuntimeVersion = + connection.ProtocolModel.RdTestHost.RuntimeVersion.Sync(Unit.Instance) + + +type internal SolutionTypeProvidersClient(lifetimeDef: LifetimeDefinition, + connection: TypeProvidersConnection, + fcsProjectProvider: IFcsProjectProvider, + outputAssemblies: OutputAssemblies, + enableGenerativeTypeProvidersInMemoryAnalysis) as this = + inherit TypeProvidersClientBase(lifetimeDef, connection, enableGenerativeTypeProvidersInMemoryAnalysis) - member this.HasGenerativeTypeProviders(project) = + let lock = SpinWaitLockRef() + let projectsWithGenerativeProviders = HashSet() + + do + fcsProjectProvider.ProjectRemoved.Advise(this.Lifetime, fun (projectKey, fcsProject) -> use lock = lock.Push() - projectsWithGenerativeProviders.Contains(project.GetPersistentID()) + let project = projectKey.Project + projectsWithGenerativeProviders.Remove(project.GetPersistentID()) |> ignore + this.DisposeTypeProviders(fcsProject.OutputPath.FullPath) + ) - member this.Dump() = - $"{typeProviders.Dump()}\n\n{tpContext.Dump()}" + let addProjectWithGenerativeProvider outputPath = + let outputAssemblyPath = VirtualFileSystemPath.Parse(outputPath, InteractionContext.SolutionContext) + Assertion.Assert(not outputAssemblyPath.IsEmpty, "OutputAssemblyPath expected to be not empty") + match outputAssemblies.TryGetProjectByOutputAssemblyLocation(outputAssemblyPath) with + | null -> () + | project -> + use lock = lock.Push() + projectsWithGenerativeProviders.Add(project.GetPersistentID()) |> ignore + + override this.Scope = TypeProvidersHostingScope.Solution + + override this.CreateTypeProviders(tps, context, resolutionEnv) = + let psiModule = + resolutionEnv.OutputFile + |> Option.bind (fun file -> fcsProjectProvider.GetPsiModule(VirtualFileSystemPath.Parse(file, InteractionContext.SolutionContext))) + |> Option.toObj + + let typeProviders = [ for tp in tps -> new ProxyTypeProvider(tp, context, psiModule) :> IProxyTypeProvider ] + match resolutionEnv.OutputFile with + | None -> () + | Some outputFile -> + for tp in typeProviders do + tp.ContainsGenerativeTypes.Add(fun _ -> addProjectWithGenerativeProvider outputFile) + + typeProviders + + member this.HasGenerativeTypeProviders(project: IProject) = + use lock = lock.Push() + projectsWithGenerativeProviders.Contains(project.GetPersistentID()) + + +type internal ScriptTypeProvidersClient(lifetimeDef: LifetimeDefinition, connection: TypeProvidersConnection, + scriptPsiModulesProvider: FSharpScriptPsiModulesProvider) as this = + inherit TypeProvidersClientBase(lifetimeDef, connection, false) + + do + scriptPsiModulesProvider.ModuleInvalidated.Advise(this.Lifetime, fun psiModule -> + this.DisposeTypeProviders(psiModule.Path.FullPath)) + + override this.Scope = TypeProvidersHostingScope.Scripts + + override this.CreateTypeProviders(tps, context, _) = + [ for tp in tps -> new ProxyTypeProvider(tp, context, null) ] diff --git a/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/ExtensionTypingProviderShim.fs b/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersShim.fs similarity index 51% rename from ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/ExtensionTypingProviderShim.fs rename to ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersShim.fs index 5cc908da15..1e0eb39f19 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/ExtensionTypingProviderShim.fs +++ b/ReSharper.FSharp/src/FSharp/FSharp.Common/src/Shim/TypeProviders/TypeProvidersShim.fs @@ -1,14 +1,16 @@ namespace JetBrains.ReSharper.Plugins.FSharp.Shim.TypeProviders open System +open System.Collections.Concurrent open FSharp.Compiler open FSharp.Compiler.TypeProviders open FSharp.Compiler.Text open FSharp.Core.CompilerServices +open JetBrains open JetBrains.Application.Environment open JetBrains.Application.Environment.Helpers open JetBrains.Application.Parts -open JetBrains.Core +open JetBrains.Diagnostics open JetBrains.Lifetimes open JetBrains.ProjectModel open JetBrains.ProjectModel.Build @@ -19,78 +21,100 @@ open JetBrains.ReSharper.Plugins.FSharp.TypeProviders.Protocol open JetBrains.ReSharper.Plugins.FSharp.TypeProviders.Protocol.Exceptions open JetBrains.ReSharper.Plugins.FSharp.TypeProviders.Protocol.Models -type IProxyExtensionTypingProvider = +type ITypeProvidersShim = inherit IExtensionTypingProvider abstract RuntimeVersion: unit -> string abstract HasGenerativeTypeProviders: project: IProject -> bool abstract DumpTypeProvidersProcess: unit -> string - abstract TypeProvidersManager: IProxyTypeProvidersManager + abstract SolutionTypeProvidersClient: ITypeProvidersClient + [] -type ExtensionTypingProviderShim(solution: ISolution, toolset: ISolutionToolset, - experimentalFeatures: FSharpExperimentalFeaturesProvider, fcsProjectProvider: IFcsProjectProvider, - scriptPsiModulesProvider: FSharpScriptPsiModulesProvider, outputAssemblies: OutputAssemblies, - typeProvidersProcessFactory: TypeProvidersExternalProcessFactory, - productConfigurations: RunsProducts.ProductConfigurations) as this = +type TypeProvidersShim(solution: ISolution, toolset: ISolutionToolset, + experimentalFeatures: FSharpExperimentalFeaturesProvider, + fcsProjectProvider: IFcsProjectProvider, + scriptPsiModulesProvider: FSharpScriptPsiModulesProvider, + outputAssemblies: OutputAssemblies, + typeProvidersProcessFactory: TypeProvidersExternalProcessFactory, + productConfigurations: RunsProducts.ProductConfigurations) as this = + let lifetime = solution.GetSolutionLifetimes().UntilSolutionCloseLifetime let defaultShim = ExtensionTyping.Provider let outOfProcessHosting = lazy experimentalFeatures.OutOfProcessTypeProviders.Value - let generativeTypeProvidersInMemoryAnalysisEnabled = lazy experimentalFeatures.GenerativeTypeProvidersInMemoryAnalysis.Value - let createProcessLockObj = obj() - - let [] mutable connection: TypeProvidersConnection = null - let mutable typeProvidersHostLifetime: LifetimeDefinition = null - let mutable typeProvidersManager = Unchecked.defaultof - - let isConnectionAlive () = - isNotNull connection && connection.IsActive - - let terminateConnection () = - if isConnectionAlive() then typeProvidersHostLifetime.Terminate() - - let connect requestingProjectOutputPath = - if isConnectionAlive () then true else + let analyzeGenerativeTypeProvidersInMemory = lazy experimentalFeatures.GenerativeTypeProvidersInMemoryAnalysis.Value + let clients = ConcurrentDictionary() - lock createProcessLockObj (fun () -> - if isConnectionAlive () then true else + let getSolutionTypeProvidersClient () = + let client = clients.GetValueSafe(TypeProvidersHostingScope.Solution) + if isNull client then Unchecked.defaultof<_> else client.Value - typeProvidersHostLifetime <- Lifetime.Define(lifetime) - let isInternalMode = productConfigurations.IsInternalMode() - let externalProcess = - typeProvidersProcessFactory.Create( - typeProvidersHostLifetime.Lifetime, - requestingProjectOutputPath, - isInternalMode) + let terminateConnections () = + for client in clients.Values do + client.Value.Terminate() - if isNull externalProcess then false else - let newConnection = externalProcess.Run() + clients.Clear() - typeProvidersManager <- TypeProvidersManager(newConnection, fcsProjectProvider, scriptPsiModulesProvider, - outputAssemblies, generativeTypeProvidersInMemoryAnalysisEnabled.Value) :?> _ - connection <- newConnection - true) + let rec connect (scope: TypeProvidersHostingScope) (resolutionEnv: ResolutionEnvironment) = + match clients.TryGetValue(scope) with + | true, client -> + if client.Value.IsActive then + client.Value + else + clients.TryRemove(scope) |> ignore + connect scope resolutionEnv + | _ -> + + let client: ITypeProvidersClient Lazy = + lazy + let clientLifetimeDef = Lifetime.Define(lifetime) + let isInternalMode = productConfigurations.IsInternalMode() + let logPrefix = scope.ToString() + + let externalProcess = + typeProvidersProcessFactory.Create( + clientLifetimeDef.Lifetime, + Option.toObj resolutionEnv.OutputFile, + isInternalMode, logPrefix) + + let connection = externalProcess.Run() + + match scope with + | Solution -> + SolutionTypeProvidersClient(clientLifetimeDef, connection, fcsProjectProvider, outputAssemblies, + analyzeGenerativeTypeProvidersInMemory.Value) :> _ + | Scripts -> + ScriptTypeProvidersClient(clientLifetimeDef, connection, scriptPsiModulesProvider) :> _ + + let client = clients.GetOrAdd(scope, client) + client.Value do lifetime.Bracket((fun () -> ExtensionTyping.Provider <- this), fun () -> ExtensionTyping.Provider <- defaultShim) - toolset.Changed.Advise(lifetime, fun _ -> terminateConnection ()) + toolset.Changed.Advise(lifetime, fun _ -> terminateConnections ()) - interface IProxyExtensionTypingProvider with + interface ITypeProvidersShim with member this.InstantiateTypeProvidersOfAssembly(runTimeAssemblyFileName: string, designTimeAssemblyNameString: string, resolutionEnvironment: ResolutionEnvironment, isInvalidationSupported: bool, isInteractive: bool, systemRuntimeContainsType: string -> bool, systemRuntimeAssemblyVersion: Version, compilerToolsPath: string list, logError: TypeProviderError -> unit, m: range) = + if not outOfProcessHosting.Value then defaultShim.InstantiateTypeProvidersOfAssembly(runTimeAssemblyFileName, designTimeAssemblyNameString, resolutionEnvironment, isInvalidationSupported, isInteractive, systemRuntimeContainsType, systemRuntimeAssemblyVersion, compilerToolsPath, logError, m) else - if not (connect (Option.toObj resolutionEnvironment.OutputFile)) then [] else + let scope = + if isInteractive then TypeProvidersHostingScope.Scripts + else TypeProvidersHostingScope.Solution + + let typeProvidersClient = connect scope resolutionEnvironment + Assertion.Assert(typeProvidersClient.IsActive, "typeProvidersClient.IsActive") try - typeProvidersManager.GetOrCreate(runTimeAssemblyFileName, designTimeAssemblyNameString, + typeProvidersClient.GetOrCreate(runTimeAssemblyFileName, designTimeAssemblyNameString, resolutionEnvironment, isInvalidationSupported, isInteractive, systemRuntimeContainsType, systemRuntimeAssemblyVersion, compilerToolsPath, m) with :? TypeProvidersInstantiationException as e -> @@ -118,28 +142,23 @@ type ExtensionTypingProviderShim(solution: ISolution, toolset: ISolutionToolset, | _ -> defaultShim.DisplayNameOfTypeProvider(provider, fullName) member this.RuntimeVersion() = - if not (isConnectionAlive ()) then null else - - connection.Execute(fun _ -> connection.ProtocolModel.RdTestHost.RuntimeVersion.Sync(Unit.Instance)) + let client = getSolutionTypeProvidersClient() + if isNull client then null else client.RuntimeVersion member this.DumpTypeProvidersProcess() = - if not (isConnectionAlive ()) then raise (InvalidOperationException("Out-of-process disabled")) else - - let inProcessDump = - $"[In-Process dump]:\n\n{typeProvidersManager.Dump()}" - - let outOfProcessDump = - $"[Out-Process dump]:\n\n{connection.Execute(fun _ -> - connection.ProtocolModel.RdTestHost.Dump.Sync(Unit.Instance))}" + clients + |> Seq.map (fun (KeyValue(_, client)) -> client.Value.Dump()) + |> String.concat "\n\n-----------------------------------------------------\n\n" - $"{inProcessDump}\n\n{outOfProcessDump}" + member this.SolutionTypeProvidersClient = getSolutionTypeProvidersClient () member this.HasGenerativeTypeProviders(project) = + let client = getSolutionTypeProvidersClient () // We can determine which projects contain generative provided types // only from type providers hosted out-of-process - isConnectionAlive() && typeProvidersManager.HasGenerativeTypeProviders(project) - - member this.TypeProvidersManager = typeProvidersManager + isNotNull client && + client.IsActive && + client.As().HasGenerativeTypeProviders(project) interface IDisposable with - member this.Dispose() = terminateConnection () + member this.Dispose() = terminateConnections () diff --git a/ReSharper.FSharp/src/FSharp/FSharp.Psi/src/Resolve/ProvidedTypesResolveUtil.cs b/ReSharper.FSharp/src/FSharp/FSharp.Psi/src/Resolve/ProvidedTypesResolveUtil.cs index 252f8a1439..d61549628e 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.Psi/src/Resolve/ProvidedTypesResolveUtil.cs +++ b/ReSharper.FSharp/src/FSharp/FSharp.Psi/src/Resolve/ProvidedTypesResolveUtil.cs @@ -12,8 +12,8 @@ public static bool TryGetProvidedType(IPsiModule psiModule, IClrTypeName name, out ProxyProvidedTypeWithContext providedType) { providedType = null; - var extensionTypingProvider = psiModule.GetSolution().GetComponent(); - return extensionTypingProvider.TypeProvidersManager?.Context.ProvidedAbbreviations.TryGet(psiModule, name, + var typeProvidersShim = psiModule.GetSolution().GetComponent(); + return typeProvidersShim.SolutionTypeProvidersClient?.Context.ProvidedAbbreviations.TryGet(psiModule, name, out providedType) ?? false; } } diff --git a/ReSharper.FSharp/src/FSharp/FSharp.Psi/src/TypeProviders/ProvidedAbbreviationTypePartInvalidator.cs b/ReSharper.FSharp/src/FSharp/FSharp.Psi/src/TypeProviders/ProvidedAbbreviationTypePartInvalidator.cs index a002d8d779..45171833ac 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.Psi/src/TypeProviders/ProvidedAbbreviationTypePartInvalidator.cs +++ b/ReSharper.FSharp/src/FSharp/FSharp.Psi/src/TypeProviders/ProvidedAbbreviationTypePartInvalidator.cs @@ -11,9 +11,9 @@ namespace JetBrains.ReSharper.Plugins.FSharp.Psi.TypeProviders [SolutionComponent(InstantiationEx.LegacyDefault)] public class ProvidedAbbreviationTypePartInvalidator { - private readonly IProxyExtensionTypingProvider myTypeProvidersShim; + private readonly ITypeProvidersShim myTypeProvidersShim; - public ProvidedAbbreviationTypePartInvalidator(Lifetime lifetime, IProxyExtensionTypingProvider typeProvidersShim, + public ProvidedAbbreviationTypePartInvalidator(Lifetime lifetime, ITypeProvidersShim typeProvidersShim, ISymbolCache symbolCache) { myTypeProvidersShim = typeProvidersShim; @@ -25,7 +25,7 @@ public ProvidedAbbreviationTypePartInvalidator(Lifetime lifetime, IProxyExtensio private void InvalidateTypePart(TypePart typePart) { if (typePart is not TypeAbbreviationOrDeclarationPart) return; - if (myTypeProvidersShim.TypeProvidersManager is not { } tpManager) return; + if (myTypeProvidersShim.SolutionTypeProvidersClient is not { } tpManager) return; if (typePart.TypeElement is not { } typeElement) return; tpManager.Context.ProvidedAbbreviations.MarkDirty(typeElement.Module, typeElement.GetClrName()); } diff --git a/ReSharper.FSharp/src/FSharp/FSharp.Tests.Host/FSharpTestHost.fs b/ReSharper.FSharp/src/FSharp/FSharp.Tests.Host/FSharpTestHost.fs index 2cf9b65152..a1e8ac0389 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.Tests.Host/FSharpTestHost.fs +++ b/ReSharper.FSharp/src/FSharp/FSharp.Tests.Host/FSharpTestHost.fs @@ -91,10 +91,10 @@ type FSharpTestHost(solution: ISolution, sourceCache: FSharpSourceCache, itemsCo JetBrains.Core.Unit.Instance let typeProvidersRuntimeVersion _ = - solution.GetComponent().RuntimeVersion() + solution.GetComponent().RuntimeVersion() let dumpTypeProvidersProcess _ = - solution.GetComponent().DumpTypeProvidersProcess() + solution.GetComponent().DumpTypeProvidersProcess() let getCultureInfoAndSetNew (culture: string) = let currentCulture = CultureInfo.CurrentUICulture diff --git a/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/Models/ProxyTypeProvider.cs b/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/Models/ProxyTypeProvider.cs index 1fd3f6f366..4213dd2079 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/Models/ProxyTypeProvider.cs +++ b/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/Models/ProxyTypeProvider.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Reflection; +using JetBrains.Annotations; using JetBrains.Rd.Tasks; using JetBrains.ReSharper.Plugins.FSharp.TypeProviders.Protocol.Cache; using JetBrains.ReSharper.Plugins.FSharp.TypeProviders.Protocol.Exceptions; @@ -27,7 +28,7 @@ public class ProxyTypeProvider : IProxyTypeProvider public RdCustomAttributeData[] Attributes => EmptyArray.Instance; public ProxyTypeProvider(RdTypeProvider rdTypeProvider, TypeProvidersContext typeProvidersContext, - IPsiModule module) + [CanBeNull] IPsiModule module) { PsiModule = module; myRdTypeProvider = rdTypeProvider; diff --git a/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/TypeProvidersExternalProcess.cs b/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/TypeProvidersExternalProcess.cs index 55fd6686b6..131b9b093b 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/TypeProvidersExternalProcess.cs +++ b/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/TypeProvidersExternalProcess.cs @@ -25,6 +25,7 @@ public class private readonly DotNetCoreToolset myToolset; private readonly bool myIsInternalMode; private readonly LoggerModel myLoggerModel; + private readonly string myLogPrefix; private Lifetime myLifetime; protected override string Name => "Out-of-Process TypeProviders"; @@ -93,7 +94,7 @@ private ProcessStartInfo GetCoreProcessStartInfo(int port, FileSystemPath basePa var processStartInfo = new ProcessStartInfo { Arguments = - $"{dotnetArgs} \"{launchPath.FullPath}\" {port} \"{TypeProvidersProtocolConstants.LogFolder.Combine($"{DateTime.UtcNow:yyyy_MM_dd_HH_mm_ss_ffff}.log")}\"", + $"{dotnetArgs} \"{launchPath.FullPath}\" {port} \"{TypeProvidersProtocolConstants.LogFolder.Combine($"{myLogPrefix}_{DateTime.UtcNow:yyyy_MM_dd_HH_mm}.log")}\"", FileName = "exec" }; @@ -142,13 +143,14 @@ protected override bool Shutdown(RdFSharpTypeProvidersModel model) public TypeProvidersExternalProcess(Lifetime lifetime, ILogger logger, IShellLocks locks, IProcessStartInfoPatcher processInfoPatcher, JetProcessRuntimeRequest request, DotNetCoreToolset toolset, - bool isInternalMode, LoggerModel loggerModel) + bool isInternalMode, LoggerModel loggerModel, string logPrefix) : base(lifetime, logger, locks, processInfoPatcher, request, InteractionContext.SolutionContext) { myRequest = request; myToolset = toolset; myIsInternalMode = isInternalMode; myLoggerModel = loggerModel; + myLogPrefix = logPrefix; } } } diff --git a/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/TypeProvidersExternalProcessFactory.cs b/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/TypeProvidersExternalProcessFactory.cs index 5e3c39291c..280429b2fd 100644 --- a/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/TypeProvidersExternalProcessFactory.cs +++ b/ReSharper.FSharp/src/FSharp/FSharp.TypeProviders.Protocol/src/TypeProvidersExternalProcessFactory.cs @@ -44,7 +44,7 @@ public TypeProvidersExternalProcessFactory( [CanBeNull] public TypeProvidersExternalProcess Create(Lifetime lifetime, - [CanBeNull] string requestingProjectOutputPath, bool isInternalMode) + [CanBeNull] string requestingProjectOutputPath, bool isInternalMode, string logPrefix) { var toolset = myToolset.GetDotNetCoreToolset(); var buildTool = myToolset.GetBuildTool(); @@ -89,7 +89,8 @@ public TypeProvidersExternalProcess Create(Lifetime lifetime, runtimeRequest, toolset, isInternalMode, - myLoggerModel); + myLoggerModel, + logPrefix); } } } diff --git a/rider-fsharp/src/test/kotlin/com/jetbrains/rider/plugins/fsharp/test/cases/typeProviders/TypeProvidersCacheTest.kt b/rider-fsharp/src/test/kotlin/com/jetbrains/rider/plugins/fsharp/test/cases/typeProviders/TypeProvidersCacheTest.kt index 60c97aef1a..18ffd1db49 100644 --- a/rider-fsharp/src/test/kotlin/com/jetbrains/rider/plugins/fsharp/test/cases/typeProviders/TypeProvidersCacheTest.kt +++ b/rider-fsharp/src/test/kotlin/com/jetbrains/rider/plugins/fsharp/test/cases/typeProviders/TypeProvidersCacheTest.kt @@ -107,6 +107,11 @@ class TypeProvidersCacheTest : BaseTypeProvidersTest() { @Mute("RIDER-103648") @Test(description = "RIDER-73091") fun script() { + // Force analysis of solution type providers + withOpenedEditor(defaultSourceFile) { + waitForDaemon() + } + checkTypeProviders(File(testGoldFile.path + "_before"), "TypeProviderLibrary/Script.fsx") unloadAllProjects() diff --git a/rider-fsharp/src/test/testData/solutions/TypeProviderLibrary/TypeProviderLibrary/TypeProviderLibrary.fsproj b/rider-fsharp/src/test/testData/solutions/TypeProviderLibrary/TypeProviderLibrary/TypeProviderLibrary.fsproj index 06abf57e5e..b5f2d58fcd 100644 --- a/rider-fsharp/src/test/testData/solutions/TypeProviderLibrary/TypeProviderLibrary/TypeProviderLibrary.fsproj +++ b/rider-fsharp/src/test/testData/solutions/TypeProviderLibrary/TypeProviderLibrary/TypeProviderLibrary.fsproj @@ -16,7 +16,6 @@ - diff --git a/rider-fsharp/src/test/testData/typeProviders/GenerativeTypeProvidersTest/change abbreviation/gold/change abbreviation.gold b/rider-fsharp/src/test/testData/typeProviders/GenerativeTypeProvidersTest/change abbreviation/gold/change abbreviation.gold index 8c9dc53ea6..63689dae7b 100644 --- a/rider-fsharp/src/test/testData/typeProviders/GenerativeTypeProvidersTest/change abbreviation/gold/change abbreviation.gold +++ b/rider-fsharp/src/test/testData/typeProviders/GenerativeTypeProvidersTest/change abbreviation/gold/change abbreviation.gold @@ -1,6 +1,6 @@ Before: -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: 1 ProviderImplementation.SimpleErasingProvider @@ -23,7 +23,7 @@ GUID(GenerativeTypeProvider)-A6CC28E6[.NETStandard,Version=v2.0] = GenerativeTypeProvider.SimpleGenerativeTypeAbbr GenerativeTypeProvider.SimpleGenerativeTypeAbbr+GenerativeSubtype -[Out-Process dump]: +[Solution - Out-Process dump]: Type Providers: 1 ProviderImplementation.SimpleErasingProvider, TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae (from GenerativeTypeProvider.dll) @@ -57,7 +57,7 @@ SevereHighlighters: After: -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: 1 ProviderImplementation.SimpleErasingProvider @@ -80,7 +80,7 @@ GUID(GenerativeTypeProvider)-A6CC28E6[.NETStandard,Version=v2.0] = GenerativeTypeProvider.SimpleGenerativeTypeAbbr1 GenerativeTypeProvider.SimpleGenerativeTypeAbbr1+GenerativeSubtype -[Out-Process dump]: +[Solution - Out-Process dump]: Type Providers: 1 ProviderImplementation.SimpleErasingProvider, TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae (from GenerativeTypeProvider.dll) diff --git a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/checkCachesWhenProjectReloading/gold/checkCachesWhenProjectReloading_after.gold b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/checkCachesWhenProjectReloading/gold/checkCachesWhenProjectReloading_after.gold index 21eb53ccc1..919a3bf501 100644 --- a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/checkCachesWhenProjectReloading/gold/checkCachesWhenProjectReloading_after.gold +++ b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/checkCachesWhenProjectReloading/gold/checkCachesWhenProjectReloading_after.gold @@ -1,4 +1,4 @@ -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: 19 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider @@ -130,7 +130,7 @@ GUID(TypeProviderLibrary)-B9287C3D[.NETStandard,Version=v2.0] = TypeProviderLibrary.SwaggerProvider+PetStore+Tag TypeProviderLibrary.SwaggerProvider+PetStore+User -[Out-Process dump]: +[Solution - Out-Process dump]: Type Providers: 36 ProviderImplementation.SimpleGenerativeProvider, TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae (from TypeProviderLibrary.dll) diff --git a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/checkCachesWhenProjectReloading/gold/checkCachesWhenProjectReloading_before.gold b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/checkCachesWhenProjectReloading/gold/checkCachesWhenProjectReloading_before.gold index 226c3d5664..2ada546f71 100644 --- a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/checkCachesWhenProjectReloading/gold/checkCachesWhenProjectReloading_before.gold +++ b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/checkCachesWhenProjectReloading/gold/checkCachesWhenProjectReloading_before.gold @@ -1,4 +1,4 @@ -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider @@ -130,7 +130,7 @@ GUID(TypeProviderLibrary)-B9287C3D[.NETStandard,Version=v2.0] = TypeProviderLibrary.SwaggerProvider+PetStore+Tag TypeProviderLibrary.SwaggerProvider+PetStore+User -[Out-Process dump]: +[Solution - Out-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider, FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) diff --git a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/invalidation/gold/invalidation_after.gold b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/invalidation/gold/invalidation_after.gold index 46c1b1313a..b0cc96cf0d 100644 --- a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/invalidation/gold/invalidation_after.gold +++ b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/invalidation/gold/invalidation_after.gold @@ -1,4 +1,4 @@ -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider @@ -130,7 +130,7 @@ GUID(TypeProviderLibrary)-B9287C3D[.NETStandard,Version=v2.0] = TypeProviderLibrary.SwaggerProvider+PetStore+Tag TypeProviderLibrary.SwaggerProvider+PetStore+User -[Out-Process dump]: +[Solution - Out-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider, FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) diff --git a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/invalidation/gold/invalidation_before.gold b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/invalidation/gold/invalidation_before.gold index 072e1e87e7..7287798a92 100644 --- a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/invalidation/gold/invalidation_before.gold +++ b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/invalidation/gold/invalidation_before.gold @@ -1,4 +1,4 @@ -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider @@ -129,7 +129,7 @@ GUID(TypeProviderLibrary)-B9287C3D[.NETStandard,Version=v2.0] = TypeProviderLibrary.SwaggerProvider+PetStore+Tag TypeProviderLibrary.SwaggerProvider+PetStore+User -[Out-Process dump]: +[Solution - Out-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider, FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) diff --git a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/projectsWithEqualProviders/gold/projectsWithEqualProviders.gold b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/projectsWithEqualProviders/gold/projectsWithEqualProviders.gold index c4fa8deeaa..d2e25cfa5b 100644 --- a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/projectsWithEqualProviders/gold/projectsWithEqualProviders.gold +++ b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/projectsWithEqualProviders/gold/projectsWithEqualProviders.gold @@ -1,4 +1,4 @@ -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider @@ -145,7 +145,7 @@ GUID(TypeProviderLibrary)-B9287C3D[.NETStandard,Version=v2.0] = TypeProviderLibrary.SwaggerProvider+PetStore+Tag TypeProviderLibrary.SwaggerProvider+PetStore+User -[Out-Process dump]: +[Solution - Out-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider, FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) diff --git a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/script/gold/script_after.gold b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/script/gold/script_after.gold index 5209657c1b..78a043c651 100644 --- a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/script/gold/script_after.gold +++ b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/script/gold/script_after.gold @@ -1,60 +1,101 @@ -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: -2 FSharp.Text.RegexProvider.RegexProvider + + +Provided Types: + + +Provided Assemblies: + + +Provided Abbreviations: + + +[Solution - Out-Process dump]: + +Type Providers: + + +Created by provider Types: + + +Provided Types: + + +Provided Assemblies: + + +ProvidedConstructorInfo: +Count: 0 + +ProvidedMethodInfo: +Count: 0 + +ProvidedPropertyInfo: +Count: 0 + +----------------------------------------------------- + +[Scripts - In-Process dump]: + +Type Providers: +1 FSharp.Text.RegexProvider.RegexProvider Provided Types: -2 FSharp.Text.RegexProvider.Regex (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) -2 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)" (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) -2 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) -2 Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.Boolean (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.Int32 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.String (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.Text.RegularExpressions.Group (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.Text.RegularExpressions.Match (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.Text.RegularExpressions.Regex (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.Text.RegularExpressions.RegexOptions (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -2 System.TimeSpan (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 FSharp.Text.RegexProvider.Regex (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +1 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)" (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +1 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +1 Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from FSharp.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Boolean (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Int32 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.String (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Text.RegularExpressions.Group (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Text.RegularExpressions.Match (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Text.RegularExpressions.Regex (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Text.RegularExpressions.RegexOptions (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.TimeSpan (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) Provided Assemblies: -2 FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a -2 FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null -2 System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a -2 System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a +1 FSharp.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a +1 FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +1 System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a +1 System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + -[Out-Process dump]: +[Scripts - Out-Process dump]: Type Providers: -2 FSharp.Text.RegexProvider.RegexProvider, FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from Script.fsx) +1 FSharp.Text.RegexProvider.RegexProvider, FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from Script.fsx) Created by provider Types: -FSharp.Text.RegexProvider.Regex tp: 2 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) -FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)" tp: 2 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) -FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType tp: 2 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) -Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 2 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 2 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +FSharp.Text.RegexProvider.Regex tp: 1 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)" tp: 1 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType tp: 1 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 1 (from FSharp.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) Provided Types: -System.Boolean tps: 2 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Enum tps: 2 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Int32 tps: 2 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Object tps: 2 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.String tps: 2 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.Capture tps: 2 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.Group tps: 2 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.Match tps: 2 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.Regex tps: 2 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.RegexOptions tps: 2 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.TimeSpan tps: 2 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.ValueType tps: 2 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Boolean tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Enum tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Int32 tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Object tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.String tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.Capture tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.Group tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.Match tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.Regex tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.RegexOptions tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.TimeSpan tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.ValueType tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) Provided Assemblies: -FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 2 -FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null tps: 2 -System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 2 -System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 2 +FSharp.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 +FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null tps: 1 +System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 +System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 ProvidedConstructorInfo: Count: 3 diff --git a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/script/gold/script_before.gold b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/script/gold/script_before.gold index 53d80f9dae..0b15feeadc 100644 --- a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/script/gold/script_before.gold +++ b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/script/gold/script_before.gold @@ -1,4 +1,286 @@ -[In-Process dump]: +[Solution - In-Process dump]: + +Type Providers: +1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider +13 FSharp.Management.DesignTime.WmiExtender +8 FSharp.Management.NamespaceProvider+FileSystemProvider +7 FSharp.Management.NamespaceProvider+RegistrySystemProvider +9 FSharp.Management.NamespaceProvider+RelativeFileSystemProvider +11 FSharp.Management.NamespaceProvider+StringReaderProvider +10 FSharp.Management.NamespaceProvider+SystemTimeZonesProvider +12 FSharp.Management.PowerShellProvider.PowerShellProvider +14 FSharp.Text.RegexProvider.RegexProvider +4 ProviderImplementation.CsvProvider +6 ProviderImplementation.HtmlProvider +2 ProviderImplementation.JsonProvider +17 ProviderImplementation.SimpleErasingProvider +18 ProviderImplementation.SimpleGenerativeProvider +5 ProviderImplementation.WorldBankProvider +3 ProviderImplementation.XmlProvider +15 SwaggerProvider.OpenApiClientTypeProvider +16 SwaggerProvider.SwaggerTypeProvider + +Provided Types: +1 FSharp.Configuration.AppSettings (from FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +1 FSharp.Configuration.IniFile (from FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +1 FSharp.Configuration.YamlConfig (from FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +4 FSharp.Data.CsvProvider (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +6 FSharp.Data.HtmlProvider (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +2 FSharp.Data.JsonProvider (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +5 FSharp.Data.WorldBankData (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +5 FSharp.Data.WorldBankDataProvider (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +3 FSharp.Data.XmlProvider (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +8 FSharp.Management.FileSystem (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +12 FSharp.Management.PowerShellProvider (from FSharp.Management.PowerShell, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +7 FSharp.Management.Registry (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +9 FSharp.Management.RelativePath (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +9 FSharp.Management.RelativePath,relativeTo=".",watch="True" (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +9 FSharp.Management.RelativePath,relativeTo=".",watch="True"+.. (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +9 FSharp.Management.RelativePath,relativeTo=".",watch="True"+bin (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +9 FSharp.Management.RelativePath,relativeTo=".",watch="True"+obj (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +9 FSharp.Management.RelativePath,relativeTo=".",watch="True"+Test (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +11 FSharp.Management.StringReader (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +10 FSharp.Management.SystemTimeZones (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +13 FSharp.Management.WmiProvider (from FSharp.Management.WMI, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +14 FSharp.Text.RegexProvider.Regex (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +14 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)" (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +14 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)",noMethodPrefix="True" (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +14 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)",noMethodPrefix="True"+MatchType (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +14 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +14 FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)" (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +14 FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)"+MatchType (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +17 Microsoft.FSharp.Control.FSharpHandler`1 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +17 Microsoft.FSharp.Control.FSharpHandler`1[System.String] (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +14 Microsoft.FSharp.Core.FSharpFunc`2 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +14 Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)"+MatchType,System.String] (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +14 Microsoft.FSharp.Core.FSharpFunc`2[System.Text.RegularExpressions.Match,System.String] (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +14 Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)",noMethodPrefix="True"+MatchType] (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +14 Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +14 Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)"+MatchType] (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +15 Microsoft.FSharp.Core.Unit (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +17 ProviderImplementation.InternalType (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +17 ProviderImplementation.IPrintable (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +17 SimpleErasingProviderNamespace.AbstractType (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +17 SimpleErasingProviderNamespace.ClassWithInterfaces (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +17 SimpleErasingProviderNamespace.SimpleErasedType (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +18 SimpleGenerativeProviderNamespace.SimpleGenerativeType (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +18 SimpleGenerativeProviderNamespace.SimpleGenerativeType+GenerativeSubtype (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +15 Swagger.ProvidedApiClientBase (from SwaggerProvider.Runtime, Version=1.0.0.0, Culture=neutral) +15 SwaggerProvider.OpenApiClientProvider (from SwaggerProvider.Runtime, Version=1.0.0.0, Culture=neutral) +15 SwaggerProvider.PetStore (from generated assembly) +15 SwaggerProvider.PetStore+ApiResponse (from generated assembly) +15 SwaggerProvider.PetStore+Category (from generated assembly) +15 SwaggerProvider.PetStore+Client (from generated assembly) +15 SwaggerProvider.PetStore+OperationTypes (from generated assembly) +15 SwaggerProvider.PetStore+OperationTypes+UpdatePetWithForm_formUrlEncoded (from generated assembly) +15 SwaggerProvider.PetStore+OperationTypes+UploadFile_formData (from generated assembly) +15 SwaggerProvider.PetStore+Order (from generated assembly) +15 SwaggerProvider.PetStore+Pet (from generated assembly) +15 SwaggerProvider.PetStore+Tag (from generated assembly) +15 SwaggerProvider.PetStore+User (from generated assembly) +16 SwaggerProvider.SwaggerClientProvider (from SwaggerProvider.Runtime, Version=1.0.0.0, Culture=neutral) +9 System.Boolean (from mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089) +14 System.Boolean (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)",noMethodPrefix="True"+MatchType] (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)"+MatchType] (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.Int32 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +15 System.Int64 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +15 System.Net.Http.HttpClient (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +9 System.Object (from mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089) +15 System.Object (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +9 System.String (from mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089) +14 System.String (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.Text.RegularExpressions.Group (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.Text.RegularExpressions.Match (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.Text.RegularExpressions.Regex (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.Text.RegularExpressions.RegexOptions (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +15 System.Threading.Tasks.Task`1 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +15 System.Threading.Tasks.Task`1[Microsoft.FSharp.Core.Unit] (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +14 System.TimeSpan (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +17 System.Void (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) + +Provided Assemblies: +1 FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +14 FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a +4 FSharp.Data, Version=3.3.3.0, Culture=neutral +9 FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null +12 FSharp.Management.PowerShell, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null +13 FSharp.Management.WMI, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null +14 FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +15 generated assembly +9 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 +14 netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 +15 SwaggerProvider.Runtime, Version=1.0.0.0, Culture=neutral +17 TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae + +Provided Abbreviations: +GUID(TypeProviderLibrary)-B9287C3D[.NETStandard,Version=v2.0] = + TypeProviderLibrary.SimpleGenerativeProvider+S + TypeProviderLibrary.SimpleGenerativeProvider+S+GenerativeSubtype + TypeProviderLibrary.SwaggerProvider+PetStore + TypeProviderLibrary.SwaggerProvider+PetStore+ApiResponse + TypeProviderLibrary.SwaggerProvider+PetStore+Category + TypeProviderLibrary.SwaggerProvider+PetStore+Client + TypeProviderLibrary.SwaggerProvider+PetStore+OperationTypes + TypeProviderLibrary.SwaggerProvider+PetStore+OperationTypes+UpdatePetWithForm_formUrlEncoded + TypeProviderLibrary.SwaggerProvider+PetStore+OperationTypes+UploadFile_formData + TypeProviderLibrary.SwaggerProvider+PetStore+Order + TypeProviderLibrary.SwaggerProvider+PetStore+Pet + TypeProviderLibrary.SwaggerProvider+PetStore+Tag + TypeProviderLibrary.SwaggerProvider+PetStore+User + +[Solution - Out-Process dump]: + +Type Providers: +1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider, FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +2 ProviderImplementation.JsonProvider, FSharp.Data.DesignTime, Version=3.3.3.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +3 ProviderImplementation.XmlProvider, FSharp.Data.DesignTime, Version=3.3.3.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +4 ProviderImplementation.CsvProvider, FSharp.Data.DesignTime, Version=3.3.3.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +5 ProviderImplementation.WorldBankProvider, FSharp.Data.DesignTime, Version=3.3.3.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +6 ProviderImplementation.HtmlProvider, FSharp.Data.DesignTime, Version=3.3.3.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +7 FSharp.Management.NamespaceProvider+RegistrySystemProvider, FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +8 FSharp.Management.NamespaceProvider+FileSystemProvider, FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +9 FSharp.Management.NamespaceProvider+RelativeFileSystemProvider, FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +10 FSharp.Management.NamespaceProvider+SystemTimeZonesProvider, FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +11 FSharp.Management.NamespaceProvider+StringReaderProvider, FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +12 FSharp.Management.PowerShellProvider.PowerShellProvider, FSharp.Management.PowerShell, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +13 FSharp.Management.DesignTime.WmiExtender, FSharp.Management.WMI.DesignTime, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +14 FSharp.Text.RegexProvider.RegexProvider, FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +15 SwaggerProvider.OpenApiClientTypeProvider, SwaggerProvider.DesignTime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +16 SwaggerProvider.SwaggerTypeProvider, SwaggerProvider.DesignTime, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll) +17 ProviderImplementation.SimpleErasingProvider, TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae (from TypeProviderLibrary.dll) +18 ProviderImplementation.SimpleGenerativeProvider, TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae (from TypeProviderLibrary.dll) + +Created by provider Types: +FSharp.Configuration.AppSettings tp: 1 (from FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Configuration.IniFile tp: 1 (from FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Configuration.YamlConfig tp: 1 (from FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Data.CsvProvider tp: 4 (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +FSharp.Data.HtmlProvider tp: 6 (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +FSharp.Data.JsonProvider tp: 2 (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +FSharp.Data.WorldBankData tp: 5 (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +FSharp.Data.WorldBankDataProvider tp: 5 (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +FSharp.Data.XmlProvider tp: 3 (from FSharp.Data, Version=3.3.3.0, Culture=neutral) +FSharp.Management.FileSystem tp: 8 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.PowerShellProvider tp: 12 (from FSharp.Management.PowerShell, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.Registry tp: 7 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.RelativePath tp: 9 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.RelativePath,relativeTo=".",watch="True" tp: 9 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.RelativePath,relativeTo=".",watch="True"+.. tp: 9 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.RelativePath,relativeTo=".",watch="True"+bin tp: 9 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.RelativePath,relativeTo=".",watch="True"+obj tp: 9 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.RelativePath,relativeTo=".",watch="True"+Test tp: 9 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.StringReader tp: 11 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.SystemTimeZones tp: 10 (from FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Management.WmiProvider tp: 13 (from FSharp.Management.WMI, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex tp: 14 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)" tp: 14 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)",noMethodPrefix="True" tp: 14 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)",noMethodPrefix="True"+MatchType tp: 14 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType tp: 14 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)" tp: 14 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)"+MatchType tp: 14 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) +Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)"+MatchType,System.String] tp: 14 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)",noMethodPrefix="True"+MatchType] tp: 14 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 14 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)"+MatchType] tp: 14 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +SimpleErasingProviderNamespace.AbstractType tp: 17 (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +SimpleErasingProviderNamespace.ClassWithInterfaces tp: 17 (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +SimpleErasingProviderNamespace.SimpleErasedType tp: 17 (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +SimpleGenerativeProviderNamespace.SimpleGenerativeType tp: 18 (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +SimpleGenerativeProviderNamespace.SimpleGenerativeType+GenerativeSubtype tp: 18 (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +SwaggerProvider.OpenApiClientProvider tp: 15 (from SwaggerProvider.Runtime, Version=1.0.0.0, Culture=neutral) +SwaggerProvider.PetStore tp: 15 (from generated assembly) +SwaggerProvider.PetStore+ApiResponse tp: 15 (from generated assembly) +SwaggerProvider.PetStore+Category tp: 15 (from generated assembly) +SwaggerProvider.PetStore+Client tp: 15 (from generated assembly) +SwaggerProvider.PetStore+OperationTypes tp: 15 (from generated assembly) +SwaggerProvider.PetStore+OperationTypes+UpdatePetWithForm_formUrlEncoded tp: 15 (from generated assembly) +SwaggerProvider.PetStore+OperationTypes+UploadFile_formData tp: 15 (from generated assembly) +SwaggerProvider.PetStore+Order tp: 15 (from generated assembly) +SwaggerProvider.PetStore+Pet tp: 15 (from generated assembly) +SwaggerProvider.PetStore+Tag tp: 15 (from generated assembly) +SwaggerProvider.PetStore+Tag[] tp: 15 (from generated assembly) +SwaggerProvider.PetStore+User tp: 15 (from generated assembly) +SwaggerProvider.SwaggerClientProvider tp: 16 (from SwaggerProvider.Runtime, Version=1.0.0.0, Culture=neutral) +System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)",noMethodPrefix="True"+MatchType] tp: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?\\d+)"+MatchType] tp: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1[SwaggerProvider.PetStore+ApiResponse] tp: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1[SwaggerProvider.PetStore+Order] tp: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1[SwaggerProvider.PetStore+Pet[]] tp: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1[SwaggerProvider.PetStore+Pet] tp: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1[SwaggerProvider.PetStore+User] tp: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) + +Provided Types: +FSharp.Configuration.YamlConfigTypeProvider+Root tps: 1 (from FSharp.Configuration, Version=1.0.0.0, Culture=neutral) +Microsoft.FSharp.Control.FSharpHandler`1 tps: 17 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Control.FSharpHandler`1[System.String] tps: 17 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Core.FSharpFunc`2 tps: 14 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Core.FSharpFunc`2[System.Text.RegularExpressions.Match,System.String] tps: 14 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Core.FSharpOption`1[System.Int64] tps: 15 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Core.Unit tps: 15|17 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +ProviderImplementation.InternalType tps: 17 (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +ProviderImplementation.IPrintable tps: 17 (from TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae) +Swagger.ProvidedApiClientBase tps: 15 (from SwaggerProvider.Runtime, Version=1.0.0.0, Culture=neutral) +System.Boolean tps: 14|15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Boolean tps: 9 (from mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089) +System.Enum tps: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Int32 tps: 14|17 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Int64 tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.MulticastDelegate tps: 17 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Net.Http.HttpClient tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Net.Http.HttpMessageInvoker tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Object tps: 1|14|15|16|17|18 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Object tps: 7|8|9|10|11|12|13 (from mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089) +System.String tps: 14|15|17|18 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.String tps: 9 (from mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089) +System.String[] tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Text.RegularExpressions.Capture tps: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Text.RegularExpressions.Group tps: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Text.RegularExpressions.Match tps: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Text.RegularExpressions.Regex tps: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Text.RegularExpressions.RegexOptions tps: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1 tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1[Microsoft.FSharp.Core.Unit] tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1[System.Object] tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.Threading.Tasks.Task`1[System.String] tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.TimeSpan tps: 14 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.ValueType tps: 14|15|17 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +System.ValueType tps: 9 (from mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089) +System.Void tps: 15|17|18 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) +T tps: 14|17 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +TResult tps: 14 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +TResult tps: 15 (from netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51) + +Provided Assemblies: +FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null tps: 1 +FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 14|15|17 +FSharp.Data, Version=3.3.3.0, Culture=neutral tps: 2|3|4|5|6 +FSharp.Management, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null tps: 7|8|9|10|11 +FSharp.Management.PowerShell, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null tps: 12 +FSharp.Management.WMI, Version=0.4.5.0, Culture=neutral, PublicKeyToken=null tps: 13 +FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null tps: 14 +generated assembly tps: 15 +mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 tps: 7|9 +netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 tps: 1|14|15|17 +SwaggerProvider.Runtime, Version=1.0.0.0, Culture=neutral tps: 15|16 +TestTypeProviders, Version=1.0.0.0, Culture=neutral, PublicKeyToken=333a98252ac829ae tps: 17|18 + +ProvidedConstructorInfo: +Count: 20 + +ProvidedMethodInfo: +Count: 177 + +ProvidedPropertyInfo: +Count: 25 + +----------------------------------------------------- + +[Scripts - In-Process dump]: Type Providers: 1 FSharp.Text.RegexProvider.RegexProvider @@ -7,24 +289,26 @@ Provided Types: 1 FSharp.Text.RegexProvider.Regex (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) 1 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)" (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) 1 FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) -1 Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.Boolean (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.Int32 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.String (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.Text.RegularExpressions.Group (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.Text.RegularExpressions.Match (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.Text.RegularExpressions.Regex (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.Text.RegularExpressions.RegexOptions (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -1 System.TimeSpan (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from FSharp.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Boolean (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Int32 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.String (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Text.RegularExpressions.Group (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Text.RegularExpressions.Match (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Text.RegularExpressions.Regex (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.Text.RegularExpressions.RegexOptions (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +1 System.TimeSpan (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) Provided Assemblies: -1 FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a +1 FSharp.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 1 FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null -1 System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a -1 System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a +1 System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a +1 System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + -[Out-Process dump]: +[Scripts - Out-Process dump]: Type Providers: 1 FSharp.Text.RegexProvider.RegexProvider, FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from Script.fsx) @@ -33,28 +317,28 @@ Created by provider Types: FSharp.Text.RegexProvider.Regex tp: 1 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)" tp: 1 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType tp: 1 (from FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null) -Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 1 (from FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 1 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +Microsoft.FSharp.Core.FSharpOption`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 1 (from FSharp.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Collections.Generic.IEnumerable`1[FSharp.Text.RegexProvider.Regex,pattern="(?^\\d{3})-(?\\d{3}-\\d{4}$)"+MatchType] tp: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) Provided Types: -System.Boolean tps: 1 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Enum tps: 1 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Int32 tps: 1 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Object tps: 1 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.String tps: 1 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.Capture tps: 1 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.Group tps: 1 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.Match tps: 1 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.Regex tps: 1 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.Text.RegularExpressions.RegexOptions tps: 1 (from System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.TimeSpan tps: 1 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) -System.ValueType tps: 1 (from System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Boolean tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Enum tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Int32 tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Object tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.String tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.Capture tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.Group tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.Match tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.Regex tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.Text.RegularExpressions.RegexOptions tps: 1 (from System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.TimeSpan tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) +System.ValueType tps: 1 (from System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a) Provided Assemblies: -FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 +FSharp.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 FSharp.Text.RegexProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null tps: 1 -System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 -System.Text.RegularExpressions, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 +System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 +System.Text.RegularExpressions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a tps: 1 ProvidedConstructorInfo: Count: 3 diff --git a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/typing/gold/typing.gold b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/typing/gold/typing.gold index 226c3d5664..2ada546f71 100644 --- a/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/typing/gold/typing.gold +++ b/rider-fsharp/src/test/testData/typeProviders/TypeProvidersCacheTest/typing/gold/typing.gold @@ -1,4 +1,4 @@ -[In-Process dump]: +[Solution - In-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider @@ -130,7 +130,7 @@ GUID(TypeProviderLibrary)-B9287C3D[.NETStandard,Version=v2.0] = TypeProviderLibrary.SwaggerProvider+PetStore+Tag TypeProviderLibrary.SwaggerProvider+PetStore+User -[Out-Process dump]: +[Solution - Out-Process dump]: Type Providers: 1 FSharp.Configuration.ConfigTypeProvider+FSharpConfigurationProvider, FSharp.Configuration, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (from TypeProviderLibrary.dll)