@@ -4161,7 +4161,6 @@ End Function
4161
4161
{
4162
4162
var module = state . DeclarationFinder . AllModules . First ( qmn => qmn . ComponentName == "Module1" ) ;
4163
4163
var qualifiedSelection = new QualifiedSelection ( module , selection ) ;
4164
- var references = state . DeclarationFinder . IdentifierReferences ( qualifiedSelection ) . ToList ( ) ;
4165
4164
var reference = state . DeclarationFinder . IdentifierReferences ( qualifiedSelection ) . Last ( ) ;
4166
4165
var referencedDeclaration = reference . Declaration ;
4167
4166
@@ -4174,6 +4173,52 @@ End Function
4174
4173
}
4175
4174
}
4176
4175
4176
+ [ Category ( "Grammar" ) ]
4177
+ [ Category ( "Resolver" ) ]
4178
+ [ Test ]
4179
+ public void IndexExpressionWithoutArgumentsOnFunctionReturningClassWithParameterlessDefaultMemberReferencesFunction ( )
4180
+ {
4181
+ var classCode = @"
4182
+ Public Function Foo() As String
4183
+ Attribute Foo.VB_UserMemId = 0
4184
+ End Function
4185
+ " ;
4186
+
4187
+ var moduleCode = @"
4188
+ Private Sub Bar()
4189
+ Dim baz As Class1
4190
+ Set baz = Foo()
4191
+ End Sub
4192
+
4193
+ Private Function Foo() As Class1
4194
+ End Function
4195
+ " ;
4196
+
4197
+ var vbe = MockVbeBuilder . BuildFromModules (
4198
+ ( "Class1" , classCode , ComponentType . ClassModule ) ,
4199
+ ( "Module1" , moduleCode , ComponentType . StandardModule ) ) ;
4200
+
4201
+ var selection = new Selection ( 4 , 15 , 4 , 18 ) ;
4202
+
4203
+ using ( var state = Resolve ( vbe . Object ) )
4204
+ {
4205
+ var module = state . DeclarationFinder . AllModules . First ( qmn => qmn . ComponentName == "Module1" ) ;
4206
+ var qualifiedSelection = new QualifiedSelection ( module , selection ) ;
4207
+ var reference = state . DeclarationFinder . IdentifierReferences ( qualifiedSelection ) . Last ( ) ;
4208
+ var referencedDeclaration = reference . Declaration ;
4209
+
4210
+ var expectedReferencedDeclarationName = "Module1.Foo" ;
4211
+ var actualReferencedDeclarationName = $ "{ referencedDeclaration . ComponentName } .{ referencedDeclaration . IdentifierName } ";
4212
+
4213
+ var expectedAsTypeName = "Class1" ;
4214
+ var actualAsTypeName = referencedDeclaration . AsTypeName ;
4215
+
4216
+ Assert . AreEqual ( expectedReferencedDeclarationName , actualReferencedDeclarationName ) ;
4217
+ Assert . AreEqual ( expectedAsTypeName , actualAsTypeName ) ;
4218
+ Assert . AreEqual ( 0 , reference . DefaultMemberRecursionDepth ) ;
4219
+ }
4220
+ }
4221
+
4177
4222
[ Category ( "Grammar" ) ]
4178
4223
[ Category ( "Resolver" ) ]
4179
4224
[ Test ]
0 commit comments