Skip to content

Commit 1f873d7

Browse files
committed
Try alternative alias idea
1 parent 974172d commit 1f873d7

File tree

4 files changed

+17
-16
lines changed

4 files changed

+17
-16
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"brick/math": "^0.14.0",
1919
"phpstan/phpdoc-parser": "^2.1",
2020
"symfony/polyfill-php84": "^1.33",
21-
"typhoon/type": "^0.6@dev"
21+
"typhoon/type": "dev-alias"
2222
},
2323
"require-dev": {
2424
"bamarni/composer-bin-plugin": "^1.8.2",

composer.lock

Lines changed: 7 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Context.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
namespace Typhoon\PHPStanTypeParser;
66

7-
use Typhoon\Type\AliasT;
7+
use Typhoon\Type\Alias\AtClass;
8+
use Typhoon\Type\Alias\AtFunction;
89
use Typhoon\Type\TemplateT;
910

1011
final class Context
@@ -20,7 +21,7 @@ final class Context
2021
private array $templates = [];
2122

2223
/**
23-
* @var array<non-empty-string, AliasT>
24+
* @var array<non-empty-string, AtFunction|AtClass>
2425
*/
2526
private array $aliases = [];
2627

@@ -47,7 +48,7 @@ public function useTemplate(TemplateT $template): self
4748
/**
4849
* @param ?non-empty-string $as
4950
*/
50-
public function useAlias(AliasT $alias, ?string $as = null): self
51+
public function useAlias(AtFunction|AtClass $alias, ?string $as = null): self
5152
{
5253
$context = clone $this;
5354
$context->aliases[$as ?? $alias->name] = $alias;
@@ -60,7 +61,7 @@ public function resolveAsClass(string $name): Name
6061
return Name::parse($name)->resolveClass($this->namespace, $this->importTable);
6162
}
6263

63-
public function resolve(string $name): Name|TemplateT|AliasT
64+
public function resolve(string $name): TemplateT|AtFunction|AtClass|Name
6465
{
6566
return $this->templates[$name] ?? $this->aliases[$name] ?? $this->resolveAsClass($name);
6667
}

src/Parser.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
use PHPStan\PhpDocParser\Parser\TypeParser;
3232
use PHPStan\PhpDocParser\ParserConfig;
3333
use Typhoon\Type;
34+
use Typhoon\Type\Alias\AtClass;
35+
use Typhoon\Type\Alias\AtFunction;
3436
use Typhoon\Type\AliasT;
3537
use Typhoon\Type\ArrayBareT;
3638
use Typhoon\Type\ArrayT;
@@ -278,10 +280,9 @@ private function identifier(string $name, array $genericNodes = []): Type
278280
return $resolved;
279281
}
280282

281-
if ($resolved instanceof AliasT) {
283+
if ($resolved instanceof AtFunction || $resolved instanceof AtClass) {
282284
return new AliasT(
283-
class: $resolved->class,
284-
name: $resolved->name,
285+
name: $resolved,
285286
templateArguments: $templateArguments,
286287
);
287288
}

0 commit comments

Comments
 (0)