mirror of
https://github.com/danog/psalm.git
synced 2024-11-30 04:39:00 +01:00
Fix #2539 - use unaliased parent class name
This commit is contained in:
parent
7ea6c8097d
commit
872365f444
@ -1064,6 +1064,7 @@ class ReflectorVisitor extends PhpParser\NodeVisitorAbstract implements PhpParse
|
||||
|
||||
if ($node->extends) {
|
||||
$parent_fqcln = ClassLikeAnalyzer::getFQCLNFromNameObject($node->extends, $this->aliases);
|
||||
$parent_fqcln = $this->codebase->classlikes->getUnAliasedName($parent_fqcln);
|
||||
$this->codebase->scanner->queueClassLikeForScanning(
|
||||
$parent_fqcln,
|
||||
$this->file_path,
|
||||
@ -1087,6 +1088,7 @@ class ReflectorVisitor extends PhpParser\NodeVisitorAbstract implements PhpParse
|
||||
|
||||
foreach ($node->extends as $interface) {
|
||||
$interface_fqcln = ClassLikeAnalyzer::getFQCLNFromNameObject($interface, $this->aliases);
|
||||
$interface_fqcln = $this->codebase->classlikes->getUnAliasedName($interface_fqcln);
|
||||
$this->codebase->scanner->queueClassLikeForScanning($interface_fqcln, $this->file_path);
|
||||
$storage->parent_interfaces[strtolower($interface_fqcln)] = $interface_fqcln;
|
||||
$this->file_storage->required_interfaces[strtolower($interface_fqcln)] = $interface_fqcln;
|
||||
|
@ -455,7 +455,17 @@ class ClassTest extends TestCase
|
||||
class_alias(FeatureV1::class, Feature::class);
|
||||
class App { use Feature; }
|
||||
'
|
||||
]
|
||||
],
|
||||
'classAliasParent' => [
|
||||
'<?php
|
||||
class NewA {}
|
||||
class_alias(NewA::class, OldA::class);
|
||||
function action(NewA $_m): void {}
|
||||
|
||||
class OldAChild extends OldA {}
|
||||
action(new OldA());
|
||||
action(new OldAChild());'
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user