@@ -70,14 +70,13 @@ private static void AnalyzeEqualsExpression(SyntaxNodeAnalysisContext context)
7070
7171 NullCheckExpressionInfo nullCheck = SyntaxInfo . NullCheckExpressionInfo ( binaryExpression , allowedStyles : NullCheckStyles . EqualsToNull , walkDownParentheses : false ) ;
7272
73- if ( nullCheck . Success )
74- {
75- DiagnosticHelpers . ReportDiagnostic (
76- context ,
77- DiagnosticRules . NormalizeNullCheck ,
78- binaryExpression ,
79- "pattern matching" ) ;
80- }
73+ if ( ! nullCheck . Success )
74+ return ;
75+
76+ if ( binaryExpression . IsInExpressionTree ( context . SemanticModel , context . CancellationToken ) )
77+ return ;
78+
79+ ReportDiagnostic ( context , binaryExpression , "pattern matching" ) ;
8180 }
8281
8382 private static void AnalyzeNotEqualsExpression ( SyntaxNodeAnalysisContext context )
@@ -89,14 +88,13 @@ private static void AnalyzeNotEqualsExpression(SyntaxNodeAnalysisContext context
8988
9089 NullCheckExpressionInfo nullCheck = SyntaxInfo . NullCheckExpressionInfo ( binaryExpression , allowedStyles : NullCheckStyles . NotEqualsToNull ) ;
9190
92- if ( nullCheck . Success )
93- {
94- DiagnosticHelpers . ReportDiagnostic (
95- context ,
96- DiagnosticRules . NormalizeNullCheck ,
97- binaryExpression ,
98- "pattern matching" ) ;
99- }
91+ if ( ! nullCheck . Success )
92+ return ;
93+
94+ if ( binaryExpression . IsInExpressionTree ( context . SemanticModel , context . CancellationToken ) )
95+ return ;
96+
97+ ReportDiagnostic ( context , binaryExpression , "pattern matching" ) ;
10098 }
10199
102100 private static void AnalyzeIsPatternExpression ( SyntaxNodeAnalysisContext context )
@@ -109,12 +107,17 @@ private static void AnalyzeIsPatternExpression(SyntaxNodeAnalysisContext context
109107 if ( isPatternExpression . Pattern is ConstantPatternSyntax constantPattern
110108 && constantPattern . Expression . IsKind ( SyntaxKind . NullLiteralExpression ) )
111109 {
112- DiagnosticHelpers . ReportDiagnostic (
113- context ,
114- DiagnosticRules . NormalizeNullCheck ,
115- isPatternExpression ,
116- "equality operator" ) ;
110+ ReportDiagnostic ( context , isPatternExpression , "equality operator" ) ;
117111 }
118112 }
113+
114+ private static void ReportDiagnostic ( SyntaxNodeAnalysisContext context , ExpressionSyntax expression , string messageArg )
115+ {
116+ DiagnosticHelpers . ReportDiagnostic (
117+ context ,
118+ DiagnosticRules . NormalizeNullCheck ,
119+ expression ,
120+ messageArg ) ;
121+ }
119122 }
120123}
0 commit comments