Updated Rector to commit df5a7bbfbf4e01f4b485603bacab0f1fd807b7f7

df5a7bbfbf [DX] Kick of SimpleParameterProvider (#4405)
This commit is contained in:
Tomas Votruba 2023-07-03 13:55:43 +00:00
parent 2d92d14602
commit 493a57e478
13 changed files with 147 additions and 38 deletions

View File

@ -7,6 +7,7 @@ use Rector\Caching\ValueObject\Storage\FileCacheStorage;
use Rector\Caching\ValueObject\Storage\MemoryCacheStorage;
use Rector\Core\Configuration\Option;
use Rector\Core\Configuration\Parameter\ParameterProvider;
use Rector\Core\Configuration\Parameter\SimpleParameterProvider;
use RectorPrefix202307\Symfony\Component\Filesystem\Filesystem;
final class CacheFactory
{
@ -32,7 +33,7 @@ final class CacheFactory
{
$cacheDirectory = $this->parameterProvider->provideStringParameter(Option::CACHE_DIR);
$cacheClass = FileCacheStorage::class;
if ($this->parameterProvider->hasParameter(Option::CACHE_CLASS)) {
if (SimpleParameterProvider::hasParameter(Option::CACHE_CLASS)) {
$cacheClass = $this->parameterProvider->provideStringParameter(Option::CACHE_CLASS);
}
if ($cacheClass === FileCacheStorage::class) {

View File

@ -5,6 +5,7 @@ namespace Rector\Config;
use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface;
use Rector\Core\Configuration\Option;
use Rector\Core\Configuration\Parameter\SimpleParameterProvider;
use Rector\Core\Configuration\ValueObjectInliner;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Contract\Rector\NonPhpRectorInterface;
@ -34,6 +35,7 @@ final class RectorConfig extends ContainerConfigurator
Assert::allString($paths);
$parameters = $this->parameters();
$parameters->set(Option::PATHS, $paths);
SimpleParameterProvider::setParameter(Option::PATHS, $paths);
}
/**
* @param string[] $sets
@ -50,24 +52,31 @@ final class RectorConfig extends ContainerConfigurator
{
$parameters = $this->parameters();
$parameters->set(Option::PARALLEL, \false);
SimpleParameterProvider::setParameter(Option::PARALLEL, \false);
}
public function parallel(int $seconds = 120, int $maxNumberOfProcess = 16, int $jobSize = 20) : void
{
$parameters = $this->parameters();
$parameters->set(Option::PARALLEL, \true);
SimpleParameterProvider::setParameter(Option::PARALLEL, \true);
$parameters->set(Option::PARALLEL_JOB_TIMEOUT_IN_SECONDS, $seconds);
SimpleParameterProvider::setParameter(Option::PARALLEL_JOB_TIMEOUT_IN_SECONDS, $seconds);
$parameters->set(Option::PARALLEL_MAX_NUMBER_OF_PROCESSES, $maxNumberOfProcess);
SimpleParameterProvider::setParameter(Option::PARALLEL_MAX_NUMBER_OF_PROCESSES, $maxNumberOfProcess);
$parameters->set(Option::PARALLEL_JOB_SIZE, $jobSize);
SimpleParameterProvider::setParameter(Option::PARALLEL_JOB_SIZE, $jobSize);
}
public function noDiffs() : void
{
$parameters = $this->parameters();
$parameters->set(Option::NO_DIFFS, \true);
SimpleParameterProvider::setParameter(Option::NO_DIFFS, \true);
}
public function memoryLimit(string $memoryLimit) : void
{
$parameters = $this->parameters();
$parameters->set(Option::MEMORY_LIMIT, $memoryLimit);
SimpleParameterProvider::setParameter(Option::MEMORY_LIMIT, $memoryLimit);
}
/**
* @param array<int|string, mixed> $criteria
@ -76,22 +85,27 @@ final class RectorConfig extends ContainerConfigurator
{
$parameters = $this->parameters();
$parameters->set(Option::SKIP, $criteria);
SimpleParameterProvider::addParameter(Option::SKIP, $criteria);
}
public function removeUnusedImports(bool $removeUnusedImports = \true) : void
{
$parameters = $this->parameters();
$parameters->set(Option::REMOVE_UNUSED_IMPORTS, $removeUnusedImports);
SimpleParameterProvider::setParameter(Option::REMOVE_UNUSED_IMPORTS, $removeUnusedImports);
}
public function importNames(bool $importNames = \true, bool $importDocBlockNames = \true) : void
{
$parameters = $this->parameters();
$parameters->set(Option::AUTO_IMPORT_NAMES, $importNames);
SimpleParameterProvider::setParameter(Option::AUTO_IMPORT_NAMES, $importNames);
$parameters->set(Option::AUTO_IMPORT_DOC_BLOCK_NAMES, $importDocBlockNames);
SimpleParameterProvider::setParameter(Option::AUTO_IMPORT_DOC_BLOCK_NAMES, $importDocBlockNames);
}
public function importShortClasses(bool $importShortClasses = \true) : void
{
$parameters = $this->parameters();
$parameters->set(Option::IMPORT_SHORT_CLASSES, $importShortClasses);
SimpleParameterProvider::setParameter(Option::IMPORT_SHORT_CLASSES, $importShortClasses);
}
/**
* Set PHPStan custom config to load extensions and custom configuration to Rector.
@ -102,6 +116,7 @@ final class RectorConfig extends ContainerConfigurator
Assert::fileExists($filePath);
$parameters = $this->parameters();
$parameters->set(Option::PHPSTAN_FOR_RECTOR_PATH, $filePath);
SimpleParameterProvider::setParameter(Option::PHPSTAN_FOR_RECTOR_PATH, $filePath);
}
/**
* @param class-string<ConfigurableRectorInterface&RectorInterface> $rectorClass
@ -152,6 +167,7 @@ final class RectorConfig extends ContainerConfigurator
{
$parameters = $this->parameters();
$parameters->set(Option::PHP_VERSION_FEATURES, $phpVersion);
SimpleParameterProvider::setParameter(Option::PHP_VERSION_FEATURES, $phpVersion);
}
/**
* @param string[] $autoloadPaths
@ -161,6 +177,7 @@ final class RectorConfig extends ContainerConfigurator
Assert::allString($autoloadPaths);
$parameters = $this->parameters();
$parameters->set(Option::AUTOLOAD_PATHS, $autoloadPaths);
SimpleParameterProvider::setParameter(Option::AUTOLOAD_PATHS, $autoloadPaths);
}
/**
* @param string[] $bootstrapFiles
@ -170,16 +187,19 @@ final class RectorConfig extends ContainerConfigurator
Assert::allString($bootstrapFiles);
$parameters = $this->parameters();
$parameters->set(Option::BOOTSTRAP_FILES, $bootstrapFiles);
SimpleParameterProvider::setParameter(Option::BOOTSTRAP_FILES, $bootstrapFiles);
}
public function symfonyContainerXml(string $filePath) : void
{
$parameters = $this->parameters();
$parameters->set(Option::SYMFONY_CONTAINER_XML_PATH_PARAMETER, $filePath);
SimpleParameterProvider::setParameter(Option::SYMFONY_CONTAINER_XML_PATH_PARAMETER, $filePath);
}
public function symfonyContainerPhp(string $filePath) : void
{
$parameters = $this->parameters();
$parameters->set(Option::SYMFONY_CONTAINER_PHP_PATH_PARAMETER, $filePath);
SimpleParameterProvider::setParameter(Option::SYMFONY_CONTAINER_PHP_PATH_PARAMETER, $filePath);
}
/**
* @param string[] $extensions
@ -189,11 +209,13 @@ final class RectorConfig extends ContainerConfigurator
Assert::allString($extensions);
$parameters = $this->parameters();
$parameters->set(Option::FILE_EXTENSIONS, $extensions);
SimpleParameterProvider::setParameter(Option::FILE_EXTENSIONS, $extensions);
}
public function nestedChainMethodCallLimit(int $limit) : void
{
$parameters = $this->parameters();
$parameters->set(Option::NESTED_CHAIN_METHOD_CALL_LIMIT, $limit);
SimpleParameterProvider::setParameter(Option::NESTED_CHAIN_METHOD_CALL_LIMIT, $limit);
}
public function cacheDirectory(string $directoryPath) : void
{
@ -201,6 +223,7 @@ final class RectorConfig extends ContainerConfigurator
// when not exists, so no need to validate $directoryPath is a directory
$parameters = $this->parameters();
$parameters->set(Option::CACHE_DIR, $directoryPath);
SimpleParameterProvider::setParameter(Option::CACHE_DIR, $directoryPath);
}
public function containerCacheDirectory(string $directoryPath) : void
{
@ -208,6 +231,7 @@ final class RectorConfig extends ContainerConfigurator
Assert::directory($directoryPath);
$parameters = $this->parameters();
$parameters->set(Option::CONTAINER_CACHE_DIRECTORY, $directoryPath);
SimpleParameterProvider::setParameter(Option::CONTAINER_CACHE_DIRECTORY, $directoryPath);
}
/**
* @param class-string<CacheStorageInterface> $cacheClass
@ -217,6 +241,7 @@ final class RectorConfig extends ContainerConfigurator
Assert::isAOf($cacheClass, CacheStorageInterface::class);
$parameters = $this->parameters();
$parameters->set(Option::CACHE_CLASS, $cacheClass);
SimpleParameterProvider::setParameter(Option::CACHE_CLASS, $cacheClass);
}
/**
* @see https://github.com/nikic/PHP-Parser/issues/723#issuecomment-712401963

View File

@ -15,6 +15,7 @@ use PHPStan\PhpDoc\TypeNodeResolver;
use PHPStan\Reflection\ReflectionProvider;
use Rector\Core\Configuration\Option;
use Rector\Core\Configuration\Parameter\ParameterProvider;
use Rector\Core\Configuration\Parameter\SimpleParameterProvider;
use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider;
use RectorPrefix202307\Symfony\Component\Filesystem\Filesystem;
/**
@ -24,11 +25,6 @@ use RectorPrefix202307\Symfony\Component\Filesystem\Filesystem;
*/
final class PHPStanServicesFactory
{
/**
* @readonly
* @var \Rector\Core\Configuration\Parameter\ParameterProvider
*/
private $parameterProvider;
/**
* @readonly
* @var \Rector\NodeTypeResolver\DependencyInjection\PHPStanExtensionsConfigResolver
@ -41,7 +37,6 @@ final class PHPStanServicesFactory
private $container;
public function __construct(ParameterProvider $parameterProvider, \Rector\NodeTypeResolver\DependencyInjection\PHPStanExtensionsConfigResolver $phpStanExtensionsConfigResolver, \Rector\NodeTypeResolver\DependencyInjection\BleedingEdgeIncludePurifier $bleedingEdgeIncludePurifier)
{
$this->parameterProvider = $parameterProvider;
$this->phpStanExtensionsConfigResolver = $phpStanExtensionsConfigResolver;
$additionalConfigFiles = $this->resolveAdditionalConfigFiles();
$purifiedConfigFiles = [];
@ -133,8 +128,8 @@ final class PHPStanServicesFactory
private function resolveAdditionalConfigFiles() : array
{
$additionalConfigFiles = [];
if ($this->parameterProvider->hasParameter(Option::PHPSTAN_FOR_RECTOR_PATH)) {
$additionalConfigFiles[] = $this->parameterProvider->provideStringParameter(Option::PHPSTAN_FOR_RECTOR_PATH);
if (SimpleParameterProvider::hasParameter(Option::PHPSTAN_FOR_RECTOR_PATH)) {
$additionalConfigFiles[] = SimpleParameterProvider::provideStringParameter(Option::PHPSTAN_FOR_RECTOR_PATH);
}
$additionalConfigFiles[] = __DIR__ . '/../../../config/phpstan/static-reflection.neon';
$additionalConfigFiles[] = __DIR__ . '/../../../config/phpstan/better-infer.neon';

View File

@ -15,6 +15,7 @@ use Rector\Core\Autoloading\BootstrapFilesIncluder;
use Rector\Core\Configuration\ConfigurationFactory;
use Rector\Core\Configuration\Option;
use Rector\Core\Configuration\Parameter\ParameterProvider;
use Rector\Core\Configuration\Parameter\SimpleParameterProvider;
use Rector\Core\Exception\ShouldNotHappenException;
use Rector\Core\ValueObject\Application\File;
use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider;
@ -122,6 +123,7 @@ abstract class AbstractRectorTestCase extends \Rector\Testing\PHPUnit\AbstractTe
private function doTestFileMatchesExpectedContent(string $originalFilePath, string $inputFileContents, string $expectedFileContents, string $fixtureFilePath) : void
{
$this->parameterProvider->changeParameter(Option::SOURCE, [$originalFilePath]);
SimpleParameterProvider::setParameter(Option::SOURCE, [$originalFilePath]);
$changedContent = $this->processFilePath($originalFilePath, $inputFileContents);
$fixtureFilename = \basename($fixtureFilePath);
$failureMessage = \sprintf('Failed on fixture file "%s"', $fixtureFilename);

View File

@ -36,6 +36,7 @@ use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
final class NumericReturnTypeFromStrictScalarReturnsRector extends AbstractRector implements MinPhpVersionInterface
{
/**
* @readonly
* @var \Rector\Core\NodeAnalyzer\ExprAnalyzer
*/
private $exprAnalyzer;
@ -160,9 +161,6 @@ CODE_SAMPLE
if ($this->exprAnalyzer->isNonTypedFromParam($binaryOp->left)) {
return \true;
}
if ($this->exprAnalyzer->isNonTypedFromParam($binaryOp->right)) {
return \true;
}
return \false;
return $this->exprAnalyzer->isNonTypedFromParam($binaryOp->right);
}
}

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = '265f3ac2eca7287556b176ea428fa5f36fdef93c';
public const PACKAGE_VERSION = 'df5a7bbfbf4e01f4b485603bacab0f1fd807b7f7';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2023-07-03 10:30:21';
public const RELEASE_DATE = '2023-07-03 13:51:39';
/**
* @var int
*/

View File

@ -5,6 +5,7 @@ namespace Rector\Core\Configuration;
use Rector\ChangesReporting\Output\ConsoleOutputFormatter;
use Rector\Core\Configuration\Parameter\ParameterProvider;
use Rector\Core\Configuration\Parameter\SimpleParameterProvider;
use Rector\Core\Contract\Console\OutputStyleInterface;
use Rector\Core\ValueObject\Configuration;
use RectorPrefix202307\Symfony\Component\Console\Input\InputInterface;
@ -105,9 +106,9 @@ final class ConfigurationFactory
if ($memoryLimit !== null) {
return (string) $memoryLimit;
}
if (!$this->parameterProvider->hasParameter(\Rector\Core\Configuration\Option::MEMORY_LIMIT)) {
if (!SimpleParameterProvider::hasParameter(\Rector\Core\Configuration\Option::MEMORY_LIMIT)) {
return null;
}
return $this->parameterProvider->provideStringParameter(\Rector\Core\Configuration\Option::MEMORY_LIMIT);
return SimpleParameterProvider::provideStringParameter(\Rector\Core\Configuration\Option::MEMORY_LIMIT);
}
}

View File

@ -3,10 +3,14 @@
declare (strict_types=1);
namespace Rector\Core\Configuration\Parameter;
use Rector\Core\Configuration\Option;
use RectorPrefix202307\Symfony\Component\DependencyInjection\Container;
use RectorPrefix202307\Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
use RectorPrefix202307\Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
/**
* @deprecated Use SimpleParameterProvider to avoid coupling with Symfony container.
* This class will be removed in next major release
*
* @api
*/
final class ParameterProvider
@ -21,11 +25,15 @@ final class ParameterProvider
$parameterBag = $container->getParameterBag();
$this->parameters = $parameterBag->all();
}
/**
* @param Option::* $name
*/
public function hasParameter(string $name) : bool
{
return isset($this->parameters[$name]);
}
/**
* @param Option::* $name
* @api
* @return mixed
*/
@ -34,6 +42,7 @@ final class ParameterProvider
return $this->parameters[$name] ?? null;
}
/**
* @param Option::* $name
* @api
*/
public function provideStringParameter(string $name, ?string $default = null) : string
@ -44,7 +53,7 @@ final class ParameterProvider
return (string) ($this->parameters[$name] ?? $default);
}
/**
* @api
* @param Option::* $name
* @return mixed[]
*/
public function provideArrayParameter(string $name) : array
@ -53,26 +62,21 @@ final class ParameterProvider
return $this->parameters[$name];
}
/**
* @param Option::* $name
* @api
*/
public function provideBoolParameter(string $parameterName) : bool
public function provideBoolParameter(string $name) : bool
{
return $this->parameters[$parameterName] ?? \false;
return $this->parameters[$name] ?? \false;
}
/**
* @param Option::* $name
* @param mixed $value
*/
public function changeParameter(string $name, $value) : void
{
$this->parameters[$name] = $value;
}
/**
* @api
* @return mixed[]
*/
public function provide() : array
{
return $this->parameters;
\Rector\Core\Configuration\Parameter\SimpleParameterProvider::setParameter($name, $value);
}
/**
* @api

View File

@ -0,0 +1,81 @@
<?php
declare (strict_types=1);
namespace Rector\Core\Configuration\Parameter;
use RectorPrefix202307\Webmozart\Assert\Assert;
/**
* @api
*/
final class SimpleParameterProvider
{
/**
* @var array<string, mixed>
*/
private static $parameters = [];
/**
* @param mixed $value
*/
public static function addParameter(string $key, $value) : void
{
if (\is_array($value)) {
$mergedParameters = \array_merge(self::$parameters[$key] ?? [], $value);
self::$parameters[$key] = $mergedParameters;
} else {
self::$parameters[$key][] = $value;
}
}
/**
* @param mixed $value
*/
public static function setParameter(string $key, $value) : void
{
self::$parameters[$key] = $value;
}
/**
* @return mixed[]
*/
public static function provideArrayParameter(string $key) : array
{
$parameter = self::$parameters[$key] ?? [];
Assert::isArray($parameter);
$arrayIsList = function (array $array) : bool {
if (\function_exists('array_is_list')) {
return \array_is_list($array);
}
if ($array === []) {
return \true;
}
$current_key = 0;
foreach ($array as $key => $noop) {
if ($key !== $current_key) {
return \false;
}
++$current_key;
}
return \true;
};
if ($arrayIsList($parameter)) {
// remove duplicates
$uniqueParameters = \array_unique($parameter);
return \array_values($uniqueParameters);
}
return $parameter;
}
public static function hasParameter(string $name) : bool
{
return \array_key_exists($name, self::$parameters);
}
public static function provideStringParameter(string $key) : string
{
return self::$parameters[$key];
}
public static function provideIntParameter(string $key) : int
{
return self::$parameters[$key];
}
public static function provideBoolParameter(string $key) : bool
{
return self::$parameters[$key];
}
}

