X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fnikic%2Fphp-parser%2Flib%2FPhpParser%2FNode%2FStmt%2FClassMethod.php;fp=vendor%2Fnikic%2Fphp-parser%2Flib%2FPhpParser%2FNode%2FStmt%2FClassMethod.php;h=550b54ba2dee53973a8dcd5f24a5f96c2607583d;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=de05390adfd7ea859cb940339a060567a95801da;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php index de05390ad..550b54ba2 100644 --- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php +++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/ClassMethod.php @@ -1,4 +1,4 @@ - true, + '__destruct' => true, + '__call' => true, + '__callstatic' => true, + '__get' => true, + '__set' => true, + '__isset' => true, + '__unset' => true, + '__sleep' => true, + '__wakeup' => true, + '__tostring' => true, + '__set_state' => true, + '__clone' => true, + '__invoke' => true, + '__debuginfo' => true, + ]; /** * Constructs a class method node. * - * @param string $name Name - * @param array $subNodes Array of the following optional subnodes: - * 'flags => MODIFIER_PUBLIC: Flags - * 'byRef' => false : Whether to return by reference - * 'params' => array() : Parameters - * 'returnType' => null : Return type - * 'stmts' => array() : Statements - * @param array $attributes Additional attributes + * @param string|Node\Identifier $name Name + * @param array $subNodes Array of the following optional subnodes: + * 'flags => MODIFIER_PUBLIC: Flags + * 'byRef' => false : Whether to return by reference + * 'params' => array() : Parameters + * 'returnType' => null : Return type + * 'stmts' => array() : Statements + * @param array $attributes Additional attributes */ - public function __construct($name, array $subNodes = array(), array $attributes = array()) { + public function __construct($name, array $subNodes = [], array $attributes = []) { parent::__construct($attributes); - $this->flags = isset($subNodes['flags']) ? $subNodes['flags'] - : (isset($subNodes['type']) ? $subNodes['type'] : 0); - $this->type = $this->flags; - $this->byRef = isset($subNodes['byRef']) ? $subNodes['byRef'] : false; - $this->name = $name; - $this->params = isset($subNodes['params']) ? $subNodes['params'] : array(); - $this->returnType = isset($subNodes['returnType']) ? $subNodes['returnType'] : null; - $this->stmts = array_key_exists('stmts', $subNodes) ? $subNodes['stmts'] : array(); + $this->flags = $subNodes['flags'] ?? $subNodes['type'] ?? 0; + $this->byRef = $subNodes['byRef'] ?? false; + $this->name = \is_string($name) ? new Node\Identifier($name) : $name; + $this->params = $subNodes['params'] ?? []; + $returnType = $subNodes['returnType'] ?? null; + $this->returnType = \is_string($returnType) ? new Node\Identifier($returnType) : $returnType; + $this->stmts = array_key_exists('stmts', $subNodes) ? $subNodes['stmts'] : []; } - public function getSubNodeNames() { - return array('flags', 'byRef', 'name', 'params', 'returnType', 'stmts'); + public function getSubNodeNames() : array { + return ['flags', 'byRef', 'name', 'params', 'returnType', 'stmts']; } - public function returnsByRef() { + public function returnsByRef() : bool { return $this->byRef; } - public function getParams() { + public function getParams() : array { return $this->params; } @@ -67,28 +81,71 @@ class ClassMethod extends Node\Stmt implements FunctionLike return $this->stmts; } - public function isPublic() { + /** + * Whether the method is explicitly or implicitly public. + * + * @return bool + */ + public function isPublic() : bool { return ($this->flags & Class_::MODIFIER_PUBLIC) !== 0 || ($this->flags & Class_::VISIBILITY_MODIFIER_MASK) === 0; } - public function isProtected() { + /** + * Whether the method is protected. + * + * @return bool + */ + public function isProtected() : bool { return (bool) ($this->flags & Class_::MODIFIER_PROTECTED); } - public function isPrivate() { + /** + * Whether the method is private. + * + * @return bool + */ + public function isPrivate() : bool { return (bool) ($this->flags & Class_::MODIFIER_PRIVATE); } - public function isAbstract() { + /** + * Whether the method is abstract. + * + * @return bool + */ + public function isAbstract() : bool { return (bool) ($this->flags & Class_::MODIFIER_ABSTRACT); } - public function isFinal() { + /** + * Whether the method is final. + * + * @return bool + */ + public function isFinal() : bool { return (bool) ($this->flags & Class_::MODIFIER_FINAL); } - public function isStatic() { + /** + * Whether the method is static. + * + * @return bool + */ + public function isStatic() : bool { return (bool) ($this->flags & Class_::MODIFIER_STATIC); } + + /** + * Whether the method is magic. + * + * @return bool + */ + public function isMagic() : bool { + return isset(self::$magicNames[$this->name->toLowerString()]); + } + + public function getType() : string { + return 'Stmt_ClassMethod'; + } }