mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-26 00:32:41 +01:00
Improve the "invalid parent scope" linter rule
Summary: This linter rule was introduced in D12420, but fails to handle a specific edge case. Test Plan: Added test case. Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Differential Revision: https://secure.phabricator.com/D12853
This commit is contained in:
parent
f9cefb7e2d
commit
1df248cc2d
2 changed files with 9 additions and 1 deletions
|
@ -3872,7 +3872,11 @@ final class ArcanistXHPASTLinter extends ArcanistBaseXHPASTLinter {
|
||||||
->selectDescendantsOfType('n_CLASS_STATIC_ACCESS');
|
->selectDescendantsOfType('n_CLASS_STATIC_ACCESS');
|
||||||
|
|
||||||
foreach ($static_accesses as $static_access) {
|
foreach ($static_accesses as $static_access) {
|
||||||
$called_class = $static_access->getChildOfType(0, 'n_CLASS_NAME');
|
$called_class = $static_access->getChildByIndex(0);
|
||||||
|
|
||||||
|
if ($called_class->getTypeName() != 'n_CLASS_NAME') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if ($called_class->getConcreteString() == 'parent') {
|
if ($called_class->getConcreteString() == 'parent') {
|
||||||
$this->raiseLintAtNode(
|
$this->raiseLintAtNode(
|
||||||
|
|
|
@ -10,6 +10,10 @@ final class MyInvalidClass {
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(null);
|
parent::__construct(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function someMethod($x) {
|
||||||
|
echo $x::SOME_CONSTANT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
error:11:5
|
error:11:5
|
||||||
|
|
Loading…
Reference in a new issue