2
vendor/autoload.php vendored
View File

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

View File

@ -1512,6 +1512,7 @@ return array(
'Rector\\Core\\Configuration\\CurrentNodeProvider' => $baseDir . '/src/Configuration/CurrentNodeProvider.php',
'Rector\\Core\\Configuration\\Option' => $baseDir . '/src/Configuration/Option.php',
'Rector\\Core\\Configuration\\Parameter\\ParameterProvider' => $baseDir . '/src/Configuration/Parameter/ParameterProvider.php',
'Rector\\Core\\Configuration\\Parameter\\SimpleParameterProvider' => $baseDir . '/src/Configuration/Parameter/SimpleParameterProvider.php',
'Rector\\Core\\Configuration\\RectorConfigProvider' => $baseDir . '/src/Configuration/RectorConfigProvider.php',
'Rector\\Core\\Configuration\\RenamedClassesDataCollector' => $baseDir . '/src/Configuration/RenamedClassesDataCollector.php',
'Rector\\Core\\Configuration\\ValueObjectInliner' => $baseDir . '/src/Configuration/ValueObjectInliner.php',

View File

@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
class ComposerAutoloaderInit29f2cd034687f48fc87062281643d5a0
class ComposerAutoloaderInit83e091cd82fadc035fb95bf4c1a58933
{
private static $loader;
@ -22,17 +22,17 @@ class ComposerAutoloaderInit29f2cd034687f48fc87062281643d5a0
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInit29f2cd034687f48fc87062281643d5a0', 'loadClassLoader'), true, true);
spl_autoload_register(array('ComposerAutoloaderInit83e091cd82fadc035fb95bf4c1a58933', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInit29f2cd034687f48fc87062281643d5a0', 'loadClassLoader'));
spl_autoload_unregister(array('ComposerAutoloaderInit83e091cd82fadc035fb95bf4c1a58933', 'loadClassLoader'));
require __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInit29f2cd034687f48fc87062281643d5a0::getInitializer($loader));
call_user_func(\Composer\Autoload\ComposerStaticInit83e091cd82fadc035fb95bf4c1a58933::getInitializer($loader));
$loader->setClassMapAuthoritative(true);
$loader->register(true);
$filesToLoad = \Composer\Autoload\ComposerStaticInit29f2cd034687f48fc87062281643d5a0::$files;
$filesToLoad = \Composer\Autoload\ComposerStaticInit83e091cd82fadc035fb95bf4c1a58933::$files;
$requireFile = \Closure::bind(static function ($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 ComposerStaticInit29f2cd034687f48fc87062281643d5a0
class ComposerStaticInit83e091cd82fadc035fb95bf4c1a58933
{
public static $files = array (
'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
@ -1764,6 +1764,7 @@ class ComposerStaticInit29f2cd034687f48fc87062281643d5a0
'Rector\\Core\\Configuration\\CurrentNodeProvider' => __DIR__ . '/../..' . '/src/Configuration/CurrentNodeProvider.php',
'Rector\\Core\\Configuration\\Option' => __DIR__ . '/../..' . '/src/Configuration/Option.php',
'Rector\\Core\\Configuration\\Parameter\\ParameterProvider' => __DIR__ . '/../..' . '/src/Configuration/Parameter/ParameterProvider.php',
'Rector\\Core\\Configuration\\Parameter\\SimpleParameterProvider' => __DIR__ . '/../..' . '/src/Configuration/Parameter/SimpleParameterProvider.php',
'Rector\\Core\\Configuration\\RectorConfigProvider' => __DIR__ . '/../..' . '/src/Configuration/RectorConfigProvider.php',
'Rector\\Core\\Configuration\\RenamedClassesDataCollector' => __DIR__ . '/../..' . '/src/Configuration/RenamedClassesDataCollector.php',
'Rector\\Core\\Configuration\\ValueObjectInliner' => __DIR__ . '/../..' . '/src/Configuration/ValueObjectInliner.php',
@ -3099,9 +3100,9 @@ class ComposerStaticInit29f2cd034687f48fc87062281643d5a0
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->prefixLengthsPsr4 = ComposerStaticInit29f2cd034687f48fc87062281643d5a0::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit29f2cd034687f48fc87062281643d5a0::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit29f2cd034687f48fc87062281643d5a0::$classMap;
$loader->prefixLengthsPsr4 = ComposerStaticInit83e091cd82fadc035fb95bf4c1a58933::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit83e091cd82fadc035fb95bf4c1a58933::$prefixDirsPsr4;
$loader->classMap = ComposerStaticInit83e091cd82fadc035fb95bf4c1a58933::$classMap;
}, null, ClassLoader::class);
}