*/ final class TypeWithClassNameTypeMapper implements TypeMapperInterface { /** * @readonly * @var \Rector\Core\Php\PhpVersionProvider */ private $phpVersionProvider; public function __construct(PhpVersionProvider $phpVersionProvider) { $this->phpVersionProvider = $phpVersionProvider; } /** * @return class-string */ public function getNodeClass() : string { return TypeWithClassName::class; } /** * @param TypeWithClassName $type */ public function mapToPHPStanPhpDocTypeNode(Type $type) : TypeNode { return new IdentifierTypeNode('string-class'); } /** * @param TypeWithClassName $type */ public function mapToPhpParserNode(Type $type, string $typeKind) : ?Node { if (!$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::SCALAR_TYPES)) { return null; } return new Identifier('string'); } }