Skip to content

Commit 20852f5

Browse files
author
Andrin Meier
committed
replace "as type" binding resolution with new binding expressions + make name lookups case insensitive
1 parent 367f26e commit 20852f5

File tree

7 files changed

+1019
-1005
lines changed

7 files changed

+1019
-1005
lines changed

Rubberduck.Parsing/Binding/MemberAccessTypeBinding.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ private IBoundExpression ResolveProject(IBoundExpression lExpression, string nam
123123
the enclosing project or a referenced project. In this case, the member access expression is
124124
classified as a project and refers to the specified project.
125125
*/
126-
if (_project.Project.Name == name)
126+
if (_declarationFinder.IsMatch(_project.Project.Name, name))
127127
{
128128
return new MemberAccessExpression(_project, ExpressionClassification.Project, GetExpressionContext(), lExpression);
129129
}
@@ -144,7 +144,7 @@ procedural module.
144144
*/
145145
if (lExpressionIsEnclosingProject)
146146
{
147-
if (_module.DeclarationType == DeclarationType.ProceduralModule && _module.IdentifierName == name)
147+
if (_module.DeclarationType == DeclarationType.ProceduralModule && _declarationFinder.IsMatch(_module.IdentifierName, name))
148148
{
149149
return new MemberAccessExpression(_module, ExpressionClassification.ProceduralModule, GetExpressionContext(), lExpression);
150150
}
@@ -173,7 +173,7 @@ member access expression is classified as a type and refers to the specified cla
173173
*/
174174
if (lExpressionIsEnclosingProject)
175175
{
176-
if (_module.DeclarationType == DeclarationType.ClassModule && _module.IdentifierName == name)
176+
if (_module.DeclarationType == DeclarationType.ClassModule && _declarationFinder.IsMatch(_module.IdentifierName, name))
177177
{
178178
return new MemberAccessExpression(_module, ExpressionClassification.Type, GetExpressionContext(), lExpression);
179179
}

Rubberduck.Parsing/Binding/SimpleNameProcedurePointerBinding.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ private IBoundExpression ResolveEnclosingProject(string name)
7171
Enclosing Project namespace: The enclosing project itself or a procedural module contained in
7272
the enclosing project.
7373
*/
74-
if (_project.Project.Name == name)
74+
if (_declarationFinder.IsMatch(_project.Project.Name, name))
7575
{
7676
return new SimpleNameExpression(_project, ExpressionClassification.Project, _expression);
7777
}
78-
if (_module.DeclarationType == DeclarationType.ProceduralModule && _module.IdentifierName == name)
78+
if (_module.DeclarationType == DeclarationType.ProceduralModule && _declarationFinder.IsMatch(_module.IdentifierName, name))
7979
{
8080
return new SimpleNameExpression(_module, ExpressionClassification.ProceduralModule, _expression);
8181
}

Rubberduck.Parsing/Binding/SimpleNameTypeBinding.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ private IBoundExpression ResolveEnclosingProject(string name)
7676
Enclosing Project namespace: The enclosing project itself, a referenced project, or a
7777
procedural module or class module contained in the enclosing project.
7878
*/
79-
if (_project.Project.Name == name)
79+
if (_declarationFinder.IsMatch(_project.Project.Name, name))
8080
{
8181
return new SimpleNameExpression(_project, ExpressionClassification.Project, _expression);
8282
}
@@ -85,7 +85,7 @@ procedural module or class module contained in the enclosing project.
8585
{
8686
return new SimpleNameExpression(referencedProject, ExpressionClassification.Project, _expression);
8787
}
88-
if (_module.DeclarationType == DeclarationType.ProceduralModule && _module.IdentifierName == name)
88+
if (_module.DeclarationType == DeclarationType.ProceduralModule && _declarationFinder.IsMatch(_module.IdentifierName, name))
8989
{
9090
return new SimpleNameExpression(_module, ExpressionClassification.ProceduralModule, _expression);
9191
}
@@ -94,7 +94,7 @@ procedural module or class module contained in the enclosing project.
9494
{
9595
return new SimpleNameExpression(proceduralModuleEnclosingProject, ExpressionClassification.ProceduralModule, _expression);
9696
}
97-
if (_module.DeclarationType == DeclarationType.ClassModule && _module.IdentifierName == name)
97+
if (_module.DeclarationType == DeclarationType.ClassModule && _declarationFinder.IsMatch(_module.IdentifierName, name))
9898
{
9999
return new SimpleNameExpression(_module, ExpressionClassification.Type, _expression);
100100
}

0 commit comments

Comments
 (0)