@@ -55,19 +55,24 @@ when semanticModel.TryGetSymbol(identifierName, cancellationToken, out ILocalSym
5555 /// </summary>
5656 internal static GetMethod ? Match ( InvocationExpressionSyntax candidate , SemanticModel semanticModel , CancellationToken cancellationToken )
5757 {
58- if ( candidate . TryGetTarget ( KnownSymbol . Type . GetMethod , semanticModel , cancellationToken , out var target ) &&
59- Flags . TryCreate ( candidate , target , semanticModel , cancellationToken , out var flags ) &&
60- ReflectedMember . TryGetType ( candidate , semanticModel , cancellationToken , out var type , out var typeSource ) )
58+ if ( candidate . TryGetTarget ( KnownSymbol . Type . GetMethod , semanticModel , cancellationToken , out var target ) )
6159 {
62- _ = Name . TryCreate ( candidate , target , semanticModel , cancellationToken , out var name ) ;
63- _ = Types . TryCreate ( candidate , target , semanticModel , cancellationToken , out var types ) ;
64- if ( flags . AreInSufficient )
60+ if ( ReflectedMember . TryGetType ( candidate , semanticModel , cancellationToken , out var type , out var typeSource ) &&
61+ Name . TryCreate ( candidate , target , semanticModel , cancellationToken , out var name ) &&
62+ Flags . TryCreate ( candidate , target , semanticModel , cancellationToken , out var flags ) &&
63+ Types . TryCreate ( candidate , target , semanticModel , cancellationToken , out var types ) )
6564 {
66- return new GetMethod ( candidate , target , new ReflectedMember ( type , typeSource , null , target , candidate , FilterMatch . InSufficientFlags ) , name , flags , types ) ;
65+ return ReflectedMember . TryCreate ( target , candidate , type , typeSource , name , flags . Effective , types , semanticModel . Compilation , out var member )
66+ ? new GetMethod ( candidate , target , member , name , flags , types )
67+ : null ;
6768 }
6869
69- if ( ReflectedMember . TryCreate ( target , candidate , type , typeSource , name , flags . Effective , types , semanticModel . Compilation , out var member ) )
70+ if ( Flags . TryCreate ( candidate , target , semanticModel , cancellationToken , out flags ) &&
71+ flags . AreInSufficient )
7072 {
73+ _ = Name . TryCreate ( candidate , target , semanticModel , cancellationToken , out name ) ;
74+ _ = Types . TryCreate ( candidate , target , semanticModel , cancellationToken , out types ) ;
75+ var member = new ReflectedMember ( type , typeSource , null , target , candidate , FilterMatch . InSufficientFlags ) ;
7176 return new GetMethod ( candidate , target , member , name , flags , types ) ;
7277 }
7378 }
0 commit comments