diff --git a/src/DefinitionResolver.php b/src/DefinitionResolver.php index 32defaba..d331cba2 100644 --- a/src/DefinitionResolver.php +++ b/src/DefinitionResolver.php @@ -906,11 +906,12 @@ public function resolveClassNameToType($class): Type // Anonymous class return new Types\Object_; } - $className = (string)$class->getResolvedName(); - - if ($className === 'static') { + if ($class instanceof PhpParser\Token && $class->kind === PhpParser\TokenKind::StaticKeyword) { + // `new static` return new Types\Static_; } + $className = (string)$class->getResolvedName(); + if ($className === 'self' || $className === 'parent') { $classNode = $class->getFirstAncestor(Node\Statement\ClassDeclaration::class); if ($className === 'parent') {