Skip to content

Commit aab010d

Browse files
committed
Fix native printer literals
1 parent 9e3cf12 commit aab010d

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

resources/aliases/phpstan.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
'non-empty-list' => 'array',
4444
// object
4545
'callable-object' => 'object',
46-
'$this' => 'object',
4746
// callable
4847
'pure-callable' => 'callable',
4948
'pure-closure' => '\Closure',

resources/aliases/psalm.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
'private-properties-of' => 'array',
4545
'properties-of' => 'array',
4646
// object
47-
'$this' => 'object',
4847
'callable-object' => 'object',
4948
'stringable-object' => '\Stringable',
5049
// callable

src/NativeTypePrinter.php

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@
44

55
namespace TypeLang\Printer;
66

7+
use TypeLang\Parser\Node\Literal\BoolLiteralNode;
8+
use TypeLang\Parser\Node\Literal\FloatLiteralNode;
9+
use TypeLang\Parser\Node\Literal\IntLiteralNode;
710
use TypeLang\Parser\Node\Literal\LiteralNode;
11+
use TypeLang\Parser\Node\Literal\NullLiteralNode;
12+
use TypeLang\Parser\Node\Literal\StringLiteralNode;
813
use TypeLang\Parser\Node\Literal\VariableLiteralNode;
914
use TypeLang\Parser\Node\Stmt\CallableTypeNode;
1015
use TypeLang\Parser\Node\Stmt\ClassConstMaskNode;
@@ -226,15 +231,15 @@ protected function printNamedTypeNode(NamedTypeNode $node): string
226231
#[\Override]
227232
protected function printLiteralNode(LiteralNode $node): string
228233
{
229-
if ($node instanceof VariableLiteralNode) {
230-
if ($node->getValue() === 'this') {
231-
return 'self';
232-
}
233-
234-
return 'mixed';
235-
}
236-
237-
return \get_debug_type($node->getRawValue());
234+
return match (true) {
235+
$node instanceof BoolLiteralNode => 'bool',
236+
$node instanceof FloatLiteralNode => 'float',
237+
$node instanceof IntLiteralNode => 'int',
238+
$node instanceof NullLiteralNode => 'null',
239+
$node instanceof StringLiteralNode => 'string',
240+
$node instanceof VariableLiteralNode => $node->getValue() === 'this' ? 'self' : 'mixed',
241+
default => \get_debug_type($node->getValue()),
242+
};
238243
}
239244

240245
#[\Override]

0 commit comments

Comments
 (0)