Skip to content

Commit

Permalink
Add type resolver to registered visitors list
Browse files Browse the repository at this point in the history
  • Loading branch information
SerafimArts committed Nov 24, 2023
1 parent c532034 commit 16f0e8b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,20 @@

declare(strict_types=1);

namespace TypeLang\Parser\TypeResolver;
namespace TypeLang\Parser\Traverser;

use TypeLang\Parser\Node\Name;
use TypeLang\Parser\Node\Node;
use TypeLang\Parser\Node\Stmt\CallableTypeNode;
use TypeLang\Parser\Node\Stmt\ClassConstMaskNode;
use TypeLang\Parser\Node\Stmt\ConstMaskNode;
use TypeLang\Parser\Node\Stmt\NamedTypeNode;
use TypeLang\Parser\Traverser\Command;
use TypeLang\Parser\Traverser\Visitor;

/**
* @internal This is an internal library class, please do not use it in your code.
* @psalm-internal TypeLang\Parser
*/
final class TypeResolverVisitor extends Visitor

final class TypeMapVisitor extends Visitor
{
/**
* @param \Closure(Name):(Name|null) $transform
*/
public function __construct(
private readonly \Closure $transform,
) {}
Expand Down
4 changes: 2 additions & 2 deletions src/TypeResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@
use TypeLang\Parser\Node\FullQualifiedName;
use TypeLang\Parser\Node\Name;
use TypeLang\Parser\Node\Stmt\TypeStatement;
use TypeLang\Parser\TypeResolver\TypeResolverVisitor;
use TypeLang\Parser\Traverser\TypeMapVisitor;

final class TypeResolver implements TypeResolverInterface
{
public function resolve(TypeStatement $type, callable $transform): TypeStatement
{
Traverser::through(
visitor: new TypeResolverVisitor($transform(...)),
visitor: new TypeMapVisitor($transform(...)),
nodes: [$type],
);

Expand Down

0 comments on commit 16f0e8b

Please sign in to comment.