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))); }