Skip to content

Commit 4d08280

Browse files
committed
Type aliases cannot be used internally because they might clash with an existing class name
1 parent 0c282c9 commit 4d08280

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

conf/config.neon

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,7 @@ parameters:
6464
nodesByStringCountMax: 512
6565
reportUnmatchedIgnoredErrors: true
6666
scopeClass: PHPStan\Analyser\MutatingScope
67-
typeAliases:
68-
scalar: 'int|float|string|bool'
69-
number: 'int|float'
67+
typeAliases: []
7068
universalObjectCratesClasses:
7169
- stdClass
7270
stubFiles:

src/PhpDoc/TypeNodeResolver.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
use PHPStan\Type\Type;
6060
use PHPStan\Type\TypeCombinator;
6161
use PHPStan\Type\TypeWithClassName;
62+
use PHPStan\Type\UnionType;
6263
use PHPStan\Type\VoidType;
6364

6465
class TypeNodeResolver
@@ -135,6 +136,12 @@ private function resolveIdentifierTypeNode(IdentifierTypeNode $typeNode, NameSco
135136
case 'array-key':
136137
return new BenevolentUnionType([new IntegerType(), new StringType()]);
137138

139+
case 'scalar':
140+
return new UnionType([new IntegerType(), new FloatType(), new StringType(), new BooleanType()]);
141+
142+
case 'number':
143+
return new UnionType([new IntegerType(), new FloatType()]);
144+
138145
case 'bool':
139146
case 'boolean':
140147
return new BooleanType();

0 commit comments

Comments
 (0)