|
5 | 5 | using Gu.Roslyn.AnalyzerExtensions; |
6 | 6 |
|
7 | 7 | using Microsoft.CodeAnalysis; |
8 | | -using Microsoft.CodeAnalysis.CSharp; |
9 | 8 | using Microsoft.CodeAnalysis.CSharp.Syntax; |
10 | 9 |
|
11 | 10 | internal readonly struct GetProperty |
@@ -34,22 +33,12 @@ private GetProperty(InvocationExpressionSyntax invocation, IMethodSymbol target, |
34 | 33 | /// </summary> |
35 | 34 | internal static GetProperty? Match(ExpressionSyntax candidate, SemanticModel semanticModel, CancellationToken cancellationToken) |
36 | 35 | { |
37 | | - return candidate switch |
| 36 | + if (GetX.FindInvocation(candidate, semanticModel, cancellationToken) is { } invocation) |
38 | 37 | { |
39 | | - InvocationExpressionSyntax invocation |
40 | | - => Match(invocation, semanticModel, cancellationToken), |
41 | | - PostfixUnaryExpressionSyntax { RawKind: (int)SyntaxKind.SuppressNullableWarningExpression, Operand: InvocationExpressionSyntax invocation } |
42 | | - => Match(invocation, semanticModel, cancellationToken), |
43 | | - MemberAccessExpressionSyntax { Expression: { } inner } |
44 | | - => Match(inner, semanticModel, cancellationToken), |
45 | | - MemberBindingExpressionSyntax { Parent.Parent: ConditionalAccessExpressionSyntax { Expression: InvocationExpressionSyntax invocation } } |
46 | | - => Match(invocation, semanticModel, cancellationToken), |
47 | | - IdentifierNameSyntax identifierName |
48 | | - when semanticModel.TryGetSymbol(identifierName, cancellationToken, out ILocalSymbol? local) && |
49 | | - AssignedValue.FindSingle(local, semanticModel, cancellationToken) is { } value |
50 | | - => Match(value, semanticModel, cancellationToken), |
51 | | - _ => null, |
52 | | - }; |
| 38 | + return Match(invocation, semanticModel, cancellationToken); |
| 39 | + } |
| 40 | + |
| 41 | + return null; |
53 | 42 | } |
54 | 43 |
|
55 | 44 | /// <summary> |
|
0 commit comments