Skip to content

Commit 07dde52

Browse files
committed
fixed resolution of global-scope variables conflicting with VBA Standard lib declarations
1 parent 6b0c56a commit 07dde52

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -805,15 +805,22 @@ private Declaration FindModuleScopeProcedure(string identifierName, Declaration
805805

806806
private Declaration FindProjectScopeDeclaration(string identifierName)
807807
{
808-
var matches = _declarations[identifierName];
808+
var matches = _declarations[identifierName].ToList();
809809
try
810810
{
811-
return matches.SingleOrDefault(item =>
811+
return matches.SingleOrDefault(item => !item.IsBuiltIn &&
812812
!item.DeclarationType.HasFlag(DeclarationType.Member)
813813
&& item.DeclarationType != DeclarationType.Event // events can't be called outside the class they're declared in
814814
&& (item.Accessibility == Accessibility.Public
815815
|| item.Accessibility == Accessibility.Global
816-
|| _moduleTypes.Contains(item.DeclarationType) /* because static classes are accessed just like modules */));
816+
|| _moduleTypes.Contains(item.DeclarationType)))
817+
// todo: refactor
818+
?? matches.SingleOrDefault(item => item.IsBuiltIn &&
819+
!item.DeclarationType.HasFlag(DeclarationType.Member)
820+
&& item.DeclarationType != DeclarationType.Event
821+
&& (item.Accessibility == Accessibility.Public
822+
|| item.Accessibility == Accessibility.Global
823+
|| _moduleTypes.Contains(item.DeclarationType)));
817824
}
818825
catch (InvalidOperationException)
819826
{

0 commit comments

Comments
 (0)