Skip to content

Commit 6e1b293

Browse files
committed
PhpNamespace::unresolveName() removed leading \ for empty namespace
1 parent 83f7679 commit 6e1b293

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/PhpGenerator/PhpNamespace.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ public function unresolveName($name)
152152
if (!$res && Strings::startsWith($lower, strtolower($this->name) . '\\')) {
153153
return substr($name, strlen($this->name) + 1);
154154
} else {
155-
return $res ?: '\\' . $name;
155+
return $res ?: ($this->name ? '\\' : '') . $name;
156156
}
157157
}
158158

tests/PhpGenerator/PhpNamespace.phpt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,22 @@ use Tester\Assert;
1010
require __DIR__ . '/../bootstrap.php';
1111

1212

13+
$namespace = new PhpNamespace;
14+
15+
Assert::same('A', $namespace->unresolveName('A'));
16+
Assert::same('foo\A', $namespace->unresolveName('foo\A'));
17+
18+
$namespace->addUse('Bar\C');
19+
20+
Assert::same('Bar', $namespace->unresolveName('Bar'));
21+
Assert::same('C', $namespace->unresolveName('bar\C'));
22+
Assert::same('C\D', $namespace->unresolveName('Bar\C\D'));
23+
24+
foreach (['String', 'string', 'int', 'float', 'bool', 'array', 'callable', 'self', 'parent', ''] as $type) {
25+
Assert::same($type, $namespace->unresolveName($type));
26+
}
27+
28+
1329
$namespace = new PhpNamespace('Foo');
1430

1531
Assert::same('\A', $namespace->unresolveName('A'));

0 commit comments

Comments
 (0)