mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-22 06:42:41 +01:00
In the "cpplint" binding, raise messages on "line 0" without a line
Summary: Ref T13543. The "cpplint.py" script may emit messages on line 0, but Arcanist doesn't accept these messages. This is a small piece of a whole set of broader issues, but stop the bleeding for now. Test Plan: - Ran `arc lint example.h` on a file with no `#ifndef` guard, and `cpplint` configured. - Cpplint raised a message at line "0". - Before change: arc choked when trying to render this. - After change: arc survives rendering. Maniphest Tasks: T13543 Differential Revision: https://secure.phabricator.com/D21289
This commit is contained in:
parent
e3030ebcad
commit
25ee39b657
1 changed files with 11 additions and 1 deletions
|
@ -48,12 +48,22 @@ final class ArcanistCpplintLinter extends ArcanistExternalLinter {
|
||||||
|
|
||||||
$message = new ArcanistLintMessage();
|
$message = new ArcanistLintMessage();
|
||||||
$message->setPath($path);
|
$message->setPath($path);
|
||||||
$message->setLine($matches[1]);
|
|
||||||
$message->setCode($matches[3]);
|
$message->setCode($matches[3]);
|
||||||
$message->setName($matches[3]);
|
$message->setName($matches[3]);
|
||||||
$message->setDescription($matches[2]);
|
$message->setDescription($matches[2]);
|
||||||
$message->setSeverity($severity);
|
$message->setSeverity($severity);
|
||||||
|
|
||||||
|
// NOTE: "cpplint" raises some messages which apply to the whole file,
|
||||||
|
// like "no #ifndef guard found". It raises these messages on line 0.
|
||||||
|
|
||||||
|
// Arcanist messages should have a "null" line, not a "0" line, if they
|
||||||
|
// aren't bound to a particular line number.
|
||||||
|
|
||||||
|
$line = (int)$matches[1];
|
||||||
|
if ($line > 0) {
|
||||||
|
$message->setLine($line);
|
||||||
|
}
|
||||||
|
|
||||||
$messages[] = $message;
|
$messages[] = $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue