diff vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php @ 13:5fb285c0d0e3

Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've been lucky to get away with this so far, as we don't support self-registration which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5 was vulnerable to.
author Chris Cannam
date Mon, 23 Apr 2018 09:33:26 +0100
parents 4c8ae668cc8c
children
line wrap: on
line diff
--- a/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php	Fri Feb 23 15:52:07 2018 +0000
+++ b/vendor/nikic/php-parser/lib/PhpParser/Node/Stmt/Function_.php	Mon Apr 23 09:33:26 2018 +0100
@@ -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 @@
      *                           '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 @@
         return $this->returnType;
     }
 
-    public function getStmts() {
+    /** @return Node\Stmt[] */
+    public function getStmts() : array {
         return $this->stmts;
     }
+    
+    public function getType() : string {
+        return 'Stmt_Function';
+    }
 }