From 76c266975a349206c104416b21046e3955080bc4 Mon Sep 17 00:00:00 2001 From: Ruud Kamphuis Date: Wed, 8 Oct 2025 15:26:31 +0200 Subject: [PATCH] Only dump FQCN with leading \ when there is a namespace When there is no namespace defined, using the leading \ is redundant. --- src/CodeGenerator.php | 3 ++- tests/CodeGeneratorTest.php | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/CodeGenerator.php b/src/CodeGenerator.php index e5473e6..e5bc9d7 100644 --- a/src/CodeGenerator.php +++ b/src/CodeGenerator.php @@ -289,7 +289,8 @@ public function dumpClassReference(FullyQualified | string $fqcn, bool $import = match (true) { $import && $byParent => $this->importByParent($fqcn), $import => $this->import($fqcn), - default => '\\' . $fqcn, + $this->namespace !== null => '\\' . $fqcn, + default => $fqcn, }, ); } diff --git a/tests/CodeGeneratorTest.php b/tests/CodeGeneratorTest.php index a527e3d..dcb4f69 100644 --- a/tests/CodeGeneratorTest.php +++ b/tests/CodeGeneratorTest.php @@ -452,13 +452,23 @@ public function testDumpClassReferenceByParent() : void public function testDumpClassReferenceWithoutImport() : void { self::assertSame( - '\\App\\Models\\User::class', + 'App\\Models\\User::class', $this->generator->dumpClassReference('App\\Models\\User', false), ); self::assertSame( - '\\App\\Models\\User::class', + 'App\\Models\\User::class', $this->generator->dumpClassReference('\\App\\Models\\User', false), ); + + $generator = new CodeGenerator('App'); + self::assertSame( + '\\App\\Models\\User::class', + $generator->dumpClassReference('App\\Models\\User', false), + ); + self::assertSame( + '\\App\\Models\\User::class', + $generator->dumpClassReference('\\App\\Models\\User', false), + ); } public function testMaybeNowDocWithSingleLine() : void