Skip to content

Commit 7c5e08e

Browse files
committed
Printer: fixed use statements generation
1 parent 9ecd301 commit 7c5e08e

File tree

3 files changed

+4
-3
lines changed

3 files changed

+4
-3
lines changed

src/PhpGenerator/Printer.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,9 +139,7 @@ public function printNamespace(PhpNamespace $namespace): string
139139

140140
$uses = [];
141141
foreach ($namespace->getUses() as $alias => $original) {
142-
$useNamespace = Helpers::extractNamespace($original);
143-
144-
if ($name !== $useNamespace) {
142+
if ($original !== ($name ? $name . '\\' . $alias : $alias)) {
145143
if ($alias === $original || substr($original, -(strlen($alias) + 1)) === '\\' . $alias) {
146144
$uses[] = "use $original;";
147145
} else {

tests/PhpGenerator/Printer.namespace.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ $printer = new Printer;
1313

1414
$namespace = new PhpNamespace('Foo');
1515
$namespace->addUse('Bar\C');
16+
$namespace->addUse('Foo\D');
17+
$namespace->addUse('Foo\D', 'E');
1618

1719
$class = $namespace->addClass('A')
1820
->setFinal(true)

tests/PhpGenerator/expected/Printer.namespace.expect

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
namespace Foo;
22

33
use Bar\C;
4+
use Foo\D as E;
45

56
/**
67
* Description of class.

0 commit comments

Comments
 (0)