Skip to content

Commit ab3d1bd

Browse files
committed
Move anonymous class node attribute handling into AnonymousClassVisitor
1 parent d04bd26 commit ab3d1bd

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

src/Analyser/NodeScopeResolver.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
use PHPStan\Node\UnreachableStatementNode;
118118
use PHPStan\Node\VariableAssignNode;
119119
use PHPStan\Node\VarTagChangedExpressionTypeNode;
120+
use PHPStan\Parser\AnonymousClassVisitor;
120121
use PHPStan\Parser\ArrowFunctionArgVisitor;
121122
use PHPStan\Parser\ClosureArgVisitor;
122123
use PHPStan\Parser\Parser;
@@ -855,7 +856,7 @@ private function processStmtNode(
855856
if ($stmt->name === null) {
856857
throw new ShouldNotHappenException();
857858
}
858-
if ($stmt->getAttribute('anonymousClass', false) === false) {
859+
if ($stmt->getAttribute(AnonymousClassVisitor::ATTRIBUTE_ANONYMOUS_CLASS, false) === false) {
859860
$classReflection = $this->reflectionProvider->getClass($stmt->name->toString());
860861
} else {
861862
$classReflection = $this->reflectionProvider->getAnonymousClassReflection($stmt, $scope);

src/Parser/AnonymousClassVisitor.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
class AnonymousClassVisitor extends NodeVisitorAbstract
1010
{
1111

12+
public const ATTRIBUTE_ANONYMOUS_CLASS = 'anonymousClass';
1213
public const ATTRIBUTE_LINE_INDEX = 'anonymousClassLineIndex';
1314

1415
/** @var array<int, non-empty-list<Node\Stmt\Class_>> */
@@ -26,6 +27,7 @@ public function enterNode(Node $node): ?Node
2627
return null;
2728
}
2829

30+
$node->setAttribute(self::ATTRIBUTE_ANONYMOUS_CLASS, true);
2931
$this->nodesPerLine[$node->getStartLine()][] = $node;
3032

3133
return null;

src/Reflection/BetterReflection/BetterReflectionProvider.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ public function getAnonymousClassReflection(Node\Stmt\Class_ $classNode, Scope $
202202
$scopeFile,
203203
);
204204
$classNode->name = new Node\Identifier($className);
205-
$classNode->setAttribute('anonymousClass', true);
206205

207206
if (isset(self::$anonymousClasses[$className])) {
208207
return self::$anonymousClasses[$className];

src/Type/FileTypeMapper.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use PHPStan\BetterReflection\Util\GetLastDocComment;
99
use PHPStan\Broker\AnonymousClassNameHelper;
1010
use PHPStan\File\FileHelper;
11+
use PHPStan\Parser\AnonymousClassVisitor;
1112
use PHPStan\Parser\Parser;
1213
use PHPStan\PhpDoc\PhpDocNodeResolver;
1314
use PHPStan\PhpDoc\PhpDocStringResolver;
@@ -260,7 +261,7 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
260261
}
261262

262263
$className = $this->anonymousClassNameHelper->getAnonymousClassName($node, $fileName);
263-
} elseif ((bool) $node->getAttribute('anonymousClass', false)) {
264+
} elseif ((bool) $node->getAttribute(AnonymousClassVisitor::ATTRIBUTE_ANONYMOUS_CLASS, false)) {
264265
$className = $node->name->name;
265266
} else {
266267
if ($traitFound) {
@@ -451,7 +452,7 @@ function (Node $node) use ($fileName, $lookForTrait, $phpDocNodeMap, &$traitFoun
451452
}
452453

453454
$className = $this->anonymousClassNameHelper->getAnonymousClassName($node, $fileName);
454-
} elseif ((bool) $node->getAttribute('anonymousClass', false)) {
455+
} elseif ((bool) $node->getAttribute(AnonymousClassVisitor::ATTRIBUTE_ANONYMOUS_CLASS, false)) {
455456
$className = $node->name->name;
456457
} else {
457458
if ($traitFound) {

0 commit comments

Comments
 (0)