From 4f04338483687d29461db524753123541fc538cd Mon Sep 17 00:00:00 2001 From: comintern Date: Tue, 14 Feb 2017 17:23:22 -0600 Subject: [PATCH] Add isThreadSafe parameter for Lazys in DeclarationFinder --- Rubberduck.Parsing/Symbols/DeclarationFinder.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs index 42cf8a6a8a..e1bde4fa68 100644 --- a/Rubberduck.Parsing/Symbols/DeclarationFinder.cs +++ b/Rubberduck.Parsing/Symbols/DeclarationFinder.cs @@ -63,10 +63,10 @@ public DeclarationFinder(IReadOnlyList declarations, IEnumerable declaration.DeclarationType == DeclarationType.Parameter) .GroupBy(declaration => declaration.ParentDeclaration).ToConcurrentDictionary(); _userDeclarationsByType = declarations.Where(declaration => !declaration.IsBuiltIn).GroupBy(declaration => declaration.DeclarationType).ToConcurrentDictionary(); - _builtinEvents = new Lazy>(() => FindBuiltInEventHandlers(declarations)); + _builtinEvents = new Lazy>(() => FindBuiltInEventHandlers(declarations), true); - _projects = _projects = new Lazy>(() => new ConcurrentBag(declarations.Where(d => d.DeclarationType == DeclarationType.Project))); - _classes = new Lazy>(() => new ConcurrentBag(declarations.Where(d => d.DeclarationType == DeclarationType.ClassModule))); + _projects = _projects = new Lazy>(() => new ConcurrentBag(declarations.Where(d => d.DeclarationType == DeclarationType.Project)), true); + _classes = new Lazy>(() => new ConcurrentBag(declarations.Where(d => d.DeclarationType == DeclarationType.ClassModule)), true); var withEventsFields = UserDeclarations(DeclarationType.Variable).Where(item => item.IsWithEvents).ToArray(); var events = withEventsFields.Select(field => @@ -88,7 +88,7 @@ public DeclarationFinder(IReadOnlyList declarations, IEnumerable item.WithEventsField, item => item.Handlers.ToArray()) - )); + ), true); _undeclared = new ConcurrentDictionary>(new Dictionary>()); _unresolved = new ConcurrentBag(new List()); @@ -106,12 +106,12 @@ public DeclarationFinder(IReadOnlyList declarations, IEnumerable>(() => - new ConcurrentDictionary(interfaceMembers.ToDictionary(item => item.InterfaceModule, item => item.InterfaceMembers.ToArray()))); + new ConcurrentDictionary(interfaceMembers.ToDictionary(item => item.InterfaceModule, item => item.InterfaceMembers.ToArray())), true); var implementingNames = new Lazy>(() => implementsInstructions.SelectMany(item => _declarations[item.IdentifierReference.Declaration.QualifiedName.QualifiedModuleName] .Where(member => member.DeclarationType.HasFlag(DeclarationType.Member)) - .Select(member => item.IdentifierReference.Declaration.IdentifierName + "_" + member.IdentifierName))); + .Select(member => item.IdentifierReference.Declaration.IdentifierName + "_" + member.IdentifierName)), true); var implementableMembers = implementsInstructions.Select(item => new @@ -123,7 +123,7 @@ public DeclarationFinder(IReadOnlyList declarations, IEnumerable>(() => new ConcurrentDictionary( - implementableMembers.ToDictionary(item => item.Context, item => item.Members))); + implementableMembers.ToDictionary(item => item.Context, item => item.Members)), true); } public IEnumerable Undeclared