diff --git a/src/lint/linter/ArcanistXHPASTLinter.php b/src/lint/linter/ArcanistXHPASTLinter.php --- a/src/lint/linter/ArcanistXHPASTLinter.php +++ b/src/lint/linter/ArcanistXHPASTLinter.php @@ -3872,7 +3872,11 @@ ->selectDescendantsOfType('n_CLASS_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') { $this->raiseLintAtNode( diff --git a/src/lint/linter/__tests__/xhpast/no-parent-scope.lint-test b/src/lint/linter/__tests__/xhpast/no-parent-scope.lint-test --- a/src/lint/linter/__tests__/xhpast/no-parent-scope.lint-test +++ b/src/lint/linter/__tests__/xhpast/no-parent-scope.lint-test @@ -10,6 +10,10 @@ public function __construct() { parent::__construct(null); } + + public function someMethod($x) { + echo $x::SOME_CONSTANT; + } } ~~~~~~~~~~ error:11:5