mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +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);
|
||||
if ($this->isConstantString($identifier)) {
|
||||
if ($identifier->isConstantString()) {
|
||||
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) {
|
||||
$function_calls = $root->selectDescendantsOfType('n_FUNCTION_CALL');
|
||||
|
|
Loading…
Reference in a new issue