Page MenuHomePhabricator
Diviner libphutil Tech Docs ArcanistExitExpressionXHPASTLinterRule

final class ArcanistExitExpressionXHPASTLinterRule
libphutil Technical Documentation ()

Exit is parsed as an expression, but using it as such is almost always wrong. That is, this is valid:

strtoupper(33 * exit - 6);

When exit is used as an expression, it causes the program to terminate with exit code 0. This is likely not what is intended; these statements have different effects:

exit(-1);
exit -1;

The former exits with a failure code, the latter with a success code!

Methods

final public static function loadAllRules()
Inherited

This method is not documented.
Return
wild

final public function getLintID()
Inherited

This method is not documented.
Return
wild

public function getLintName()

This method is not documented.
Return
wild

public function getLintSeverity()
Inherited

This method is not documented.
Return
wild

public function getLinterConfigurationOptions()
Inherited

This method is not documented.
Return
wild

public function setLinterConfigurationValue($key, $value)
Inherited

This method is not documented.
Parameters
$key
$value
Return
wild

public function process($root)

This method is not documented.
Parameters
XHPASTNode$root
Return
wild

final public function setLinter($linter)
Inherited

This method is not documented.
Parameters
ArcanistXHPASTLinter$linter
Return
wild

final public function getActivePath()
Inherited

This method is not documented.
Return
wild

final public function getOtherLocation($offset, $path)
Inherited

This method is not documented.
Parameters
$offset
$path
Return
wild

final protected function raiseLintAtPath($desc)
Inherited

This method is not documented.
Parameters
$desc
Return
wild

final public function raiseLintAtOffset($offset, $description, $original, $replacement)
Inherited

This method is not documented.
Parameters
$offset
$description
$original
$replacement
Return
wild

final protected function raiseLintAtToken($token, $description, $replace)
Inherited

This method is not documented.
Parameters
XHPASTToken$token
$description
$replace
Return
wild

final protected function raiseLintAtNode($node, $description, $replace)
Inherited

This method is not documented.
Parameters
XHPASTNode$node
$description
$replace
Return
wild

protected function evaluateStaticBoolean($string)
Inherited

ArcanistXHPASTLinterRule

Statically evaluate a boolean value from an XHP tree.

TODO: Improve this and move it to XHPAST proper?

Parameters
string$stringThe "semantic string" of a single value.
Return
mixed`true` or `false` if the value could be evaluated statically; `null` if static evaluation was not possible.

protected function getAnonymousClosures($root)
Inherited

ArcanistXHPASTLinterRule

Retrieve all anonymous closure(s).

Returns all descendant nodes which represent an anonymous function declaration.

Parameters
XHPASTNode$rootRoot node.
Return
AASTNodeList

protected function getConcreteVariableString($variable)
Inherited

ArcanistXHPASTLinterRule

TODO

Parameters
XHPASTNode$variable
Return
string

protected function getFunctionCalls($root, $function_names)
Inherited

ArcanistXHPASTLinterRule

Retrieve all calls to some specified function(s).

Returns all descendant nodes which represent a function call to one of the specified functions.

Parameters
XHPASTNode$rootRoot node.
list<string>$function_namesFunction names.
Return
AASTNodeList

final protected function getModifiers($node)
Inherited

ArcanistXHPASTLinterRule

Get class/method modifiers.

Parameters
XHPASTNode$nodeA node of type `n_CLASS_DECLARATION` or `n_METHOD_DECLARATION`.
Return
map<string, bool>Class/method modifiers.

public function getSuperGlobalNames()
Inherited

ArcanistXHPASTLinterRule

Get PHP superglobals.

Return
list<string>