Skip to content

Commit 0b4059c

Browse files
Reuben RJsebastianbergmann
Reuben RJ
authored andcommitted
fixed namespace handling from removing more than the tail.
1 parent 1894b1a commit 0b4059c

File tree

3 files changed

+4
-12
lines changed

3 files changed

+4
-12
lines changed

src/StaticAnalysis/CodeUnitFindingVisitor.php

+1-9
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
namespace SebastianBergmann\CodeCoverage\StaticAnalysis;
1111

1212
use function implode;
13-
use function str_replace;
1413
use function trim;
1514
use PhpParser\Node;
1615
use PhpParser\Node\Identifier;
@@ -285,13 +284,6 @@ private function processFunction(Function_ $node): void
285284

286285
private function namespace(string $namespacedName, string $name): string
287286
{
288-
return trim(
289-
str_replace(
290-
$name,
291-
'',
292-
$namespacedName
293-
),
294-
'\\'
295-
);
287+
return trim(rtrim($namespacedName, $name), '\\');
296288
}
297289
}

tests/_files/ClassThatUsesAnonymousClass.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php declare(strict_types=1);
2-
namespace SebastianBergmann\CodeCoverage\TestFixture;
2+
namespace SebastianBergmann\CodeCoverage\ClassThatUsesAnonymousClass\TestFixture;
33

44
final class ClassThatUsesAnonymousClass
55
{

tests/tests/StaticAnalysis/CodeUnitFindingVisitorTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use PhpParser\NodeVisitor\ParentConnectingVisitor;
1616
use PhpParser\ParserFactory;
1717
use PHPUnit\Framework\TestCase;
18-
use SebastianBergmann\CodeCoverage\TestFixture\ClassThatUsesAnonymousClass;
18+
use SebastianBergmann\CodeCoverage\ClassThatUsesAnonymousClass\TestFixture\ClassThatUsesAnonymousClass;
1919

2020
/**
2121
* @covers \SebastianBergmann\CodeCoverage\StaticAnalysis\CodeUnitFindingVisitor
@@ -55,7 +55,7 @@ public function testDoesNotFindAnonymousClass(): void
5555

5656
$this->assertSame('ClassThatUsesAnonymousClass', $class['name']);
5757
$this->assertSame(ClassThatUsesAnonymousClass::class, $class['namespacedName']);
58-
$this->assertSame('SebastianBergmann\CodeCoverage\TestFixture', $class['namespace']);
58+
$this->assertSame('SebastianBergmann\CodeCoverage\ClassThatUsesAnonymousClass\TestFixture', $class['namespace']);
5959
$this->assertSame(4, $class['startLine']);
6060
$this->assertSame(17, $class['endLine']);
6161

0 commit comments

Comments
 (0)