Skip to content

Commit c402987

Browse files
committed
wip
1 parent 599ac2b commit c402987

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/Type/ParserNodeTypeToPHPStanType.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,24 @@ public static function resolve($type, ?ClassReflection $classReflection): Type
2323
{
2424
if ($type === null) {
2525
return new MixedType();
26+
} elseif ($type instanceof Identifier && $type->isSpecialClassName()) {
27+
// !!!
28+
$typeClassName = (string) $type;
29+
$lowercasedClassName = strtolower($typeClassName);
30+
if ($classReflection !== null && in_array($lowercasedClassName, ['self', 'static'], true)) {
31+
if ($lowercasedClassName === 'static') {
32+
return new StaticType($classReflection);
33+
}
34+
$typeClassName = $classReflection->getName();
35+
} elseif (
36+
$lowercasedClassName === 'parent'
37+
&& $classReflection !== null
38+
&& $classReflection->getParentClass() !== null
39+
) {
40+
$typeClassName = $classReflection->getParentClass()->getName();
41+
}
42+
43+
return new ObjectType($typeClassName);
2644
} elseif ($type instanceof Name) {
2745
$typeClassName = (string) $type;
2846
$lowercasedClassName = strtolower($typeClassName);

0 commit comments

Comments
 (0)