public override SyntaxNode VisitForStatement(ForStatementSyntax node)
        {
            var statement = (BlockSyntax)node.Statement;
            var line      = GetLineNumber(statement.Statements.Any() ? statement.Statements.First() : statement);
            var updated   = Block(new[] { ThrowIfCancelled.WithTrailingTrivia(GetLineDirective(line)) }.Concat(statement.Statements));

            return(base.VisitForStatement(node.ReplaceNode(statement, updated)));
        }