diff --git a/packages/StaticTypeMapper/PhpDocParser/IntersectionTypeMapper.php b/packages/StaticTypeMapper/PhpDocParser/IntersectionTypeMapper.php index 3e7178f1c15..b8d6acc5a66 100644 --- a/packages/StaticTypeMapper/PhpDocParser/IntersectionTypeMapper.php +++ b/packages/StaticTypeMapper/PhpDocParser/IntersectionTypeMapper.php @@ -5,33 +5,31 @@ namespace Rector\StaticTypeMapper\PhpDocParser; use PhpParser\Node; use PHPStan\Analyser\NameScope; +use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use PHPStan\PhpDocParser\Ast\Type\IntersectionTypeNode; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Type\IntersectionType; +use PHPStan\Type\MixedType; use PHPStan\Type\Type; use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface; -use Rector\StaticTypeMapper\PhpDoc\PhpDocTypeMapper; -use RectorPrefix202308\Symfony\Contracts\Service\Attribute\Required; /** * @implements PhpDocTypeMapperInterface */ final class IntersectionTypeMapper implements PhpDocTypeMapperInterface { /** - * @var \Rector\StaticTypeMapper\PhpDoc\PhpDocTypeMapper + * @readonly + * @var \Rector\StaticTypeMapper\PhpDocParser\IdentifierTypeMapper */ - private $phpDocTypeMapper; + private $identifierTypeMapper; + public function __construct(\Rector\StaticTypeMapper\PhpDocParser\IdentifierTypeMapper $identifierTypeMapper) + { + $this->identifierTypeMapper = $identifierTypeMapper; + } public function getNodeType() : string { return IntersectionTypeNode::class; } - /** - * @required - */ - public function autowire(PhpDocTypeMapper $phpDocTypeMapper) : void - { - $this->phpDocTypeMapper = $phpDocTypeMapper; - } /** * @param IntersectionTypeNode $typeNode */ @@ -39,7 +37,10 @@ final class IntersectionTypeMapper implements PhpDocTypeMapperInterface { $intersectionedTypes = []; foreach ($typeNode->types as $intersectionedTypeNode) { - $intersectionedTypes[] = $this->phpDocTypeMapper->mapToPHPStanType($intersectionedTypeNode, $node, $nameScope); + if (!$intersectionedTypeNode instanceof IdentifierTypeNode) { + return new MixedType(); + } + $intersectionedTypes[] = $this->identifierTypeMapper->mapIdentifierTypeNode($intersectionedTypeNode, $node); } return new IntersectionType($intersectionedTypes); } diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 3e73c9573ec..4db81ba064a 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = 'bb2e1e5fc0d15c83cd9df52d7fe6da22c1bb169d'; + public const PACKAGE_VERSION = '73112a253e40199adda14259717e4d8c630c97d1'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-08-07 16:44:11'; + public const RELEASE_DATE = '2023-08-07 16:58:34'; /** * @var int */ diff --git a/vendor/autoload.php b/vendor/autoload.php index ecf004abe2b..902725f7869 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInit634b45217e6bbd035de9cf3ebf93b76d::getLoader(); +return ComposerAutoloaderIniteb2977d07722edfb3f92b84a842954d4::getLoader(); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index b6a9ca60c54..1db848c06ab 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit634b45217e6bbd035de9cf3ebf93b76d +class ComposerAutoloaderIniteb2977d07722edfb3f92b84a842954d4 { private static $loader; @@ -22,17 +22,17 @@ class ComposerAutoloaderInit634b45217e6bbd035de9cf3ebf93b76d return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit634b45217e6bbd035de9cf3ebf93b76d', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderIniteb2977d07722edfb3f92b84a842954d4', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit634b45217e6bbd035de9cf3ebf93b76d', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderIniteb2977d07722edfb3f92b84a842954d4', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit634b45217e6bbd035de9cf3ebf93b76d::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticIniteb2977d07722edfb3f92b84a842954d4::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit634b45217e6bbd035de9cf3ebf93b76d::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticIniteb2977d07722edfb3f92b84a842954d4::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index a2e3647ad47..1bd20c771a4 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit634b45217e6bbd035de9cf3ebf93b76d +class ComposerStaticIniteb2977d07722edfb3f92b84a842954d4 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -3010,9 +3010,9 @@ class ComposerStaticInit634b45217e6bbd035de9cf3ebf93b76d public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit634b45217e6bbd035de9cf3ebf93b76d::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit634b45217e6bbd035de9cf3ebf93b76d::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit634b45217e6bbd035de9cf3ebf93b76d::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticIniteb2977d07722edfb3f92b84a842954d4::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticIniteb2977d07722edfb3f92b84a842954d4::$prefixDirsPsr4; + $loader->classMap = ComposerStaticIniteb2977d07722edfb3f92b84a842954d4::$classMap; }, null, ClassLoader::class); }