Skip to content

Commit 3676cbd

Browse files
committed
fixes #2805
1 parent 676a62c commit 3676cbd

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

Rubberduck.Parsing/Symbols/DeclarationFinder.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,24 @@ public class DeclarationFinder
5858

5959
private static readonly object ThreadLock = new object();
6060

61+
private static QualifiedSelection GetGroupingKey(Declaration declaration)
62+
{
63+
// we want the procedures' whole body, not just their identifier:
64+
return declaration.DeclarationType.HasFlag(DeclarationType.Member)
65+
? new QualifiedSelection(
66+
declaration.QualifiedName.QualifiedModuleName,
67+
declaration.Context.GetSelection())
68+
: declaration.QualifiedSelection;
69+
}
70+
6171
public DeclarationFinder(IReadOnlyList<Declaration> declarations, IEnumerable<IAnnotation> annotations, IReadOnlyList<UnboundMemberDeclaration> unresolvedMemberDeclarations, IHostApplication hostApp = null)
6272
{
6373
_hostApp = hostApp;
6474
_annotations = annotations.GroupBy(node => node.QualifiedSelection.QualifiedName).ToConcurrentDictionary();
6575
_declarations = declarations.GroupBy(item => item.QualifiedName.QualifiedModuleName).ToConcurrentDictionary();
6676
_declarationsByName = declarations.GroupBy(declaration => declaration.IdentifierName.ToLowerInvariant()).ToConcurrentDictionary();
6777
_declarationsBySelection = declarations.Where(declaration => !declaration.IsBuiltIn)
68-
.GroupBy(declaration => declaration.QualifiedSelection)
78+
.GroupBy(GetGroupingKey)
6979
.ToDictionary(group => group.Key, group => group.AsEnumerable());
7080
_referencesBySelection = declarations
7181
.SelectMany(declaration => declaration.References)

0 commit comments

Comments
 (0)