1
0
mirror of https://github.com/nikic/PHP-Parser.git synced 2025-05-11 15:55:18 +02:00

Fix NameResolver for class constant native type

This commit is contained in:
Ondrej Mirtes 2023-11-28 14:11:58 +01:00 committed by Nikita Popov
parent e453389866
commit 2a5e81f7ca
2 changed files with 11 additions and 1 deletions
lib/PhpParser/NodeVisitor
test/PhpParser/NodeVisitor

@ -118,6 +118,9 @@ class NameResolver extends NodeVisitorAbstract
$this->addNamespacedName($const);
}
} else if ($node instanceof Stmt\ClassConst) {
if (null !== $node->type) {
$node->type = $this->resolveType($node->type);
}
$this->resolveAttrGroups($node);
} else if ($node instanceof Stmt\EnumCase) {
$this->resolveAttrGroups($node);

@ -189,7 +189,7 @@ class A extends B implements C, D {
E::h as i;
E::j insteadof F, G;
}
#[X]
public float $php = 7.4;
public ?Foo $person;
@ -198,6 +198,10 @@ class A extends B implements C, D {
#[X]
const C = 1;
public const X A = X::Bar;
public const X\Foo B = X\Foo::Bar;
public const \X\Foo C = \X\Foo::Bar;
}
#[X]
@ -263,6 +267,9 @@ class A extends \NS\B implements \NS\C, \NS\D
public \NS\A|\NS\B|int $prop;
#[\NS\X]
const C = 1;
public const \NS\X A = \NS\X::Bar;
public const \NS\X\Foo B = \NS\X\Foo::Bar;
public const \X\Foo C = \X\Foo::Bar;
}
#[\NS\X]
interface A extends \NS\C, \NS\D