2424use PHPStan \File \FileHelper ;
2525use PHPStan \File \FileReader ;
2626use PHPStan \File \RelativePathHelper ;
27+ use PHPStan \Parser \AnonymousClassVisitor ;
2728use PHPStan \Php \PhpVersion ;
2829use PHPStan \PhpDoc \PhpDocInheritanceResolver ;
2930use PHPStan \PhpDoc \StubPhpDocProvider ;
@@ -201,7 +202,6 @@ public function getAnonymousClassReflection(Node\Stmt\Class_ $classNode, Scope $
201202 $ scopeFile ,
202203 );
203204 $ classNode ->name = new Node \Identifier ($ className );
204- $ classNode ->setAttribute ('anonymousClass ' , true );
205205
206206 if (isset (self ::$ anonymousClasses [$ className ])) {
207207 return self ::$ anonymousClasses [$ className ];
@@ -214,6 +214,14 @@ public function getAnonymousClassReflection(Node\Stmt\Class_ $classNode, Scope $
214214 null ,
215215 );
216216
217+ /** @var int|null $classLineIndex */
218+ $ classLineIndex = $ classNode ->getAttribute (AnonymousClassVisitor::ATTRIBUTE_LINE_INDEX );
219+ if ($ classLineIndex === null ) {
220+ $ displayName = sprintf ('class@anonymous/%s:%s ' , $ filename , $ classNode ->getStartLine ());
221+ } else {
222+ $ displayName = sprintf ('class@anonymous/%s:%s:%d ' , $ filename , $ classNode ->getStartLine (), $ classLineIndex );
223+ }
224+
217225 self ::$ anonymousClasses [$ className ] = new ClassReflection (
218226 $ this ->reflectionProviderProvider ->getReflectionProvider (),
219227 $ this ->initializerExprTypeResolver ,
@@ -227,7 +235,7 @@ public function getAnonymousClassReflection(Node\Stmt\Class_ $classNode, Scope $
227235 $ this ->classReflectionExtensionRegistryProvider ->getRegistry ()->getAllowedSubTypesClassReflectionExtensions (),
228236 $ this ->classReflectionExtensionRegistryProvider ->getRegistry ()->getRequireExtendsPropertyClassReflectionExtension (),
229237 $ this ->classReflectionExtensionRegistryProvider ->getRegistry ()->getRequireExtendsMethodsClassReflectionExtension (),
230- sprintf ( ' class@anonymous/%s:%s ' , $ filename , $ classNode -> getStartLine ()) ,
238+ $ displayName ,
231239 new ReflectionClass ($ reflectionClass ),
232240 $ scopeFile ,
233241 null ,
0 commit comments