|
9 | 9 | use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; |
10 | 10 | use PHPStan\PhpDocParser\Ast\Type\TypeNode; |
11 | 11 | use PHPStan\Type\Generic\TemplateTypeFactory; |
12 | | -use PHPStan\Type\Generic\TemplateTypeHelper; |
13 | 12 | use PHPStan\Type\Generic\TemplateTypeMap; |
14 | 13 | use PHPStan\Type\Generic\TemplateTypeScope; |
15 | 14 | use PHPStan\Type\Generic\TemplateTypeVariance; |
16 | | -use PHPStan\Type\Generic\TemplateTypeVarianceMap; |
17 | 15 | use function array_map; |
18 | 16 | use function array_values; |
19 | 17 | use function count; |
@@ -61,11 +59,6 @@ public function resolve(TypeNodeResolver $typeNodeResolver): Type |
61 | 59 | return $this->resolvedType = $typeNodeResolver->resolve($this->typeNode, $nameScope); |
62 | 60 | } |
63 | 61 |
|
64 | | - public function getAliasName(): string |
65 | | - { |
66 | | - return $this->aliasName; |
67 | | - } |
68 | | - |
69 | 62 | /** Whether this alias was declared with type parameters (e.g. @phpstan-type Foo<T>). */ |
70 | 63 | public function isGeneric(): bool |
71 | 64 | { |
@@ -113,43 +106,6 @@ public function createApplicationType(TypeNodeResolver $typeNodeResolver, array |
113 | 106 | ); |
114 | 107 | } |
115 | 108 |
|
116 | | - /** |
117 | | - * Resolves the alias body substituting concrete $args for each declared template parameter. |
118 | | - * |
119 | | - * @param Type[] $args Concrete types in the same order as the declared template params. |
120 | | - */ |
121 | | - public function resolveWithArgs(TypeNodeResolver $typeNodeResolver, array $args): Type |
122 | | - { |
123 | | - $resolvedType = $this->resolve($typeNodeResolver); |
124 | | - |
125 | | - if (count($this->templateTagValueNodes) === 0) { |
126 | | - return $resolvedType; |
127 | | - } |
128 | | - |
129 | | - // Map each template param name to the supplied arg (or its declared default / upper bound). |
130 | | - $templateTypeMapTypes = []; |
131 | | - foreach (array_values($this->templateTagValueNodes) as $i => $templateTagValueNode) { |
132 | | - if (isset($args[$i])) { |
133 | | - $templateTypeMapTypes[$templateTagValueNode->name] = $args[$i]; |
134 | | - } else { |
135 | | - $bound = $templateTagValueNode->bound !== null |
136 | | - ? $typeNodeResolver->resolve($templateTagValueNode->bound, $this->nameScope) |
137 | | - : new MixedType(true); |
138 | | - $default = $templateTagValueNode->default !== null |
139 | | - ? $typeNodeResolver->resolve($templateTagValueNode->default, $this->nameScope) |
140 | | - : null; |
141 | | - $templateTypeMapTypes[$templateTagValueNode->name] = $default ?? $bound; |
142 | | - } |
143 | | - } |
144 | | - |
145 | | - return TemplateTypeHelper::resolveTemplateTypes( |
146 | | - $resolvedType, |
147 | | - new TemplateTypeMap($templateTypeMapTypes), |
148 | | - TemplateTypeVarianceMap::createEmpty(), |
149 | | - TemplateTypeVariance::createInvariant(), |
150 | | - ); |
151 | | - } |
152 | | - |
153 | 109 | /** |
154 | 110 | * Builds a NameScope augmented with TemplateType placeholders for each declared template param, |
155 | 111 | * so the alias body can reference them (e.g. `TFilter` resolves to a TemplateType). |
|
0 commit comments