public bool Check(SemanticModel semanticModel, SyntaxNode node, CancellationToken cancellationToken) { return node.TypeSwitch( (ExpressionSyntax expression) => CheckExpression(semanticModel, expression, cancellationToken), (BlockSyntax block) => CheckBlock(semanticModel, block, cancellationToken), (StatementSyntax statement) => CheckStatement(semanticModel, statement, cancellationToken), (GlobalStatementSyntax globalStatement) => CheckGlobalStatement(semanticModel, globalStatement, cancellationToken)); }