Updated Rector to commit fba410bf6ed6da0657cb8ec939a22ad3988fc4ad

fba410bf6e [StrictTypes] Add MethodCall/StaticCall to ExclusiveNativeCallLikeReturnMatcher (#2646)
This commit is contained in:
Tomas Votruba 2022-07-09 14:14:37 +00:00
parent 3f8078b17e
commit 8b3c974a42
12 changed files with 106 additions and 92 deletions

View File

@ -11,7 +11,7 @@ use Rector\TypeDeclaration\Rector\ClassMethod\ArrayShapeFromConstantArrayReturnR
use Rector\TypeDeclaration\Rector\ClassMethod\ParamTypeByParentCallTypeRector;
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromReturnNewRector;
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictBoolReturnExprRector;
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNativeFuncCallRector;
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNativeCallRector;
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNewArrayRector;
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedCallRector;
use Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictTypedPropertyRector;
@ -21,5 +21,5 @@ use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictConstructorRec
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictGetterMethodReturnTypeRector;
use Rector\TypeDeclaration\Rector\Property\TypedPropertyFromStrictSetUpRector;
return static function (RectorConfig $rectorConfig) : void {
$rectorConfig->rules([AddClosureReturnTypeRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, ParamTypeFromStrictTypedPropertyRector::class, ReturnTypeFromStrictTypedCallRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromReturnNewRector::class, TypedPropertyFromStrictGetterMethodReturnTypeRector::class, AddMethodCallBasedStrictParamTypeRector::class, ArrayShapeFromConstantArrayReturnRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeFuncCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class]);
$rectorConfig->rules([AddClosureReturnTypeRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, ParamTypeFromStrictTypedPropertyRector::class, ReturnTypeFromStrictTypedCallRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromReturnNewRector::class, TypedPropertyFromStrictGetterMethodReturnTypeRector::class, AddMethodCallBasedStrictParamTypeRector::class, ArrayShapeFromConstantArrayReturnRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class]);
};

View File

@ -9620,11 +9620,11 @@ Add strict return type based on returned strict expr type
<br>
### ReturnTypeFromStrictNativeFuncCallRector
### ReturnTypeFromStrictNativeCallRector
Add strict return type based native function return
Add strict return type based native function or class method return
- class: [`Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNativeFuncCallRector`](../rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeFuncCallRector.php)
- class: [`Rector\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNativeCallRector`](../rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php)
```diff
final class SomeClass

View File

@ -0,0 +1,62 @@
<?php
declare (strict_types=1);
namespace Rector\TypeDeclaration\NodeAnalyzer\ReturnFilter;
use PhpParser\Node\Expr;
use PhpParser\Node\Expr\FuncCall;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Expr\StaticCall;
use PhpParser\Node\Stmt\Return_;
use PHPStan\Reflection\FunctionReflection;
use PHPStan\Reflection\MethodReflection;
use Rector\Core\Reflection\ReflectionResolver;
final class ExclusiveNativeCallLikeReturnMatcher
{
/**
* @readonly
* @var \Rector\Core\Reflection\ReflectionResolver
*/
private $reflectionResolver;
public function __construct(ReflectionResolver $reflectionResolver)
{
$this->reflectionResolver = $reflectionResolver;
}
/**
* @param Return_[] $returns
* @return array<StaticCall|FuncCall|MethodCall>|null
*/
public function match(array $returns)
{
$callLikes = [];
foreach ($returns as $return) {
// we need exact expr return
$returnExpr = $return->expr;
if (!$returnExpr instanceof StaticCall && !$returnExpr instanceof MethodCall && !$returnExpr instanceof FuncCall) {
return null;
}
$functionLikeReflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($returnExpr);
if (!$functionLikeReflection instanceof FunctionReflection && !$functionLikeReflection instanceof MethodReflection) {
return null;
}
// is native func call?
if (!$this->isNativeCallLike($functionLikeReflection)) {
return null;
}
$callLikes[] = $returnExpr;
}
return $callLikes;
}
/**
* @param \PHPStan\Reflection\MethodReflection|\PHPStan\Reflection\FunctionReflection $functionLikeReflection
*/
private function isNativeCallLike($functionLikeReflection) : bool
{
if ($functionLikeReflection instanceof FunctionReflection) {
return $functionLikeReflection->isBuiltin();
}
// is native method call?
$classReflection = $functionLikeReflection->getDeclaringClass();
return $classReflection->isBuiltin();
}
}

View File

@ -1,48 +0,0 @@
<?php
declare (strict_types=1);
namespace Rector\TypeDeclaration\NodeAnalyzer\ReturnFilter;
use PhpParser\Node\Expr;
use PhpParser\Node\Expr\FuncCall;
use PhpParser\Node\Stmt\Return_;
use PHPStan\Reflection\FunctionReflection;
use Rector\Core\Reflection\ReflectionResolver;
final class ExclusiveNativeFuncCallReturnMatcher
{
/**
* @readonly
* @var \Rector\Core\Reflection\ReflectionResolver
*/
private $reflectionResolver;
public function __construct(ReflectionResolver $reflectionResolver)
{
$this->reflectionResolver = $reflectionResolver;
}
/**
* @param Return_[] $returns
* @return FuncCall[]|null
*/
public function match(array $returns)
{
$funcCalls = [];
foreach ($returns as $return) {
// we need exact expr return
if (!$return->expr instanceof Expr) {
return null;
}
if (!$return->expr instanceof FuncCall) {
return null;
}
$functionReflection = $this->reflectionResolver->resolveFunctionLikeReflectionFromCall($return->expr);
if (!$functionReflection instanceof FunctionReflection) {
return null;
}
if (!$functionReflection->isBuiltin()) {
return null;
}
$funcCalls[] = $return->expr;
}
return $funcCalls;
}
}

View File

@ -4,14 +4,14 @@ declare (strict_types=1);
namespace Rector\TypeDeclaration\NodeAnalyzer\ReturnTypeAnalyzer;
use PhpParser\Node\Expr;
use PhpParser\Node\Expr\CallLike;
use PhpParser\Node\Expr\Closure;
use PhpParser\Node\Expr\FuncCall;
use PhpParser\Node\Expr\Yield_;
use PhpParser\Node\Stmt\ClassMethod;
use PhpParser\Node\Stmt\Function_;
use PhpParser\Node\Stmt\Return_;
use Rector\Core\PhpParser\Node\BetterNodeFinder;
use Rector\TypeDeclaration\NodeAnalyzer\ReturnFilter\ExclusiveNativeFuncCallReturnMatcher;
use Rector\TypeDeclaration\NodeAnalyzer\ReturnFilter\ExclusiveNativeCallLikeReturnMatcher;
final class StrictNativeFunctionReturnTypeAnalyzer
{
/**
@ -21,19 +21,19 @@ final class StrictNativeFunctionReturnTypeAnalyzer
private $betterNodeFinder;
/**
* @readonly
* @var \Rector\TypeDeclaration\NodeAnalyzer\ReturnFilter\ExclusiveNativeFuncCallReturnMatcher
* @var \Rector\TypeDeclaration\NodeAnalyzer\ReturnFilter\ExclusiveNativeCallLikeReturnMatcher
*/
private $exclusiveNativeFuncCallReturnMatcher;
public function __construct(BetterNodeFinder $betterNodeFinder, ExclusiveNativeFuncCallReturnMatcher $exclusiveNativeFuncCallReturnMatcher)
private $exclusiveNativeCallLikeReturnMatcher;
public function __construct(BetterNodeFinder $betterNodeFinder, ExclusiveNativeCallLikeReturnMatcher $exclusiveNativeCallLikeReturnMatcher)
{
$this->betterNodeFinder = $betterNodeFinder;
$this->exclusiveNativeFuncCallReturnMatcher = $exclusiveNativeFuncCallReturnMatcher;
$this->exclusiveNativeCallLikeReturnMatcher = $exclusiveNativeCallLikeReturnMatcher;
}
/**
* @return FuncCall[]|null
* @return CallLike[]|null
* @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Expr\Closure|\PhpParser\Node\Stmt\Function_ $functionLike
*/
public function matchAlwaysReturnNativeFuncCalls($functionLike) : ?array
public function matchAlwaysReturnNativeCallLikes($functionLike) : ?array
{
if ($functionLike->stmts === null) {
return null;
@ -54,11 +54,11 @@ final class StrictNativeFunctionReturnTypeAnalyzer
if (!$this->hasClassMethodRootReturn($functionLike)) {
return null;
}
$nativeFuncCalls = $this->exclusiveNativeFuncCallReturnMatcher->match($returns);
if ($nativeFuncCalls === null) {
$nativeCalls = $this->exclusiveNativeCallLikeReturnMatcher->match($returns);
if ($nativeCalls === null) {
return null;
}
return $nativeFuncCalls;
return $nativeCalls;
}
/**
* @param Return_[] $returns

View File

@ -17,9 +17,9 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
/**
* @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNativeFuncCallRector\ReturnTypeFromStrictNativeFuncCallRectorTest
* @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\ReturnTypeFromStrictNativeCallRector\ReturnTypeFromStrictNativeCallRectorTest
*/
final class ReturnTypeFromStrictNativeFuncCallRector extends AbstractRector implements MinPhpVersionInterface
final class ReturnTypeFromStrictNativeCallRector extends AbstractRector implements MinPhpVersionInterface
{
/**
* @readonly
@ -38,7 +38,7 @@ final class ReturnTypeFromStrictNativeFuncCallRector extends AbstractRector impl
}
public function getRuleDefinition() : RuleDefinition
{
return new RuleDefinition('Add strict return type based native function return', [new CodeSample(<<<'CODE_SAMPLE'
return new RuleDefinition('Add strict return type based native function or class method return', [new CodeSample(<<<'CODE_SAMPLE'
final class SomeClass
{
public function run()
@ -73,15 +73,15 @@ CODE_SAMPLE
if ($node->returnType !== null) {
return null;
}
$nativeFuncCalls = $this->strictNativeFunctionReturnTypeAnalyzer->matchAlwaysReturnNativeFuncCalls($node);
if ($nativeFuncCalls === null) {
$nativeCallLikes = $this->strictNativeFunctionReturnTypeAnalyzer->matchAlwaysReturnNativeCallLikes($node);
if ($nativeCallLikes === null) {
return null;
}
$funcCallTypes = [];
foreach ($nativeFuncCalls as $nativeFuncCall) {
$funcCallTypes[] = $this->getType($nativeFuncCall);
$callLikeTypes = [];
foreach ($nativeCallLikes as $nativeCallLike) {
$callLikeTypes[] = $this->getType($nativeCallLike);
}
$returnType = $this->typeFactory->createMixedPassedOrUnionType($funcCallTypes);
$returnType = $this->typeFactory->createMixedPassedOrUnionType($callLikeTypes);
if ($returnType instanceof MixedType) {
return null;
}

View File

@ -17,12 +17,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = 'f9916a10977a7000c126a01e17bf7c6f69ccf737';
public const PACKAGE_VERSION = 'fba410bf6ed6da0657cb8ec939a22ad3988fc4ad';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2022-07-09 09:11:14';
public const RELEASE_DATE = '2022-07-09 14:09:38';
/**
* @var int
*/

View File

@ -172,7 +172,7 @@ final class ReflectionResolver
return $this->resolveMethodReflection($callerType->getClassName(), $methodName, $scope);
}
/**
* @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\FuncCall $call
* @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\FuncCall|\PhpParser\Node\Expr\StaticCall $call
* @return \PHPStan\Reflection\MethodReflection|\PHPStan\Reflection\FunctionReflection|null
*/
public function resolveFunctionLikeReflectionFromCall($call)

2
vendor/autoload.php vendored
View File

@ -9,4 +9,4 @@ if (PHP_VERSION_ID < 50600) {
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitcdd0dc95e8e1e7c13cef6a3279da4c44::getLoader();
return ComposerAutoloaderInit45dd80ba9097691ea865802d8b675d2f::getLoader();

View File

@ -2991,7 +2991,7 @@ return array(
'Rector\\TypeDeclaration\\NodeAnalyzer\\ClassMethodAndPropertyAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ClassMethodAndPropertyAnalyzer.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ClassMethodParamTypeCompleter' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ClassMethodParamTypeCompleter.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ControllerRenderMethodAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ControllerRenderMethodAnalyzer.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnFilter\\ExclusiveNativeFuncCallReturnMatcher' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnFilter/ExclusiveNativeFuncCallReturnMatcher.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnFilter\\ExclusiveNativeCallLikeReturnMatcher' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnFilter/ExclusiveNativeCallLikeReturnMatcher.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnStrictTypeAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnStrictTypeAnalyzer.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnTypeAnalyzer\\AlwaysStrictReturnAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnTypeAnalyzer/AlwaysStrictReturnAnalyzer.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnTypeAnalyzer\\StrictBoolReturnTypeAnalyzer' => $baseDir . '/rules/TypeDeclaration/NodeAnalyzer/ReturnTypeAnalyzer/StrictBoolReturnTypeAnalyzer.php',
@ -3022,7 +3022,7 @@ return array(
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnNeverTypeRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnNeverTypeRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromReturnNewRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromReturnNewRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictBoolReturnExprRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictBoolReturnExprRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNativeFuncCallRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeFuncCallRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNativeCallRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNewArrayRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNewArrayRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictTypedCallRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedCallRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictTypedPropertyRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedPropertyRector.php',

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitcdd0dc95e8e1e7c13cef6a3279da4c44
class ComposerAutoloaderInit45dd80ba9097691ea865802d8b675d2f
{
private static $loader;
@ -22,19 +22,19 @@ class ComposerAutoloaderInitcdd0dc95e8e1e7c13cef6a3279da4c44
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitcdd0dc95e8e1e7c13cef6a3279da4c44', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit45dd80ba9097691ea865802d8b675d2f', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInitcdd0dc95e8e1e7c13cef6a3279da4c44', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit45dd80ba9097691ea865802d8b675d2f', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit45dd80ba9097691ea865802d8b675d2f::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
$includeFiles = \Composer\Autoload\ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44::$files;
$includeFiles = \Composer\Autoload\ComposerStaticInit45dd80ba9097691ea865802d8b675d2f::$files;
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequirecdd0dc95e8e1e7c13cef6a3279da4c44($fileIdentifier, $file);
composerRequire45dd80ba9097691ea865802d8b675d2f($fileIdentifier, $file);
}
return $loader;
@ -46,7 +46,7 @@ class ComposerAutoloaderInitcdd0dc95e8e1e7c13cef6a3279da4c44
* @param string $file
* @return void
*/
function composerRequirecdd0dc95e8e1e7c13cef6a3279da4c44($fileIdentifier, $file)
function composerRequire45dd80ba9097691ea865802d8b675d2f($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;

View File

@ -4,7 +4,7 @@
namespace Composer\Autoload;
class ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44
class ComposerStaticInit45dd80ba9097691ea865802d8b675d2f
{
public static $files = array (
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
@ -3298,7 +3298,7 @@ class ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44
'Rector\\TypeDeclaration\\NodeAnalyzer\\ClassMethodAndPropertyAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ClassMethodAndPropertyAnalyzer.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ClassMethodParamTypeCompleter' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ClassMethodParamTypeCompleter.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ControllerRenderMethodAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ControllerRenderMethodAnalyzer.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnFilter\\ExclusiveNativeFuncCallReturnMatcher' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnFilter/ExclusiveNativeFuncCallReturnMatcher.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnFilter\\ExclusiveNativeCallLikeReturnMatcher' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnFilter/ExclusiveNativeCallLikeReturnMatcher.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnStrictTypeAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnStrictTypeAnalyzer.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnTypeAnalyzer\\AlwaysStrictReturnAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnTypeAnalyzer/AlwaysStrictReturnAnalyzer.php',
'Rector\\TypeDeclaration\\NodeAnalyzer\\ReturnTypeAnalyzer\\StrictBoolReturnTypeAnalyzer' => __DIR__ . '/../..' . '/rules/TypeDeclaration/NodeAnalyzer/ReturnTypeAnalyzer/StrictBoolReturnTypeAnalyzer.php',
@ -3329,7 +3329,7 @@ class ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnNeverTypeRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnNeverTypeRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromReturnNewRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromReturnNewRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictBoolReturnExprRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictBoolReturnExprRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNativeFuncCallRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeFuncCallRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNativeCallRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictNewArrayRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNewArrayRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictTypedCallRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedCallRector.php',
'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnTypeFromStrictTypedPropertyRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictTypedPropertyRector.php',
@ -3412,9 +3412,9 @@ class ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInitcdd0dc95e8e1e7c13cef6a3279da4c44::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit45dd80ba9097691ea865802d8b675d2f::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit45dd80ba9097691ea865802d8b675d2f::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit45dd80ba9097691ea865802d8b675d2f::$classMap;
}, null, ClassLoader::class);
}