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:
parent
5e4f9a2bf9
commit
bd1da9da6c
1 changed files with 17 additions and 0 deletions
|
@ -72,6 +72,23 @@ final class ArcanistLintMessage extends Phobject {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setLine($line) {
|
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;
|
$this->line = $line;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue