Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / nikic / php-parser / lib / PhpParser / Node / Stmt / Function_.php
index 4c1f48d8433e8b5db3e5c1c0d3f54155b3854a3e..a0bd2570c50928ad9c6fd0ee62b12abd74af61d1 100644 (file)
@@ -1,27 +1,30 @@
-<?php
+<?php declare(strict_types=1);
 
 namespace PhpParser\Node\Stmt;
 
 use PhpParser\Node;
 use PhpParser\Node\FunctionLike;
 
+/**
+ * @property Node\Name $namespacedName Namespaced name (if using NameResolver)
+ */
 class Function_ extends Node\Stmt implements FunctionLike
 {
     /** @var bool Whether function returns by reference */
     public $byRef;
-    /** @var string Name */
+    /** @var Node\Identifier Name */
     public $name;
     /** @var Node\Param[] Parameters */
     public $params;
-    /** @var null|string|Node\Name|Node\NullableType Return type */
+    /** @var null|Node\Identifier|Node\Name|Node\NullableType Return type */
     public $returnType;
-    /** @var Node[] Statements */
+    /** @var Node\Stmt[] Statements */
     public $stmts;
 
     /**
      * Constructs a function node.
      *
-     * @param string $name       Name
+     * @param string|Node\Identifier $name Name
      * @param array  $subNodes   Array of the following optional subnodes:
      *                           'byRef'      => false  : Whether to return by reference
      *                           'params'     => array(): Parameters
@@ -29,24 +32,25 @@ class Function_ extends Node\Stmt implements FunctionLike
      *                           '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->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 = isset($subNodes['stmts']) ? $subNodes['stmts'] : array();
+        $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 = $subNodes['stmts'] ?? [];
     }
 
-    public function getSubNodeNames() {
-        return array('byRef', 'name', 'params', 'returnType', 'stmts');
+    public function getSubNodeNames() : array {
+        return ['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;
     }
 
@@ -54,7 +58,12 @@ class Function_ extends Node\Stmt implements FunctionLike
         return $this->returnType;
     }
 
-    public function getStmts() {
+    /** @return Node\Stmt[] */
+    public function getStmts() : array {
         return $this->stmts;
     }
+    
+    public function getType() : string {
+        return 'Stmt_Function';
+    }
 }