diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md index 7b8a46364ec..f1c8acb72f6 100644 --- a/docs/rector_rules_overview.md +++ b/docs/rector_rules_overview.md @@ -1,4 +1,4 @@ -# 376 Rules Overview +# 374 Rules Overview
@@ -40,7 +40,7 @@ - [Php74](#php74) (13) -- [Php80](#php80) (18) +- [Php80](#php80) (17) - [Php81](#php81) (11) @@ -56,7 +56,7 @@ - [Strict](#strict) (5) -- [Transform](#transform) (26) +- [Transform](#transform) (25) - [TypeDeclaration](#typedeclaration) (40) @@ -5335,47 +5335,6 @@ return static function (RectorConfig $rectorConfig): void {
-### DoctrineAnnotationClassToAttributeRector - -Refactor Doctrine `@annotation` annotated class to a PHP 8.0 attribute class - -:wrench: **configure it!** - -- class: [`Rector\Php80\Rector\Class_\DoctrineAnnotationClassToAttributeRector`](../rules/Php80/Rector/Class_/DoctrineAnnotationClassToAttributeRector.php) - -```php -ruleWithConfiguration(DoctrineAnnotationClassToAttributeRector::class, [ - DoctrineAnnotationClassToAttributeRector::REMOVE_ANNOTATIONS => true, - ]); -}; -``` - -↓ - -```diff --use Doctrine\Common\Annotations\Annotation\Target; -+use Attribute; - --/** -- * @Annotation -- * @Target({"METHOD"}) -- */ -+#[Attribute(Attribute::TARGET_METHOD)] - class SomeAnnotation - { - } -``` - -
- ### FinalPrivateToPrivateVisibilityRector Changes method visibility from final private to only private @@ -7480,42 +7439,6 @@ return static function (RectorConfig $rectorConfig): void {
-### RemoveAllowDynamicPropertiesAttributeRector - -Remove the `AllowDynamicProperties` attribute from all classes - -:wrench: **configure it!** - -- class: [`Rector\Transform\Rector\Class_\RemoveAllowDynamicPropertiesAttributeRector`](../rules/Transform/Rector/Class_/RemoveAllowDynamicPropertiesAttributeRector.php) - -```php -ruleWithConfiguration(RemoveAllowDynamicPropertiesAttributeRector::class, [ - 'Example\*', - ]); -}; -``` - -↓ - -```diff - namespace Example\Domain; - --#[AllowDynamicProperties] - class SomeObject { - public string $someProperty = 'hello world'; - } -``` - -
- ### ReplaceParentCallByPropertyCallRector Changes method calls in child of specific types to defined property method call diff --git a/packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php b/packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php index ddbbf2dc0a5..40243e6e802 100644 --- a/packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php +++ b/packages/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php @@ -250,20 +250,6 @@ final class PhpDocInfo { return $this->getByAnnotationClasses($annotationsClasses) instanceof DoctrineAnnotationTagValueNode; } - /** - * @param string[] $desiredClasses - */ - public function findOneByAnnotationClasses(array $desiredClasses) : ?DoctrineAnnotationTagValueNode - { - foreach ($desiredClasses as $desiredClass) { - $doctrineAnnotationTagValueNode = $this->findOneByAnnotationClass($desiredClass); - if (!$doctrineAnnotationTagValueNode instanceof DoctrineAnnotationTagValueNode) { - continue; - } - return $doctrineAnnotationTagValueNode; - } - return null; - } public function findOneByAnnotationClass(string $desiredClass) : ?DoctrineAnnotationTagValueNode { $foundTagValueNodes = $this->findByAnnotationClass($desiredClass); diff --git a/rules/Php80/NodeAnalyzer/AnnotationTargetResolver.php b/rules/Php80/NodeAnalyzer/AnnotationTargetResolver.php deleted file mode 100644 index d1594f29338..00000000000 --- a/rules/Php80/NodeAnalyzer/AnnotationTargetResolver.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ - private const TARGET_TO_CONSTANT_MAP = [ - 'METHOD' => 'TARGET_METHOD', - 'PROPERTY' => 'TARGET_PROPERTY', - 'CLASS' => 'TARGET_CLASS', - 'FUNCTION' => 'TARGET_FUNCTION', - 'ALL' => 'TARGET_ALL', - // special case - 'ANNOTATION' => 'TARGET_CLASS', - ]; - public function __construct(NodeFactory $nodeFactory) - { - $this->nodeFactory = $nodeFactory; - } - /** - * @param ArrayItemNode[] $targetValues - * @return ClassConstFetch[] - */ - public function resolveFlagClassConstFetches(array $targetValues) : array - { - $classConstFetches = []; - foreach ($targetValues as $targetValue) { - foreach (self::TARGET_TO_CONSTANT_MAP as $target => $constant) { - if (!$targetValue->value instanceof StringNode) { - continue; - } - if ($target !== $targetValue->value->value) { - continue; - } - $classConstFetches[] = $this->nodeFactory->createClassConstFetch('Attribute', $constant); - } - } - return $classConstFetches; - } -} diff --git a/rules/Php80/NodeFactory/AttributeFlagFactory.php b/rules/Php80/NodeFactory/AttributeFlagFactory.php deleted file mode 100644 index e67fcb0c395..00000000000 --- a/rules/Php80/NodeFactory/AttributeFlagFactory.php +++ /dev/null @@ -1,26 +0,0 @@ -phpDocTagRemover = $phpDocTagRemover; - $this->attributeFlagFactory = $attributeFlagFactory; - $this->phpAttributeGroupFactory = $phpAttributeGroupFactory; - $this->phpAttributeAnalyzer = $phpAttributeAnalyzer; - $this->propertyToAddCollector = $propertyToAddCollector; - $this->annotationTargetResolver = $annotationTargetResolver; - } - public function provideMinPhpVersion() : int - { - return PhpVersionFeature::ATTRIBUTES; - } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Refactor Doctrine @annotation annotated class to a PHP 8.0 attribute class', [new ConfiguredCodeSample(<<<'CODE_SAMPLE' -use Doctrine\Common\Annotations\Annotation\Target; - -/** - * @Annotation - * @Target({"METHOD"}) - */ -class SomeAnnotation -{ -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -use Attribute; - -#[Attribute(Attribute::TARGET_METHOD)] -class SomeAnnotation -{ -} -CODE_SAMPLE -, [self::REMOVE_ANNOTATIONS => \true])]); - } - /** - * @return array> - */ - public function getNodeTypes() : array - { - return [Class_::class]; - } - /** - * @param Class_ $node - */ - public function refactor(Node $node) : ?Node - { - $phpDocInfo = $this->phpDocInfoFactory->createFromNode($node); - if (!$phpDocInfo instanceof PhpDocInfo) { - return null; - } - if ($this->shouldSkipClass($phpDocInfo, $node)) { - return null; - } - if ($this->shouldRemoveAnnotations) { - $this->phpDocTagRemover->removeByName($phpDocInfo, 'annotation'); - $this->phpDocTagRemover->removeByName($phpDocInfo, 'Annotation'); - } - $attributeGroup = $this->phpAttributeGroupFactory->createFromClass(AttributeName::ATTRIBUTE); - $this->decorateTarget($phpDocInfo, $attributeGroup); - foreach ($node->stmts as $key => $stmt) { - if (!$stmt instanceof Property) { - continue; - } - $property = $stmt; - $propertyPhpDocInfo = $this->phpDocInfoFactory->createFromNode($property); - if (!$propertyPhpDocInfo instanceof PhpDocInfo) { - continue; - } - $requiredDoctrineAnnotationTagValueNode = $propertyPhpDocInfo->findOneByAnnotationClass('Doctrine\\Common\\Annotations\\Annotation\\Required'); - if (!$requiredDoctrineAnnotationTagValueNode instanceof DoctrineAnnotationTagValueNode) { - continue; - } - if ($this->shouldRemoveAnnotations) { - $this->phpDocTagRemover->removeTagValueFromNode($propertyPhpDocInfo, $requiredDoctrineAnnotationTagValueNode); - } - // require in constructor - $propertyName = $this->getName($property); - $propertyMetadata = new PropertyMetadata($propertyName, new MixedType(), Class_::MODIFIER_PUBLIC); - $this->propertyToAddCollector->addPropertyToClass($node, $propertyMetadata); - if ($this->shouldRemoveAnnotations) { - unset($node->stmts[$key]); - } - } - $node->attrGroups[] = $attributeGroup; - return $node; - } - /** - * @param mixed[] $configuration - */ - public function configure(array $configuration) : void - { - $shouldRemoveAnnotations = $configuration[self::REMOVE_ANNOTATIONS] ?? (bool) \current($configuration); - Assert::boolean($shouldRemoveAnnotations); - $this->shouldRemoveAnnotations = $shouldRemoveAnnotations; - } - private function decorateTarget(PhpDocInfo $phpDocInfo, AttributeGroup $attributeGroup) : void - { - $targetDoctrineAnnotationTagValueNode = $phpDocInfo->findOneByAnnotationClasses(['Doctrine\\Common\\Annotations\\Annotation\\Target', 'Target']); - if (!$targetDoctrineAnnotationTagValueNode instanceof DoctrineAnnotationTagValueNode) { - return; - } - if ($this->shouldRemoveAnnotations) { - $this->phpDocTagRemover->removeTagValueFromNode($phpDocInfo, $targetDoctrineAnnotationTagValueNode); - } - $targetValues = $this->resolveTargetValues($targetDoctrineAnnotationTagValueNode); - if ($targetValues === []) { - return; - } - $flagClassConstFetches = $this->annotationTargetResolver->resolveFlagClassConstFetches($targetValues); - $flagCollection = $this->attributeFlagFactory->createFlagCollection($flagClassConstFetches); - if ($flagCollection === null) { - return; - } - $attributeGroup->attrs[0]->args[] = new Arg($flagCollection); - } - private function shouldSkipClass(PhpDocInfo $phpDocInfo, Class_ $class) : bool - { - if (!$phpDocInfo->hasByNames(['Annotation', 'annotation'])) { - return \true; - } - // has attribute? skip it - return $this->phpAttributeAnalyzer->hasPhpAttribute($class, AttributeName::ATTRIBUTE); - } - /** - * @return ArrayItemNode[] - */ - private function resolveTargetValues(DoctrineAnnotationTagValueNode $targetDoctrineAnnotationTagValueNode) : array - { - $silentTargetsArrayItemNode = $targetDoctrineAnnotationTagValueNode->getSilentValue(); - if ($silentTargetsArrayItemNode instanceof ArrayItemNode) { - if ($silentTargetsArrayItemNode->value instanceof CurlyListNode) { - return $silentTargetsArrayItemNode->value->getValues(); - } - return [$silentTargetsArrayItemNode]; - } - return []; - } -} diff --git a/rules/Php81/Enum/AttributeName.php b/rules/Php81/Enum/AttributeName.php index 74c02d85163..66104059075 100644 --- a/rules/Php81/Enum/AttributeName.php +++ b/rules/Php81/Enum/AttributeName.php @@ -11,10 +11,6 @@ final class AttributeName * @var string */ public const RETURN_TYPE_WILL_CHANGE = 'ReturnTypeWillChange'; - /** - * @var string - */ - public const ATTRIBUTE = 'Attribute'; /** * @var string */ diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 743bf83ec0a..c1c263ce52d 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = 'ae874efa148e6d5a031503892a6307824b4d7003'; + public const PACKAGE_VERSION = 'f2509fa341525d3939073c5b4513f47ab8362fda'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-06-08 21:56:24'; + public const RELEASE_DATE = '2023-06-08 22:19:05'; /** * @var int */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 681782bcd93..c947b458663 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitadc6d620a4da23db1ecee1592688832f::getLoader(); +return ComposerAutoloaderIniteba99b089a008fa8685ebae07df294c6::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index cfa9a10c239..70f937e7d38 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2323,14 +2323,12 @@ return array( 'Rector\\Php80\\MatchAndRefactor\\StrStartsWithMatchAndRefactor\\StrncmpMatchAndRefactor' => $baseDir . '/rules/Php80/MatchAndRefactor/StrStartsWithMatchAndRefactor/StrncmpMatchAndRefactor.php', 'Rector\\Php80\\MatchAndRefactor\\StrStartsWithMatchAndRefactor\\StrposMatchAndRefactor' => $baseDir . '/rules/Php80/MatchAndRefactor/StrStartsWithMatchAndRefactor/StrposMatchAndRefactor.php', 'Rector\\Php80\\MatchAndRefactor\\StrStartsWithMatchAndRefactor\\SubstrMatchAndRefactor' => $baseDir . '/rules/Php80/MatchAndRefactor/StrStartsWithMatchAndRefactor/SubstrMatchAndRefactor.php', - 'Rector\\Php80\\NodeAnalyzer\\AnnotationTargetResolver' => $baseDir . '/rules/Php80/NodeAnalyzer/AnnotationTargetResolver.php', 'Rector\\Php80\\NodeAnalyzer\\MatchSwitchAnalyzer' => $baseDir . '/rules/Php80/NodeAnalyzer/MatchSwitchAnalyzer.php', 'Rector\\Php80\\NodeAnalyzer\\PhpAttributeAnalyzer' => $baseDir . '/rules/Php80/NodeAnalyzer/PhpAttributeAnalyzer.php', 'Rector\\Php80\\NodeAnalyzer\\PromotedPropertyCandidateResolver' => $baseDir . '/rules/Php80/NodeAnalyzer/PromotedPropertyCandidateResolver.php', 'Rector\\Php80\\NodeAnalyzer\\PromotedPropertyResolver' => $baseDir . '/rules/Php80/NodeAnalyzer/PromotedPropertyResolver.php', 'Rector\\Php80\\NodeAnalyzer\\SwitchAnalyzer' => $baseDir . '/rules/Php80/NodeAnalyzer/SwitchAnalyzer.php', 'Rector\\Php80\\NodeFactory\\AttrGroupsFactory' => $baseDir . '/rules/Php80/NodeFactory/AttrGroupsFactory.php', - 'Rector\\Php80\\NodeFactory\\AttributeFlagFactory' => $baseDir . '/rules/Php80/NodeFactory/AttributeFlagFactory.php', 'Rector\\Php80\\NodeFactory\\MatchArmsFactory' => $baseDir . '/rules/Php80/NodeFactory/MatchArmsFactory.php', 'Rector\\Php80\\NodeFactory\\MatchFactory' => $baseDir . '/rules/Php80/NodeFactory/MatchFactory.php', 'Rector\\Php80\\NodeFactory\\NestedAttrGroupsFactory' => $baseDir . '/rules/Php80/NodeFactory/NestedAttrGroupsFactory.php', @@ -2347,7 +2345,6 @@ return array( 'Rector\\Php80\\Rector\\ClassMethod\\SetStateToStaticRector' => $baseDir . '/rules/Php80/Rector/ClassMethod/SetStateToStaticRector.php', 'Rector\\Php80\\Rector\\Class_\\AnnotationToAttributeRector' => $baseDir . '/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php', 'Rector\\Php80\\Rector\\Class_\\ClassPropertyAssignToConstructorPromotionRector' => $baseDir . '/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php', - 'Rector\\Php80\\Rector\\Class_\\DoctrineAnnotationClassToAttributeRector' => $baseDir . '/rules/Php80/Rector/Class_/DoctrineAnnotationClassToAttributeRector.php', 'Rector\\Php80\\Rector\\Class_\\StringableForToStringRector' => $baseDir . '/rules/Php80/Rector/Class_/StringableForToStringRector.php', 'Rector\\Php80\\Rector\\FuncCall\\ClassOnObjectRector' => $baseDir . '/rules/Php80/Rector/FuncCall/ClassOnObjectRector.php', 'Rector\\Php80\\Rector\\FuncCall\\Php8ResourceReturnToObjectRector' => $baseDir . '/rules/Php80/Rector/FuncCall/Php8ResourceReturnToObjectRector.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index a5e775c1e88..df790e596ec 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitadc6d620a4da23db1ecee1592688832f +class ComposerAutoloaderIniteba99b089a008fa8685ebae07df294c6 { private static $loader; @@ -22,17 +22,17 @@ class ComposerAutoloaderInitadc6d620a4da23db1ecee1592688832f return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitadc6d620a4da23db1ecee1592688832f', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderIniteba99b089a008fa8685ebae07df294c6', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInitadc6d620a4da23db1ecee1592688832f', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderIniteba99b089a008fa8685ebae07df294c6', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitadc6d620a4da23db1ecee1592688832f::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticIniteba99b089a008fa8685ebae07df294c6::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInitadc6d620a4da23db1ecee1592688832f::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticIniteba99b089a008fa8685ebae07df294c6::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 091c9ade6ee..4a1dad0b45a 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitadc6d620a4da23db1ecee1592688832f +class ComposerStaticIniteba99b089a008fa8685ebae07df294c6 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -2574,14 +2574,12 @@ class ComposerStaticInitadc6d620a4da23db1ecee1592688832f 'Rector\\Php80\\MatchAndRefactor\\StrStartsWithMatchAndRefactor\\StrncmpMatchAndRefactor' => __DIR__ . '/../..' . '/rules/Php80/MatchAndRefactor/StrStartsWithMatchAndRefactor/StrncmpMatchAndRefactor.php', 'Rector\\Php80\\MatchAndRefactor\\StrStartsWithMatchAndRefactor\\StrposMatchAndRefactor' => __DIR__ . '/../..' . '/rules/Php80/MatchAndRefactor/StrStartsWithMatchAndRefactor/StrposMatchAndRefactor.php', 'Rector\\Php80\\MatchAndRefactor\\StrStartsWithMatchAndRefactor\\SubstrMatchAndRefactor' => __DIR__ . '/../..' . '/rules/Php80/MatchAndRefactor/StrStartsWithMatchAndRefactor/SubstrMatchAndRefactor.php', - 'Rector\\Php80\\NodeAnalyzer\\AnnotationTargetResolver' => __DIR__ . '/../..' . '/rules/Php80/NodeAnalyzer/AnnotationTargetResolver.php', 'Rector\\Php80\\NodeAnalyzer\\MatchSwitchAnalyzer' => __DIR__ . '/../..' . '/rules/Php80/NodeAnalyzer/MatchSwitchAnalyzer.php', 'Rector\\Php80\\NodeAnalyzer\\PhpAttributeAnalyzer' => __DIR__ . '/../..' . '/rules/Php80/NodeAnalyzer/PhpAttributeAnalyzer.php', 'Rector\\Php80\\NodeAnalyzer\\PromotedPropertyCandidateResolver' => __DIR__ . '/../..' . '/rules/Php80/NodeAnalyzer/PromotedPropertyCandidateResolver.php', 'Rector\\Php80\\NodeAnalyzer\\PromotedPropertyResolver' => __DIR__ . '/../..' . '/rules/Php80/NodeAnalyzer/PromotedPropertyResolver.php', 'Rector\\Php80\\NodeAnalyzer\\SwitchAnalyzer' => __DIR__ . '/../..' . '/rules/Php80/NodeAnalyzer/SwitchAnalyzer.php', 'Rector\\Php80\\NodeFactory\\AttrGroupsFactory' => __DIR__ . '/../..' . '/rules/Php80/NodeFactory/AttrGroupsFactory.php', - 'Rector\\Php80\\NodeFactory\\AttributeFlagFactory' => __DIR__ . '/../..' . '/rules/Php80/NodeFactory/AttributeFlagFactory.php', 'Rector\\Php80\\NodeFactory\\MatchArmsFactory' => __DIR__ . '/../..' . '/rules/Php80/NodeFactory/MatchArmsFactory.php', 'Rector\\Php80\\NodeFactory\\MatchFactory' => __DIR__ . '/../..' . '/rules/Php80/NodeFactory/MatchFactory.php', 'Rector\\Php80\\NodeFactory\\NestedAttrGroupsFactory' => __DIR__ . '/../..' . '/rules/Php80/NodeFactory/NestedAttrGroupsFactory.php', @@ -2598,7 +2596,6 @@ class ComposerStaticInitadc6d620a4da23db1ecee1592688832f 'Rector\\Php80\\Rector\\ClassMethod\\SetStateToStaticRector' => __DIR__ . '/../..' . '/rules/Php80/Rector/ClassMethod/SetStateToStaticRector.php', 'Rector\\Php80\\Rector\\Class_\\AnnotationToAttributeRector' => __DIR__ . '/../..' . '/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php', 'Rector\\Php80\\Rector\\Class_\\ClassPropertyAssignToConstructorPromotionRector' => __DIR__ . '/../..' . '/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php', - 'Rector\\Php80\\Rector\\Class_\\DoctrineAnnotationClassToAttributeRector' => __DIR__ . '/../..' . '/rules/Php80/Rector/Class_/DoctrineAnnotationClassToAttributeRector.php', 'Rector\\Php80\\Rector\\Class_\\StringableForToStringRector' => __DIR__ . '/../..' . '/rules/Php80/Rector/Class_/StringableForToStringRector.php', 'Rector\\Php80\\Rector\\FuncCall\\ClassOnObjectRector' => __DIR__ . '/../..' . '/rules/Php80/Rector/FuncCall/ClassOnObjectRector.php', 'Rector\\Php80\\Rector\\FuncCall\\Php8ResourceReturnToObjectRector' => __DIR__ . '/../..' . '/rules/Php80/Rector/FuncCall/Php8ResourceReturnToObjectRector.php', @@ -3147,9 +3144,9 @@ class ComposerStaticInitadc6d620a4da23db1ecee1592688832f public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitadc6d620a4da23db1ecee1592688832f::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitadc6d620a4da23db1ecee1592688832f::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitadc6d620a4da23db1ecee1592688832f::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticIniteba99b089a008fa8685ebae07df294c6::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticIniteba99b089a008fa8685ebae07df294c6::$prefixDirsPsr4; + $loader->classMap = ComposerStaticIniteba99b089a008fa8685ebae07df294c6::$classMap; }, null, ClassLoader::class); }