diff --git a/src/lint/renderer/ArcanistConsoleLintRenderer.php b/src/lint/renderer/ArcanistConsoleLintRenderer.php --- a/src/lint/renderer/ArcanistConsoleLintRenderer.php +++ b/src/lint/renderer/ArcanistConsoleLintRenderer.php @@ -122,6 +122,24 @@ $old_impact = substr_count($original, "\n") + 1; $start = $line; + $max_old = count($old_lines); + if ($start > $max_old) { + // See PHI1782. If a linter raises a warning at a line that does not + // exist, just render a warning. + + $line = $this->renderLine( + $start, + pht( + '(This message was raised at line %s, but the file only has '. + '%s line(s).)', + new PhutilNumber($start), + new PhutilNumber($max_old)), + false, + '?'); + + return $line."\n\n"; + } + if ($message->isPatchable()) { $patch_offset = $line_map[$line] + ($char - 1);