public override SyntaxNode VisitForEachStatement(ForEachStatementSyntax node)
        {
            var statement = GetStatementsAsBlock(node);
            var line      = GetLineNumber(statement) + 2;
            var updated   = Block(new[] { ThrowIfCancelled.WithTrailingTrivia(GetLineDirective(line)) }.Concat(statement.Statements));

            return(base.VisitForEachStatement(node.ReplaceNode(node.Statement, updated)));
        }