diff --git a/src/GlobalNameClassWatchVisitor.php b/src/GlobalNameClassWatchVisitor.php index cfb4062..25ed1e2 100644 --- a/src/GlobalNameClassWatchVisitor.php +++ b/src/GlobalNameClassWatchVisitor.php @@ -16,7 +16,7 @@ class GlobalNameClassWatchVisitor extends NodeVisitorAbstract public function enterNode(Node $node) : void { - if ($node instanceof Node\Name\Use_ && count($node->parts) === 1) { + if ($node instanceof Node\Name\FullyQualified && count($node->parts) === 1) { $target = $node->parts[0]; $isGlobalClassName = ! function_exists($target) && ! defined($target); if ($isGlobalClassName && ! in_array($target, $this->globalClassNames, true)) { diff --git a/src/Spaceman.php b/src/Spaceman.php index 16d0603..470c93e 100644 --- a/src/Spaceman.php +++ b/src/Spaceman.php @@ -89,7 +89,7 @@ private function resolveName($ast) : array $nodeTraverser->addVisitor($watchVisitor); $travesedAst = $nodeTraverser->traverse($ast); - return $this->importGlobalClass($watchVisitor->globalClassNames, $travesedAst); + return $this->importGlobalClass(array_unique($watchVisitor->globalClassNames), $travesedAst); } /** diff --git a/tests/Fake/Fake.php b/tests/Fake/Fake.php index 4d58e14..233481e 100644 --- a/tests/Fake/Fake.php +++ b/tests/Fake/Fake.php @@ -8,5 +8,6 @@ public function run() { new Author; new Bar; + new LogicException; } } diff --git a/tests/SpacemanTest.php b/tests/SpacemanTest.php index 87f7c96..1145e82 100644 --- a/tests/SpacemanTest.php +++ b/tests/SpacemanTest.php @@ -32,7 +32,7 @@ public function test__invoke() : void } $namespace = 'Newname\Space'; $sourceCode = ($this->spaceman)($code, $namespace); - $expected = <<<'EOT' + $expected = /** @lang php */<<assertSame($expected, $sourceCode);