EVOLUTION-NINJA
Edit File: StringTypeAnalyzer.php
<?php declare (strict_types=1); namespace Rector\NodeTypeResolver\TypeAnalyzer; use PhpParser\Node; use PHPStan\Type\StringType; use PHPStan\Type\UnionType; use Rector\NodeTypeResolver\NodeTypeResolver; final class StringTypeAnalyzer { /** * @readonly * @var \Rector\NodeTypeResolver\NodeTypeResolver */ private $nodeTypeResolver; public function __construct(\Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver) { $this->nodeTypeResolver = $nodeTypeResolver; } public function isStringOrUnionStringOnlyType(\PhpParser\Node $node) : bool { $nodeType = $this->nodeTypeResolver->getType($node); if ($nodeType instanceof \PHPStan\Type\StringType) { return \true; } if ($nodeType instanceof \PHPStan\Type\UnionType) { foreach ($nodeType->getTypes() as $singleType) { if ($singleType->isSuperTypeOf(new \PHPStan\Type\StringType())->no()) { return \false; } } return \true; } return \false; } }