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)