PATH:
opt
/
cpanel
/
ea-wappspector
/
vendor
/
rector
/
rector
/
src
/
PHPStanStaticTypeMapper
/
TypeMapper
<?php declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; use PhpParser\Node; use PhpParser\Node\Identifier; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Type\BooleanType; use PHPStan\Type\Constant\ConstantBooleanType; use PHPStan\Type\Type; use Rector\Php\PhpVersionProvider; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\ValueObject\PhpVersionFeature; /** * @implements TypeMapperInterface<BooleanType> */ final class BooleanTypeMapper implements TypeMapperInterface { /** * @readonly * @var \Rector\Php\PhpVersionProvider */ private $phpVersionProvider; public function __construct(PhpVersionProvider $phpVersionProvider) { $this->phpVersionProvider = $phpVersionProvider; } public function getNodeClass() : string { return BooleanType::class; } /** * @param BooleanType $type */ public function mapToPHPStanPhpDocTypeNode(Type $type) : TypeNode { return $type->toPhpDocNode(); } /** * @param BooleanType $type */ public function mapToPhpParserNode(Type $type, string $typeKind) : ?Node { if (!$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::SCALAR_TYPES)) { return null; } if ($typeKind === TypeKind::PROPERTY) { return new Identifier('bool'); } if ($typeKind === TypeKind::UNION && $type instanceof ConstantBooleanType && $type->getValue() === \false) { return new Identifier('false'); } if ($this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::NULL_FALSE_TRUE_STANDALONE_TYPE) && $type instanceof ConstantBooleanType) { return $type->getValue() ? new Identifier('true') : new Identifier('false'); } return new Identifier('bool'); } }
[-] MixedTypeMapper.php
[edit]
[-] NeverTypeMapper.php
[edit]
[-] ObjectWithoutClassTypeMapper.php
[edit]
[-] ResourceTypeMapper.php
[edit]
[-] NonEmptyArrayTypeMapper.php
[edit]
[-] HasOffsetValueTypeTypeMapper.php
[edit]
[-] StringTypeMapper.php
[edit]
[-] IntegerTypeMapper.php
[edit]
[-] ArrayTypeMapper.php
[edit]
[-] IntersectionTypeMapper.php
[edit]
[+]
..
[-] ClosureTypeMapper.php
[edit]
[-] ConditionalTypeMapper.php
[edit]
[-] HasPropertyTypeMapper.php
[edit]
[-] ParentStaticTypeMapper.php
[edit]
[-] CallableTypeMapper.php
[edit]
[-] StrictMixedTypeMapper.php
[edit]
[-] GenericClassStringTypeMapper.php
[edit]
[-] VoidTypeMapper.php
[edit]
[-] ClassStringTypeMapper.php
[edit]
[-] UnionTypeMapper.php
[edit]
[-] ThisTypeMapper.php
[edit]
[-] OversizedArrayTypeMapper.php
[edit]
[-] AccessoryNonEmptyStringTypeMapper.php
[edit]
[-] TypeWithClassNameTypeMapper.php
[edit]
[-] FloatTypeMapper.php
[edit]
[-] HasMethodTypeMapper.php
[edit]
[-] ObjectTypeMapper.php
[edit]
[-] BooleanTypeMapper.php
[edit]
[-] NullTypeMapper.php
[edit]
[-] HasOffsetTypeMapper.php
[edit]
[-] AccessoryNumericStringTypeMapper.php
[edit]
[-] SelfObjectTypeMapper.php
[edit]
[-] StaticTypeMapper.php
[edit]
[-] ConditionalTypeForParameterMapper.php
[edit]
[-] AccessoryNonFalsyStringTypeMapper.php
[edit]
[-] IterableTypeMapper.php
[edit]
[-] AccessoryLiteralStringTypeMapper.php
[edit]