private static bool ContainsInterleavedDirective( SyntaxNode statement, StatementSyntax embeddedStatement, CancellationToken cancellationToken ) { if (statement.IsKind(SyntaxKind.IfStatement, out IfStatementSyntax ifStatementNode)) { var elseNode = ifStatementNode.Else; if (elseNode != null && !embeddedStatement.IsMissing) { // For IF/ELSE statements, only the IF part should be checked for interleaved directives when the diagnostic is triggered on the IF. // A separate diagnostic will be triggered to handle the ELSE part. var ifStatementSpanWithoutElse = TextSpan.FromBounds( statement.Span.Start, embeddedStatement.Span.End ); return(statement.ContainsInterleavedDirective( ifStatementSpanWithoutElse, cancellationToken )); } } return(statement.ContainsInterleavedDirective(cancellationToken)); }