Yaffs site version 1.1
[yaffs-website] / vendor / psy / psysh / src / Psy / CodeCleaner / NamespacePass.php
index 40cc6bb3e218f825de2e83a8f87e896e33754239..37ef9f2400c2fb9bce52aff2bb9164e3821e02df 100644 (file)
@@ -12,7 +12,7 @@
 namespace Psy\CodeCleaner;
 
 use PhpParser\Node\Name;
-use PhpParser\Node\Stmt\Namespace_ as NamespaceStmt;
+use PhpParser\Node\Stmt\Namespace_;
 use Psy\CodeCleaner;
 
 /**
@@ -49,19 +49,17 @@ class NamespacePass extends CodeCleanerPass
      */
     public function beforeTraverse(array $nodes)
     {
-        $first = reset($nodes);
-        if (count($nodes) === 1 && $first instanceof NamespaceStmt && empty($first->stmts)) {
-            $this->setNamespace($first->name);
-        } else {
-            foreach ($nodes as $key => $node) {
-                if ($node instanceof NamespaceStmt) {
-                    $this->setNamespace(null);
-                } elseif ($this->namespace !== null) {
-                    $nodes[$key] = new NamespaceStmt($this->namespace, array($node));
-                }
-            }
+        if (empty($nodes)) {
+            return $nodes;
         }
 
+        $last = end($nodes);
+        if (!$last instanceof Namespace_) {
+            return $this->namespace ? array(new Namespace_($this->namespace, $nodes)) : $nodes;
+        }
+
+        $this->setNamespace($last->name);
+
         return $nodes;
     }