Skip to content

Commit

Permalink
[NodeTypeResolver] Simplify NodeTypeResolver: remove IdentifierTypeRe…
Browse files Browse the repository at this point in the history
…solver dependency (#3733)

* [NodeTypeResolver] Simplify NodeTypeResolver by remove IdentifierTypeResolver dependency

* Fix phpstan

* Fix phpstan

* fix
  • Loading branch information
samsonasik committed May 5, 2023
1 parent 657ec2e commit 8b48059
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 17 deletions.
11 changes: 0 additions & 11 deletions packages/NodeTypeResolver/NodeTypeResolver.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@
use Rector\NodeTypeResolver\NodeTypeCorrector\AccessoryNonEmptyStringTypeCorrector;
use Rector\NodeTypeResolver\NodeTypeCorrector\GenericClassStringTypeCorrector;
use Rector\NodeTypeResolver\NodeTypeCorrector\HasOffsetTypeCorrector;
use Rector\NodeTypeResolver\NodeTypeResolver\IdentifierTypeResolver;
use Rector\StaticTypeMapper\ValueObject\Type\AliasedObjectType;
use Rector\StaticTypeMapper\ValueObject\Type\ShortenedObjectType;
use Rector\TypeDeclaration\PHPStan\ObjectTypeSpecifier;
Expand All @@ -62,7 +61,6 @@ public function __construct(
private readonly ReflectionProvider $reflectionProvider,
private readonly HasOffsetTypeCorrector $hasOffsetTypeCorrector,
private readonly AccessoryNonEmptyStringTypeCorrector $accessoryNonEmptyStringTypeCorrector,
private readonly IdentifierTypeResolver $identifierTypeResolver,
private readonly RenamedClassesDataCollector $renamedClassesDataCollector,
array $nodeTypeResolvers
) {
Expand Down Expand Up @@ -173,19 +171,10 @@ public function getType(Node $node): Type
}
}

if ($node instanceof Identifier) {
return $this->identifierTypeResolver->resolve($node);
}

return new MixedType();
}

if (! $node instanceof Expr) {
// scalar type, e.g. from param type name
if ($node instanceof Identifier) {
return $this->identifierTypeResolver->resolve($node);
}

return new MixedType();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,48 @@

namespace Rector\NodeTypeResolver\NodeTypeResolver;

use PhpParser\Node;
use PhpParser\Node\Identifier;
use PHPStan\Type\BooleanType;
use PHPStan\Type\FloatType;
use PHPStan\Type\IntegerType;
use PHPStan\Type\MixedType;
use PHPStan\Type\StringType;
use PHPStan\Type\Type;
use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface;

final class IdentifierTypeResolver
/**
* @implements NodeTypeResolverInterface<Identifier>
*/
final class IdentifierTypeResolver implements NodeTypeResolverInterface
{
public function resolve(Identifier $identifier): StringType | BooleanType | IntegerType | FloatType | MixedType
/**
* @return array<class-string<Node>>
*/
public function getNodeClasses(): array
{
if ($identifier->toLowerString() === 'string') {
return [Identifier::class];
}

/**
* @param Identifier $node
* @return StringType|BooleanType|IntegerType|FloatType|MixedType
*/
public function resolve(Node $node): Type
{
if ($node->toLowerString() === 'string') {
return new StringType();
}

if ($identifier->toLowerString() === 'bool') {
if ($node->toLowerString() === 'bool') {
return new BooleanType();
}

if ($identifier->toLowerString() === 'int') {
if ($node->toLowerString() === 'int') {
return new IntegerType();
}

if ($identifier->toLowerString() === 'float') {
if ($node->toLowerString() === 'float') {
return new FloatType();
}

Expand Down

0 comments on commit 8b48059

Please sign in to comment.