mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-22 14:52:40 +01:00
Move isConstantString()
to base class
Summary: This can be useful by itself, we want to use it in FB linter. Test Plan: This diff. Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D4744
This commit is contained in:
parent
98e8d0c9c4
commit
3f747be644
1 changed files with 1 additions and 37 deletions
|
@ -72,7 +72,7 @@ final class ArcanistPhutilXHPASTLinter extends ArcanistBaseXHPASTLinter {
|
||||||
}
|
}
|
||||||
|
|
||||||
$identifier = $parameters->getChildByIndex(0);
|
$identifier = $parameters->getChildByIndex(0);
|
||||||
if ($this->isConstantString($identifier)) {
|
if ($identifier->isConstantString()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,42 +84,6 @@ final class ArcanistPhutilXHPASTLinter extends ArcanistBaseXHPASTLinter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function isConstantString(XHPASTNode $node) {
|
|
||||||
$value = $node->getConcreteString();
|
|
||||||
|
|
||||||
switch ($node->getTypeName()) {
|
|
||||||
case 'n_HEREDOC':
|
|
||||||
if ($value[3] == "'") { // Nowdoc: <<<'EOT'
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
$value = preg_replace('/^.+\n|\n.*$/', '', $value);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'n_STRING_SCALAR':
|
|
||||||
if ($value[0] == "'") {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
$value = substr($value, 1, -1);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'n_CONCATENATION_LIST':
|
|
||||||
foreach ($node->getChildren() as $child) {
|
|
||||||
if ($child->getTypeName() == 'n_OPERATOR') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (!$this->isConstantString($child)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return preg_match('/^((?>[^$\\\\]*)|\\\\.)*$/s', $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private function lintArrayCombine($root) {
|
private function lintArrayCombine($root) {
|
||||||
$function_calls = $root->selectDescendantsOfType('n_FUNCTION_CALL');
|
$function_calls = $root->selectDescendantsOfType('n_FUNCTION_CALL');
|
||||||
|
|
Loading…
Reference in a new issue