mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-25 20:32:35 +00:00
Updated Rector to commit f7b095495b
f7b095495b
Remove last USE_NODE (#2165)
This commit is contained in:
parent
18c61e765a
commit
e3ae598c02
|
@ -7,6 +7,7 @@ use RectorPrefix20220425\Nette\Utils\Strings;
|
|||
use PHPStan\Type\ArrayType;
|
||||
use PHPStan\Type\BooleanType;
|
||||
use PHPStan\Type\CallableType;
|
||||
use PHPStan\Type\ClassStringType;
|
||||
use PHPStan\Type\Constant\ConstantBooleanType;
|
||||
use PHPStan\Type\FloatType;
|
||||
use PHPStan\Type\IntegerType;
|
||||
|
@ -24,7 +25,7 @@ final class ScalarStringToTypeMapper
|
|||
/**
|
||||
* @var array<class-string<Type>, string[]>
|
||||
*/
|
||||
private const SCALAR_NAME_BY_TYPE = [\PHPStan\Type\StringType::class => ['string'], \PHPStan\Type\FloatType::class => ['float', 'real', 'double'], \PHPStan\Type\IntegerType::class => ['int', 'integer'], \PHPStan\Type\BooleanType::class => ['bool', 'boolean'], \PHPStan\Type\NullType::class => ['null'], \PHPStan\Type\VoidType::class => ['void'], \PHPStan\Type\ResourceType::class => ['resource'], \PHPStan\Type\CallableType::class => ['callback', 'callable'], \PHPStan\Type\ObjectWithoutClassType::class => ['object'], \PHPStan\Type\NeverType::class => ['never', 'never-return', 'never-returns', 'no-return']];
|
||||
private const SCALAR_NAME_BY_TYPE = [\PHPStan\Type\StringType::class => ['string'], \PHPStan\Type\ClassStringType::class => ['class-string'], \PHPStan\Type\FloatType::class => ['float', 'real', 'double'], \PHPStan\Type\IntegerType::class => ['int', 'integer'], \PHPStan\Type\BooleanType::class => ['bool', 'boolean'], \PHPStan\Type\NullType::class => ['null'], \PHPStan\Type\VoidType::class => ['void'], \PHPStan\Type\ResourceType::class => ['resource'], \PHPStan\Type\CallableType::class => ['callback', 'callable'], \PHPStan\Type\ObjectWithoutClassType::class => ['object'], \PHPStan\Type\NeverType::class => ['never', 'never-return', 'never-returns', 'no-return']];
|
||||
public function mapScalarStringToType(string $scalarName) : \PHPStan\Type\Type
|
||||
{
|
||||
$loweredScalarName = \RectorPrefix20220425\Nette\Utils\Strings::lower($scalarName);
|
||||
|
|
|
@ -11,12 +11,16 @@ use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode;
|
|||
use PHPStan\PhpDocParser\Ast\Type\TypeNode;
|
||||
use PHPStan\Reflection\ClassReflection;
|
||||
use PHPStan\Reflection\ReflectionProvider;
|
||||
use PHPStan\Type\ClassStringType;
|
||||
use PHPStan\Type\BooleanType;
|
||||
use PHPStan\Type\FloatType;
|
||||
use PHPStan\Type\IntegerType;
|
||||
use PHPStan\Type\IterableType;
|
||||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use PHPStan\Type\StaticType;
|
||||
use PHPStan\Type\StringType;
|
||||
use PHPStan\Type\Type;
|
||||
use PHPStan\Type\UnionType;
|
||||
use Rector\Core\Enum\ObjectReference;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
|
@ -82,9 +86,6 @@ final class IdentifierTypeMapper implements \Rector\StaticTypeMapper\Contract\Ph
|
|||
return $type;
|
||||
}
|
||||
$loweredName = \strtolower($typeNode->name);
|
||||
if ($loweredName === 'class-string') {
|
||||
return new \PHPStan\Type\ClassStringType();
|
||||
}
|
||||
if ($loweredName === \Rector\Core\Enum\ObjectReference::SELF()->getValue()) {
|
||||
return $this->mapSelf($node);
|
||||
}
|
||||
|
@ -102,6 +103,11 @@ final class IdentifierTypeMapper implements \Rector\StaticTypeMapper\Contract\Ph
|
|||
$typeWithoutPreslash = \RectorPrefix20220425\Nette\Utils\Strings::substring($type, 1);
|
||||
$objectType = new \Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType($typeWithoutPreslash);
|
||||
} else {
|
||||
if ($typeNode->name === 'scalar') {
|
||||
// pseudo type, see https://www.php.net/manual/en/language.types.intro.php
|
||||
$scalarTypes = [new \PHPStan\Type\BooleanType(), new \PHPStan\Type\StringType(), new \PHPStan\Type\IntegerType(), new \PHPStan\Type\FloatType()];
|
||||
return new \PHPStan\Type\UnionType($scalarTypes);
|
||||
}
|
||||
$objectType = new \PHPStan\Type\ObjectType($typeNode->name);
|
||||
}
|
||||
$scope = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::SCOPE);
|
||||
|
|
|
@ -125,6 +125,7 @@ CODE_SAMPLE
|
|||
}
|
||||
/** @var PropertyFetch|StaticPropertyFetch $expr */
|
||||
$variableType = $expr instanceof \PhpParser\Node\Expr\PropertyFetch ? $this->nodeTypeResolver->getType($expr->var) : $this->nodeTypeResolver->getType($expr->class);
|
||||
// dump($variableType);die;
|
||||
if ($variableType instanceof \Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType) {
|
||||
$currentClassLike = $this->betterNodeFinder->findParentType($expr, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if ($currentClassLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
|
|
|
@ -11,14 +11,11 @@ use PhpParser\Node\Stmt\UseUse;
|
|||
use PHPStan\Analyser\Scope;
|
||||
use PHPStan\Reflection\ClassReflection;
|
||||
use PHPStan\Reflection\ReflectionProvider;
|
||||
use PHPStan\Type\BooleanType;
|
||||
use PHPStan\Type\FloatType;
|
||||
use PHPStan\Type\Generic\GenericObjectType;
|
||||
use PHPStan\Type\IntegerType;
|
||||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use PHPStan\Type\StaticType;
|
||||
use PHPStan\Type\StringType;
|
||||
use PHPStan\Type\Type;
|
||||
use PHPStan\Type\TypeWithClassName;
|
||||
use PHPStan\Type\UnionType;
|
||||
use Rector\Core\Enum\ObjectReference;
|
||||
|
@ -55,10 +52,23 @@ final class ObjectTypeSpecifier
|
|||
*/
|
||||
public function narrowToFullyQualifiedOrAliasedObjectType(\PhpParser\Node $node, \PHPStan\Type\ObjectType $objectType, $scope)
|
||||
{
|
||||
// this change will break \Rector\Tests\NodeTypeResolver\PerNodeTypeResolver\ParamTypeResolver\ParamTypeResolverTest
|
||||
$uses = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::USE_NODES);
|
||||
if ($uses === null) {
|
||||
return $objectType;
|
||||
$sameNamespacedObjectType = $this->matchSameNamespacedObjectType($node, $objectType);
|
||||
if ($sameNamespacedObjectType !== null) {
|
||||
return $sameNamespacedObjectType;
|
||||
}
|
||||
if ($scope instanceof \PHPStan\Analyser\Scope) {
|
||||
$className = \ltrim($objectType->getClassName(), '\\');
|
||||
$objectReferenceType = $this->resolveObjectReferenceType($scope, $className);
|
||||
if ($objectReferenceType instanceof \PHPStan\Type\Type) {
|
||||
return $objectReferenceType;
|
||||
}
|
||||
}
|
||||
$uses = $this->useImportsResolver->resolveForNode($node);
|
||||
if ($uses === []) {
|
||||
if (!$this->reflectionProvider->hasClass($objectType->getClassName())) {
|
||||
return new \Rector\StaticTypeMapper\ValueObject\Type\NonExistingObjectType($objectType->getClassName());
|
||||
}
|
||||
return new \Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType($objectType->getClassName(), null, $objectType->getClassReflection());
|
||||
}
|
||||
$aliasedObjectType = $this->matchAliasedObjectType($node, $objectType);
|
||||
if ($aliasedObjectType !== null) {
|
||||
|
@ -68,25 +78,19 @@ final class ObjectTypeSpecifier
|
|||
if ($shortenedObjectType !== null) {
|
||||
return $shortenedObjectType;
|
||||
}
|
||||
$sameNamespacedObjectType = $this->matchSameNamespacedObjectType($node, $objectType);
|
||||
if ($sameNamespacedObjectType !== null) {
|
||||
return $sameNamespacedObjectType;
|
||||
}
|
||||
$className = \ltrim($objectType->getClassName(), '\\');
|
||||
if (\Rector\Core\Enum\ObjectReference::isValid($className)) {
|
||||
if (!$scope instanceof \PHPStan\Analyser\Scope) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
return $this->resolveObjectReferenceType($scope, $className);
|
||||
$resolvedType = $this->resolveObjectReferenceType($scope, $className);
|
||||
if ($resolvedType instanceof \PHPStan\Type\Type) {
|
||||
return $resolvedType;
|
||||
}
|
||||
}
|
||||
if ($this->reflectionProvider->hasClass($className)) {
|
||||
return new \Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType($className);
|
||||
}
|
||||
if ($className === 'scalar') {
|
||||
// pseudo type, see https://www.php.net/manual/en/language.types.intro.php
|
||||
$scalarTypes = [new \PHPStan\Type\BooleanType(), new \PHPStan\Type\StringType(), new \PHPStan\Type\IntegerType(), new \PHPStan\Type\FloatType()];
|
||||
return new \PHPStan\Type\UnionType($scalarTypes);
|
||||
}
|
||||
// invalid type
|
||||
return new \Rector\StaticTypeMapper\ValueObject\Type\NonExistingObjectType($className);
|
||||
}
|
||||
|
@ -212,13 +216,13 @@ final class ObjectTypeSpecifier
|
|||
return new \Rector\StaticTypeMapper\ValueObject\Type\ShortenedObjectType($objectType->getClassName(), $useUse->name->toString());
|
||||
}
|
||||
/**
|
||||
* @return \PHPStan\Type\StaticType|\Rector\StaticTypeMapper\ValueObject\Type\SelfObjectType
|
||||
* @return \PHPStan\Type\StaticType|\Rector\StaticTypeMapper\ValueObject\Type\SelfObjectType|null
|
||||
*/
|
||||
private function resolveObjectReferenceType(\PHPStan\Analyser\Scope $scope, string $classReferenceValue)
|
||||
{
|
||||
$classReflection = $scope->getClassReflection();
|
||||
if (!$classReflection instanceof \PHPStan\Reflection\ClassReflection) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
return null;
|
||||
}
|
||||
if (\Rector\Core\Enum\ObjectReference::STATIC()->getValue() === $classReferenceValue) {
|
||||
return new \PHPStan\Type\StaticType($classReflection);
|
||||
|
@ -233,6 +237,6 @@ final class ObjectTypeSpecifier
|
|||
}
|
||||
return new \Rector\StaticTypeMapper\ValueObject\Type\ParentStaticType($parentClassReflection);
|
||||
}
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,11 +16,11 @@ final class VersionResolver
|
|||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = '25e6b17a862a90d6f67baaba3f164a31d039d3d7';
|
||||
public const PACKAGE_VERSION = 'f7b095495b98f954e5adb50b210cb4954193b6ab';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2022-04-25 10:07:31';
|
||||
public const RELEASE_DATE = '2022-04-25 18:05:16';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
|
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
|
@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
|
|||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit24361428587464401adaac6b98a43b76::getLoader();
|
||||
return ComposerAutoloaderInitbeaf7924f2c8bbcd3f78bea813d51ded::getLoader();
|
||||
|
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInit24361428587464401adaac6b98a43b76
|
||||
class ComposerAutoloaderInitbeaf7924f2c8bbcd3f78bea813d51ded
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
|
@ -22,19 +22,19 @@ class ComposerAutoloaderInit24361428587464401adaac6b98a43b76
|
|||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit24361428587464401adaac6b98a43b76', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInitbeaf7924f2c8bbcd3f78bea813d51ded', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit24361428587464401adaac6b98a43b76', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitbeaf7924f2c8bbcd3f78bea813d51ded', 'loadClassLoader'));
|
||||
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit24361428587464401adaac6b98a43b76::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitbeaf7924f2c8bbcd3f78bea813d51ded::getInitializer($loader));
|
||||
|
||||
$loader->setClassMapAuthoritative(true);
|
||||
$loader->register(true);
|
||||
|
||||
$includeFiles = \Composer\Autoload\ComposerStaticInit24361428587464401adaac6b98a43b76::$files;
|
||||
$includeFiles = \Composer\Autoload\ComposerStaticInitbeaf7924f2c8bbcd3f78bea813d51ded::$files;
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequire24361428587464401adaac6b98a43b76($fileIdentifier, $file);
|
||||
composerRequirebeaf7924f2c8bbcd3f78bea813d51ded($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
|
@ -46,7 +46,7 @@ class ComposerAutoloaderInit24361428587464401adaac6b98a43b76
|
|||
* @param string $file
|
||||
* @return void
|
||||
*/
|
||||
function composerRequire24361428587464401adaac6b98a43b76($fileIdentifier, $file)
|
||||
function composerRequirebeaf7924f2c8bbcd3f78bea813d51ded($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
|
||||
|
|
8
vendor/composer/autoload_static.php
vendored
8
vendor/composer/autoload_static.php
vendored
|
@ -4,7 +4,7 @@
|
|||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInit24361428587464401adaac6b98a43b76
|
||||
class ComposerStaticInitbeaf7924f2c8bbcd3f78bea813d51ded
|
||||
{
|
||||
public static $files = array (
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
|
@ -3872,9 +3872,9 @@ class ComposerStaticInit24361428587464401adaac6b98a43b76
|
|||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit24361428587464401adaac6b98a43b76::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit24361428587464401adaac6b98a43b76::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit24361428587464401adaac6b98a43b76::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitbeaf7924f2c8bbcd3f78bea813d51ded::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitbeaf7924f2c8bbcd3f78bea813d51ded::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInitbeaf7924f2c8bbcd3f78bea813d51ded::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
|
10
vendor/scoper-autoload.php
vendored
10
vendor/scoper-autoload.php
vendored
|
@ -9,8 +9,8 @@ $loader = require_once __DIR__.'/autoload.php';
|
|||
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
|
||||
spl_autoload_call('RectorPrefix20220425\AutoloadIncluder');
|
||||
}
|
||||
if (!class_exists('ComposerAutoloaderInit24361428587464401adaac6b98a43b76', false) && !interface_exists('ComposerAutoloaderInit24361428587464401adaac6b98a43b76', false) && !trait_exists('ComposerAutoloaderInit24361428587464401adaac6b98a43b76', false)) {
|
||||
spl_autoload_call('RectorPrefix20220425\ComposerAutoloaderInit24361428587464401adaac6b98a43b76');
|
||||
if (!class_exists('ComposerAutoloaderInitbeaf7924f2c8bbcd3f78bea813d51ded', false) && !interface_exists('ComposerAutoloaderInitbeaf7924f2c8bbcd3f78bea813d51ded', false) && !trait_exists('ComposerAutoloaderInitbeaf7924f2c8bbcd3f78bea813d51ded', false)) {
|
||||
spl_autoload_call('RectorPrefix20220425\ComposerAutoloaderInitbeaf7924f2c8bbcd3f78bea813d51ded');
|
||||
}
|
||||
if (!class_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !interface_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !trait_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false)) {
|
||||
spl_autoload_call('RectorPrefix20220425\Helmich\TypoScriptParser\Parser\AST\Statement');
|
||||
|
@ -59,9 +59,9 @@ if (!function_exists('print_node')) {
|
|||
return \RectorPrefix20220425\print_node(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('composerRequire24361428587464401adaac6b98a43b76')) {
|
||||
function composerRequire24361428587464401adaac6b98a43b76() {
|
||||
return \RectorPrefix20220425\composerRequire24361428587464401adaac6b98a43b76(...func_get_args());
|
||||
if (!function_exists('composerRequirebeaf7924f2c8bbcd3f78bea813d51ded')) {
|
||||
function composerRequirebeaf7924f2c8bbcd3f78bea813d51ded() {
|
||||
return \RectorPrefix20220425\composerRequirebeaf7924f2c8bbcd3f78bea813d51ded(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('scanPath')) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user