1
0
Fork 0
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:
vrana 2013-01-30 12:24:41 -08:00
parent 98e8d0c9c4
commit 3f747be644

View file

@ -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');