@@ -4190,6 +4190,52 @@ Dim baz As Class1
4190
4190
Set baz = Foo()
4191
4191
End Sub
4192
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
+
4222
+ [ Category ( "Grammar" ) ]
4223
+ [ Category ( "Resolver" ) ]
4224
+ [ Test ]
4225
+ public void SimpleNameExpressionForFunctionWithoutArgumentsAnsdFunctionReturningClassWithParameterlessDefaultMemberReferencesFunction ( )
4226
+ {
4227
+ var classCode = @"
4228
+ Public Function Foo() As String
4229
+ Attribute Foo.VB_UserMemId = 0
4230
+ End Function
4231
+ " ;
4232
+
4233
+ var moduleCode = @"
4234
+ Private Sub Bar()
4235
+ Dim baz As Class1
4236
+ Set baz = Foo
4237
+ End Sub
4238
+
4193
4239
Private Function Foo() As Class1
4194
4240
End Function
4195
4241
" ;
0 commit comments