Updated Rector to commit 558f44d5939be4314d76f4850a34be3590e65bfd

558f44d593 [TypeDeclaration] Skip more detailed type on AddMethodCallBasedStrictParamTypeRector (#5866)
This commit is contained in:
Tomas Votruba 2024-05-10 03:14:36 +00:00
parent f7723ed647
commit fe891363d5
2 changed files with 14 additions and 3 deletions

View File

@ -17,6 +17,7 @@ use PHPStan\Type\UnionType;
use Rector\NodeCollector\ValueObject\ArrayCallable;
use Rector\NodeTypeResolver\NodeTypeResolver;
use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory;
use Rector\NodeTypeResolver\TypeComparator\TypeComparator;
final class CallTypesResolver
{
/**
@ -34,11 +35,17 @@ final class CallTypesResolver
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
public function __construct(NodeTypeResolver $nodeTypeResolver, TypeFactory $typeFactory, ReflectionProvider $reflectionProvider)
/**
* @readonly
* @var \Rector\NodeTypeResolver\TypeComparator\TypeComparator
*/
private $typeComparator;
public function __construct(NodeTypeResolver $nodeTypeResolver, TypeFactory $typeFactory, ReflectionProvider $reflectionProvider, TypeComparator $typeComparator)
{
$this->nodeTypeResolver = $nodeTypeResolver;
$this->typeFactory = $typeFactory;
$this->reflectionProvider = $reflectionProvider;
$this->typeComparator = $typeComparator;
}
/**
* @param MethodCall[]|StaticCall[]|ArrayCallable[] $calls
@ -76,6 +83,10 @@ final class CallTypesResolver
if (!$this->reflectionProvider->hasClass($argValueType->getClassName())) {
return new MixedType();
}
$type = $this->nodeTypeResolver->getType($arg->value);
if (!$type->equals($argValueType) && $this->typeComparator->isSubtype($type, $argValueType)) {
return $type;
}
return $argValueType;
}
private function correctSelfType(Type $argValueType) : Type

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = 'ef84a1a722c39839de1bcd79e0d3558b3e7d935d';
public const PACKAGE_VERSION = '558f44d5939be4314d76f4850a34be3590e65bfd';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2024-05-09 08:08:22';
public const RELEASE_DATE = '2024-05-10 10:10:29';
/**
* @var int
*/