Skip to content

Commit 93385bf

Browse files
committed
Fixed issue #2737.
1 parent 8b61706 commit 93385bf

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

Rubberduck.Parsing/Symbols/DeclarationFinder.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,23 @@ public DeclarationFinder(IReadOnlyList<Declaration> declarations, IEnumerable<IA
9898
cls.References.Where(reference => ParserRuleContextHelper.HasParent<VBAParser.ImplementsStmtContext>(reference.Context))
9999
.Select(reference => new { IdentifierReference = reference, Context = ParserRuleContextHelper.GetParent<VBAParser.ImplementsStmtContext>(reference.Context)}));
100100

101-
var interfaceMembers = implementsInstructions.Select(item => new
101+
var interfaceModules = implementsInstructions.Select(item => item.IdentifierReference.Declaration).Distinct();
102+
103+
var interfaceMembers = interfaceModules.Select(item => new
102104
{
103-
InterfaceModule = item.IdentifierReference.Declaration,
104-
InterfaceMembers = _declarations[item.IdentifierReference.Declaration.QualifiedName.QualifiedModuleName]
105-
.Where(member => member.DeclarationType.HasFlag(DeclarationType.Member))
105+
InterfaceModule = item,
106+
InterfaceMembers = _declarations[item.QualifiedName.QualifiedModuleName]
107+
.Where(member => member.DeclarationType.HasFlag(DeclarationType.Member))
106108
});
107109

108110
_interfaceMembers = new Lazy<ConcurrentDictionary<Declaration, Declaration[]>>(() =>
109-
new ConcurrentDictionary<Declaration, Declaration[]>(interfaceMembers.ToDictionary(item => item.InterfaceModule, item => item.InterfaceMembers.ToArray())), true);
111+
new ConcurrentDictionary<Declaration, Declaration[]>(
112+
interfaceMembers.ToDictionary(
113+
item => item.InterfaceModule,
114+
item => item.InterfaceMembers.ToArray()
115+
)
116+
)
117+
, true);
110118

111119
var implementingNames = new Lazy<IEnumerable<string>>(() => implementsInstructions.SelectMany(item =>
112120
_declarations[item.IdentifierReference.Declaration.QualifiedName.QualifiedModuleName]

0 commit comments

Comments
 (0)