1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-22 06:42:41 +01:00

Improve strictness around setLine() types in ArcanistLintMessage

Summary: Fixes T8921. Harbormaster is strict about types it accepts, but `ArcanistLintMessage` is more liberal. Push the strictness barrier down to the linter level, while maintaining reasonable flexibility in the API.

Test Plan: `arc unit --everything`

Reviewers: btrahan, chad

Reviewed By: chad

Subscribers: epriestley

Maniphest Tasks: T8921

Differential Revision: https://secure.phabricator.com/D13695
This commit is contained in:
epriestley 2015-07-23 13:19:53 -07:00
parent 5e4f9a2bf9
commit bd1da9da6c

View file

@ -72,6 +72,23 @@ final class ArcanistLintMessage extends Phobject {
}
public function setLine($line) {
if ($line === null) {
// This just means that we don't have any line information.
} else {
// For compatibility, accept digit strings since a lot of linters pass
// line numbers that they have parsed from command output or XML, which
// won't be properly typed.
if (is_string($line) && preg_match('/^\d+\z/', $line)) {
$line = (int)$line;
}
if (!is_int($line)) {
throw new Exception(
pht(
'Parameter passed to setLine() must be an integer.'));
}
}
$this->line = $line;
return $this;
}