@@ -395,7 +395,7 @@ public override void VisitEventReference(IEventReferenceOperation operation)
395395 base . VisitEventReference ( operation ) ;
396396
397397 if ( operation . Syntax is MemberAccessExpressionSyntax memberAccess )
398- VisitIfExplicitStaticReceiver ( operation . SemanticModel ! , memberAccess ) ;
398+ VisitIfExplicitTypeName ( operation . SemanticModel ! , memberAccess . Expression ) ;
399399
400400 declarationVisitor . VisitReference ( operation . Event , declaringSymbol , ( ) => [ operation . Syntax switch
401401 {
@@ -409,7 +409,7 @@ public override void VisitFieldReference(IFieldReferenceOperation operation)
409409 base . VisitFieldReference ( operation ) ;
410410
411411 if ( operation . Syntax is MemberAccessExpressionSyntax memberAccess )
412- VisitIfExplicitStaticReceiver ( operation . SemanticModel ! , memberAccess ) ;
412+ VisitIfExplicitTypeName ( operation . SemanticModel ! , memberAccess . Expression ) ;
413413
414414 declarationVisitor . VisitReference ( operation . Field , declaringSymbol , ( ) => [ operation . Syntax switch
415415 {
@@ -423,7 +423,7 @@ public override void VisitInvocation(IInvocationOperation operation)
423423 base . VisitInvocation ( operation ) ;
424424
425425 if ( operation . Syntax is InvocationExpressionSyntax { Expression : MemberAccessExpressionSyntax memberAccess } )
426- VisitIfExplicitStaticReceiver ( operation . SemanticModel ! , memberAccess ) ;
426+ VisitIfExplicitTypeName ( operation . SemanticModel ! , memberAccess . Expression ) ;
427427
428428 declarationVisitor . VisitReference ( operation . TargetMethod , declaringSymbol , ( ) => [ operation . Syntax switch
429429 {
@@ -433,11 +433,11 @@ public override void VisitInvocation(IInvocationOperation operation)
433433 } ] ) ;
434434 }
435435
436- private void VisitIfExplicitStaticReceiver ( SemanticModel semanticModel , MemberAccessExpressionSyntax syntax )
436+ private void VisitIfExplicitTypeName ( SemanticModel semanticModel , SyntaxNode expression )
437437 {
438- var symbolInfo = semanticModel . GetSymbolInfo ( syntax . Expression , declarationVisitor . cancellationToken ) ;
438+ var symbolInfo = semanticModel . GetSymbolInfo ( expression , declarationVisitor . cancellationToken ) ;
439439 if ( symbolInfo . Symbol is ITypeSymbol type )
440- declarationVisitor . VisitReference ( type , declaringSymbol , ( ) => [ syntax . Expression . GetLocation ( ) ] ) ;
440+ declarationVisitor . VisitReference ( type , declaringSymbol , ( ) => [ expression . GetLocation ( ) ] ) ;
441441 }
442442
443443 public override void VisitIsType ( IIsTypeOperation operation )
@@ -466,6 +466,9 @@ public override void VisitObjectCreation(IObjectCreationOperation operation)
466466 {
467467 base . VisitObjectCreation ( operation ) ;
468468
469+ if ( operation . Syntax is ObjectCreationExpressionSyntax objectCreation )
470+ VisitIfExplicitTypeName ( operation . SemanticModel ! , objectCreation . Type ) ;
471+
469472 declarationVisitor . VisitReference ( operation . Constructor , declaringSymbol , ( ) => [ operation . Syntax switch
470473 {
471474 ObjectCreationExpressionSyntax objectCreation => SyntaxUtils . Unify ( objectCreation . NewKeyword . GetLocation ( ) , objectCreation . Type . GetLocation ( ) ) ,
@@ -478,7 +481,7 @@ public override void VisitPropertyReference(IPropertyReferenceOperation operatio
478481 base . VisitPropertyReference ( operation ) ;
479482
480483 if ( operation . Syntax is MemberAccessExpressionSyntax memberAccess )
481- VisitIfExplicitStaticReceiver ( operation . SemanticModel ! , memberAccess ) ;
484+ VisitIfExplicitTypeName ( operation . SemanticModel ! , memberAccess . Expression ) ;
482485
483486 switch ( operation . Parent )
484487 {
0 commit comments