diff --git a/tests/service/data/TestTP/ProvidedTypes.fs b/tests/service/data/TestTP/ProvidedTypes.fs index 50dd53a55a4..1df9d3139d1 100644 --- a/tests/service/data/TestTP/ProvidedTypes.fs +++ b/tests/service/data/TestTP/ProvidedTypes.fs @@ -8907,6 +8907,7 @@ namespace ProviderImplementation.ProvidedTypes let enqueueReferencedAssemblies(asm: Assembly) = do sourceAssembliesQueue.Add (fun () -> [| for referencedAssemblyName in asm.GetReferencedAssemblies() do + if not (sourceAssembliesTable_.ContainsKey referencedAssemblyName.Name) then let referencedAssembly = try Assembly.Load(referencedAssemblyName) with _ -> null if not (isNull referencedAssembly) then yield referencedAssembly |]) @@ -8920,12 +8921,12 @@ namespace ProviderImplementation.ProvidedTypes for q in qs do for asm in q() do let simpleName = asm.GetName().Name - if not (sourceAssembliesTable_.ContainsKey(simpleName)) then - sourceAssembliesTable_[simpleName] <- asm + sourceAssembliesTable_.GetOrAdd(simpleName, fun k -> sourceAssemblies_.Add asm // Find the transitive closure of all referenced assemblies enqueueReferencedAssemblies asm - + asm + ) |> ignore sourceAssemblies_ /// When translating quotations, Expr.Var's are translated to new variable respecting reference equality.