Skip to content

Commit 783ec08

Browse files
committed
fixed bug in Declaration.AddReference causing duplicate references; added override to pick up unambiguous (grammar-wise) procedure calls.
1 parent ca71cd8 commit 783ec08

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

Rubberduck.Parsing/Symbols/Declaration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void AddReference(IdentifierReference reference)
5656
}
5757

5858
if (reference.Context.Parent != _context
59-
&& !_references.Select(r => r.Context).Contains(reference.Context)
59+
&& !_references.Select(r => r.Context).Contains(reference.Context.Parent)
6060
&& !_references.Any(r => r.QualifiedModuleName == reference.QualifiedModuleName
6161
&& r.Selection.StartLine == reference.Selection.StartLine
6262
&& r.Selection.EndLine == reference.Selection.EndLine

Rubberduck.Parsing/Symbols/IdentifierReferenceListener.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -583,6 +583,11 @@ private Declaration FindProjectScopeDeclaration(string identifierName)
583583

584584
#region IVBAListener overrides
585585

586+
public override void EnterICS_B_ProcedureCall(VBAParser.ICS_B_ProcedureCallContext context)
587+
{
588+
Resolve(context.certainIdentifier(), _currentScope);
589+
}
590+
586591
public override void EnterICS_B_MemberProcedureCall(VBAParser.ICS_B_MemberProcedureCallContext context)
587592
{
588593
if (_alreadyResolved.Contains(context))

0 commit comments

Comments
 (0)