diff --git a/src/Php/CompilerBase.php b/src/Php/CompilerBase.php index f4d5ea3d..66e09eed 100644 --- a/src/Php/CompilerBase.php +++ b/src/Php/CompilerBase.php @@ -3072,6 +3072,7 @@ class CompilerBase extends \PhpAot\Core\Translator $className = $this->genAnonClassName(); $classDef->name = new Node\Identifier($className); // 继承父类可能是 use 的名称,需要转换成全限定名称 + // TODO 匿名类的属性、常量、方法参数中都可能会用相对类名,都需要转为全限定名称 if ($classDef->extends !== null) { $parentClass = $this->getNamespacedClassName($classDef->extends->toString()); $classDef->extends = new Node\Name\FullyQualified($parentClass); diff --git a/src/gen_stub.php b/src/gen_stub.php index 13debda9..f1bbc284 100755 --- a/src/gen_stub.php +++ b/src/gen_stub.php @@ -4359,7 +4359,7 @@ class FileInfo { $nodeTraverser = new PhpParser\NodeTraverser; $nodeTraverser->addVisitor(new PhpParser\NodeVisitor\NameResolver); $prettyPrinter = new class extends Standard { - protected function pName_FullyQualified(Name\FullyQualified $node): string { + protected function pName_FullyQualified(PhpParser\Node\Name\FullyQualified $node): string { return implode('\\', $node->getParts()); } };