From ce30c874979aa2d48f08cb33fa6a9dc783c669e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Dec 2023 09:31:54 +0100 Subject: [PATCH] Bump rector/rector from 0.18.10 to 0.18.13 (#153) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Markus Staab --- composer.json | 2 +- composer.lock | 48 +- vendor/composer/installed.json | 54 +- vendor/composer/installed.php | 28 +- vendor/phpstan/phpstan/phpstan.phar | Bin 22385666 -> 22330061 bytes vendor/phpstan/phpstan/phpstan.phar.asc | 26 +- .../rector/bin/add-phpstan-self-replace.php | 6 +- vendor/rector/rector/bin/rector | 2 +- vendor/rector/rector/bin/rector.php | 10 +- vendor/rector/rector/config/config.php | 4 +- .../rector/rector/config/set/code-quality.php | 5 +- .../rector/rector/config/set/coding-style.php | 5 +- vendor/rector/rector/config/set/dead-code.php | 2 +- .../rector/rector/config/set/early-return.php | 2 +- .../rector/config/set/gmagick-to-imagick.php | 2 +- .../rector/rector/config/set/instanceof.php | 2 +- .../rector/config/set/level/up-to-php53.php | 2 +- .../rector/config/set/level/up-to-php54.php | 2 +- .../rector/config/set/level/up-to-php55.php | 2 +- .../rector/config/set/level/up-to-php56.php | 2 +- .../rector/config/set/level/up-to-php70.php | 2 +- .../rector/config/set/level/up-to-php71.php | 2 +- .../rector/config/set/level/up-to-php72.php | 2 +- .../rector/config/set/level/up-to-php73.php | 2 +- .../rector/config/set/level/up-to-php74.php | 2 +- .../rector/config/set/level/up-to-php80.php | 2 +- .../rector/config/set/level/up-to-php81.php | 2 +- .../rector/config/set/level/up-to-php82.php | 2 +- .../rector/config/set/level/up-to-php83.php | 2 +- vendor/rector/rector/config/set/naming.php | 2 +- vendor/rector/rector/config/set/php52.php | 2 +- vendor/rector/rector/config/set/php53.php | 2 +- vendor/rector/rector/config/set/php54.php | 2 +- vendor/rector/rector/config/set/php55.php | 2 +- vendor/rector/rector/config/set/php56.php | 2 +- vendor/rector/rector/config/set/php70.php | 2 +- vendor/rector/rector/config/set/php71.php | 2 +- vendor/rector/rector/config/set/php72.php | 2 +- vendor/rector/rector/config/set/php73.php | 14 +- vendor/rector/rector/config/set/php74.php | 5 +- vendor/rector/rector/config/set/php80.php | 2 +- vendor/rector/rector/config/set/php81.php | 2 +- vendor/rector/rector/config/set/php82.php | 2 +- vendor/rector/rector/config/set/php83.php | 5 +- .../rector/config/set/privatization.php | 2 +- .../rector/config/set/strict-booleans.php | 2 +- .../rector/config/set/type-declaration.php | 7 +- .../PhpDoc/ArrayItemNode.php | 2 +- .../PhpDocManipulator/PhpDocClassRenamer.php | 2 +- .../BetterPhpDocParser/PhpDocNodeMapper.php | 2 +- .../PhpDocParser/BetterPhpDocParser.php | 3 +- .../DoctrineAnnotationDecorator.php | 120 +- .../PlainValueParser.php | 37 +- .../Printer/DocBlockInliner.php | 2 +- .../Printer/PhpDocInfoPrinter.php | 4 +- .../DoctrineAnnotation/CurlyListNode.php | 2 +- .../rector/packages/Caching/CacheFactory.php | 2 +- .../ValueObject/Storage/FileCacheStorage.php | 6 +- .../Annotation/AnnotationExtractor.php | 2 +- .../Output/ConsoleOutputFormatter.php | 4 +- .../Output/JsonOutputFormatter.php | 2 +- .../ValueObject/RectorWithLineChange.php | 6 +- .../rector/packages/Config/RectorConfig.php | 4 +- .../Parser/FileInfoParser.php | 2 +- .../PHPStanServicesFactory.php | 2 +- .../NodeTypeResolver/Node/AttributeKey.php | 10 +- .../NodeTypeResolver/NodeTypeResolver.php | 4 + .../Scope/NodeVisitor/ContextNodeVisitor.php | 7 + .../Scope/NodeVisitor/NameNodeVisitor.php | 5 - .../Scope/PHPStanNodeScopeResolver.php | 2 +- .../PHPStan/Type/TypeFactory.php | 24 +- .../NameImportingPhpDocNodeVisitor.php | 2 +- .../PHPStanStaticTypeMapper.php | 2 +- .../TypeMapper/ConditionalTypeMapper.php | 2 +- .../TypeMapper/ObjectTypeMapper.php | 2 +- .../TypeMapper/StaticTypeMapper.php | 16 +- .../TypeMapper/UnionTypeMapper.php | 4 +- .../Application/ParallelFileProcessor.php | 30 +- .../Command/WorkerCommandLineFactory.php | 8 +- .../AnnotationToAttributeMapper.php | 2 +- .../ArrayAnnotationToAttributeMapper.php | 2 +- ...rayItemNodeAnnotationToAttributeMapper.php | 2 +- ...rlyListNodeAnnotationToAttributeMapper.php | 2 +- .../AttributeArrayNameInliner.php | 2 +- .../NodeFactory/AttributeNameFactory.php | 6 +- .../NodeFactory/NamedArgsFactory.php | 2 +- .../PhpNestedAttributeGroupFactory.php | 2 +- .../CloningPhpDocNodeVisitor.php | 4 +- .../Rector/ClassRenamingPostRector.php | 6 +- .../Rector/UnusedImportRemovingPostRector.php | 16 +- .../PostRector/Rector/UseAddingPostRector.php | 9 - .../packages/Skipper/Skipper/Skipper.php | 2 +- .../Mapper/ScalarStringToTypeMapper.php | 2 +- .../PhpDoc/PhpDocTypeMapper.php | 2 +- .../PhpDocParser/IdentifierTypeMapper.php | 2 +- .../Type/FullyQualifiedObjectType.php | 2 +- .../Testing/Fixture/FixtureFileFinder.php | 2 +- .../Testing/Fixture/FixtureFileUpdater.php | 2 +- .../Testing/Fixture/FixtureSplitter.php | 2 +- .../Testing/Fixture/FixtureTempFileDumper.php | 2 +- .../PHPUnit/AbstractRectorTestCase.php | 6 +- .../Testing/TestingParser/TestingParser.php | 5 +- .../ClassMethodReturnTypeOverrideGuard.php | 26 +- .../ClassMethod/ArgumentAdderRector.php | 2 +- .../ReplaceArgumentDefaultValueRector.php | 2 +- ...tionArgumentDefaultValueReplacerRector.php | 2 +- .../RemoveMethodCallParamRector.php | 2 +- .../RemoveUselessIsObjectCheckRector.php | 62 + .../Rector/Concat/JoinStringConcatRector.php | 2 +- .../SimplifyEmptyCheckOnEmptyArrayRector.php | 18 +- .../TernaryFalseExpressionToIfRector.php | 2 +- .../SimplifyForeachToCoalescingRector.php | 10 +- .../FuncCall/SimplifyRegexPatternRector.php | 2 +- .../AbsolutizeRequireAndIncludePathRector.php | 2 +- .../Rector/NotEqual/CommonNotEqualRector.php | 20 +- .../Application/UseImportsAdder.php | 2 +- ...yQualifiedNameClassNameImportSkipVoter.php | 2 +- .../ClassNameImport/ShortNameResolver.php | 2 +- .../rules/CodingStyle/Naming/ClassNaming.php | 2 +- .../NodeAnalyzer/UseImportNameMatcher.php | 7 +- .../CatchExceptionNameMatchingTypeRector.php | 2 +- .../AddArrayDefaultToArrayPropertyRector.php | 258 ---- .../EncapsedStringsToSprintfRector.php | 2 +- ...assKeywordForClassNameResolutionRector.php | 2 +- .../Switch_/BinarySwitchToIfElseRector.php | 52 - .../TypeAnalyzer/IterableTypeAnalyzer.php | 29 - .../PhpDoc/DeadReturnTagValueNodeAnalyzer.php | 67 +- .../PhpDoc/DeadVarTagValueNodeAnalyzer.php | 6 +- .../PhpDoc/TagRemover/ReturnTagRemover.php | 8 +- .../ClassLike/RemoveAnnotationRector.php | 2 +- .../RemoveNullTagValueNodeRector.php | 150 ++ .../RemoveUselessParamTagRector.php | 5 +- .../RemoveUselessReturnTagRector.php | 5 +- .../Rector/If_/RemoveDeadInstanceOfRector.php | 6 + .../RemoveDuplicatedCaseInSwitchRector.php | 3 + .../SideEffect/SideEffectNodeDetector.php | 2 +- .../If_/ChangeAndIfToEarlyReturnRector.php | 18 + .../InflectorSingularResolver.php | 9 +- .../MatchParamTypeExpectedNameResolver.php | 21 +- .../Naming/Naming/ExpectedNameResolver.php | 14 +- .../rules/Naming/Naming/PropertyNaming.php | 2 +- ...iableToMatchMethodCallReturnTypeRector.php | 2 +- .../rules/Naming/RectorNamingInflector.php | 4 +- .../StringClassNameToClassConstantRector.php | 18 +- .../rector/rules/Php55/RegexMatcher.php | 2 +- .../rules/Php70/EregToPcreTransformer.php | 2 +- .../Rector/FuncCall/RandomFunctionRector.php | 4 +- .../Assign/AssignArrayToStringRector.php | 16 +- .../Rector/FuncCall/CountOnNullRector.php | 51 - .../NodeFactory/AnonymousFunctionFactory.php | 20 +- .../Rector/FuncCall/RegexDashEscapeRector.php | 2 +- .../AddLiteralSeparatorToNumberRector.php | 4 +- ...AddParamBasedOnParentClassMethodRector.php | 17 +- .../Class_/AnnotationToAttributeRector.php | 2 +- ...ertyAssignToConstructorPromotionRector.php | 2 +- .../Rector/NotIdentical/StrContainsRector.php | 6 +- .../NestedAnnotationToAttributeRector.php | 2 +- .../SpatieEnumMethodCallToEnumConstRector.php | 2 +- .../AddSensitiveParameterAttributeRector.php | 4 +- .../ClassConst/AddTypeToConstRector.php | 211 +++ .../NodeManipulator/VisibilityManipulator.php | 3 +- .../PrivatizeFinalClassMethodRector.php | 22 +- ...eClassesWithoutChildrenCollectorRector.php | 2 +- .../PrivatizeLocalGetterToPropertyRector.php | 9 +- .../ClassMethod/ArgumentRemoverRector.php | 2 +- .../Rector/Class_/RemoveInterfacesRector.php | 2 +- .../Rector/Class_/RemoveTraitUseRector.php | 2 +- .../FuncCall/RemoveFuncCallArgRector.php | 2 +- .../Rector/FuncCall/RemoveFuncCallRector.php | 2 +- .../Renaming/NodeManipulator/ClassRenamer.php | 33 +- .../RenameClassConstFetchRector.php | 2 +- .../ClassMethod/RenameAnnotationRector.php | 2 +- .../ConstFetch/RenameConstantRector.php | 2 +- .../Rector/FuncCall/RenameFunctionRector.php | 2 +- .../Rector/MethodCall/RenameMethodRector.php | 2 +- .../Rector/Name/RenameClassRector.php | 75 +- .../PropertyFetch/RenamePropertyRector.php | 2 +- .../StaticCall/RenameStaticMethodRector.php | 2 +- .../Rector/String_/RenameStringRector.php | 2 +- .../NodeFactory/ExactCompareFactory.php | 37 +- .../AbstractFalsyScalarRuleFixerRector.php | 2 +- .../BooleanInBooleanNotRuleFixerRector.php | 2 +- .../Empty_/DisallowedEmptyRuleFixerRector.php | 2 +- .../BooleanInIfConditionRuleFixerRector.php | 2 +- ...ooleanInTernaryOperatorRuleFixerRector.php | 2 +- .../DisallowedShortTernaryRuleFixerRector.php | 2 +- .../PropertyAssignToMethodCallRector.php | 2 +- .../PropertyFetchToMethodCallRector.php | 2 +- .../AttributeKeyToClassConstFetchRector.php | 27 +- .../ReturnTypeWillChangeRector.php | 2 +- .../Rector/ClassMethod/WrapReturnRector.php | 2 +- ...dAllowDynamicPropertiesAttributeRector.php | 2 +- .../Class_/AddInterfaceByTraitRector.php | 2 +- .../Rector/Class_/MergeInterfacesRector.php | 2 +- .../Class_/ParentClassToTraitsRector.php | 2 +- .../FuncCall/FuncCallToConstFetchRector.php | 2 +- .../FuncCall/FuncCallToMethodCallRector.php | 2 +- .../Rector/FuncCall/FuncCallToNewRector.php | 2 +- .../FuncCall/FuncCallToStaticCallRector.php | 2 +- .../MethodCall/MethodCallToFuncCallRector.php | 2 +- .../MethodCallToPropertyFetchRector.php | 2 +- .../MethodCallToStaticCallRector.php | 2 +- .../ReplaceParentCallByPropertyCallRector.php | 2 +- .../Rector/New_/NewToStaticCallRector.php | 2 +- .../StaticCall/StaticCallToFuncCallRector.php | 2 +- .../StaticCallToMethodCallRector.php | 2 +- .../StaticCall/StaticCallToNewRector.php | 2 +- .../String_/StringToClassConstantRector.php | 2 +- .../ValueObject/ParentClassToTraits.php | 2 +- .../ConstructorAssignDetector.php | 53 + ...AutowiredClassMethodOrPropertyAnalyzer.php | 2 +- .../PHPStan/ObjectTypeSpecifier.php | 2 +- ...amTypeBasedOnPHPUnitDataProviderRector.php | 2 +- .../AddParamTypeDeclarationRector.php | 2 +- .../AddReturnTypeDeclarationRector.php | 2 +- .../AddVoidReturnTypeWhereNoReturnRector.php | 10 +- .../ParamTypeByMethodCallTypeRector.php | 6 +- .../ReturnTypeFromStrictNativeCallRector.php | 2 +- .../StrictArrayParamDimFetchRector.php | 45 +- ...eDateTimePropertyTypeDeclarationRector.php | 106 ++ ...dReturnTypeDeclarationFromYieldsRector.php | 2 +- ...ParamTypeFromStrictTypedPropertyRector.php | 192 --- .../AddPropertyTypeDeclarationRector.php | 2 +- .../TypedPropertyFromAssignsRector.php | 2 +- ...omStrictConstructorReadonlyClassRector.php | 71 - ...FromStrictGetterMethodReturnTypeRector.php | 207 --- .../PropertyTypeDefaultValueAnalyzer.php | 4 + .../TypeAnalyzer/ReturnStrictTypeAnalyzer.php | 20 + .../ChangeConstantVisibilityRector.php | 2 +- .../ChangeMethodVisibilityRector.php | 2 +- .../Application/ApplicationFileProcessor.php | 12 +- .../rector/src/Application/FileProcessor.php | 2 +- .../src/Application/VersionResolver.php | 4 +- .../src/Autoloading/AdditionalAutoloader.php | 4 +- .../Autoloading/BootstrapFilesIncluder.php | 2 +- .../src/Bootstrap/RectorConfigsResolver.php | 4 +- .../src/Configuration/ConfigInitializer.php | 6 +- .../Configuration/ConfigurationFactory.php | 4 +- .../Parameter/SimpleParameterProvider.php | 2 +- .../src/Console/Command/ListRulesCommand.php | 12 +- .../src/Console/Command/ProcessCommand.php | 10 +- .../src/Console/Command/SetupCICommand.php | 16 +- .../src/Console/Command/WorkerCommand.php | 24 +- .../rector/src/Console/ConsoleApplication.php | 16 +- vendor/rector/rector/src/Console/ExitCode.php | 2 +- .../Formatter/ColorConsoleDiffFormatter.php | 4 +- ...ompleteUnifiedDiffOutputBuilderFactory.php | 2 +- .../src/Console/Formatter/ConsoleDiffer.php | 4 +- .../src/Console/ProcessConfigureDecorator.php | 6 +- .../rector/src/Console/Style/RectorStyle.php | 12 +- .../src/Console/Style/SymfonyStyleFactory.php | 10 +- .../Laravel/ContainerMemento.php | 2 +- .../LazyContainerFactory.php | 14 +- .../RectorContainerFactory.php | 2 +- .../rector/src/Differ/DefaultDiffer.php | 4 +- ...llyQualifiedNameNotAutoloadedException.php | 19 + .../rector/src/FileSystem/FilePathHelper.php | 6 +- .../rector/src/FileSystem/FilesFinder.php | 4 +- .../src/FileSystem/InitFilePathsResolver.php | 4 +- .../NodeAnalyzer/PropertyFetchAnalyzer.php | 12 - .../ClassMethodManipulator.php | 3 + .../NodeManipulator/PropertyManipulator.php | 7 +- .../UnreachableStatementNodeVisitor.php | 6 + .../ProjectComposerJsonPhpVersionResolver.php | 6 +- .../src/PhpParser/Node/BetterNodeFinder.php | 2 +- .../src/PhpParser/Parser/InlineCodeParser.php | 4 +- .../src/PhpParser/Parser/SimplePhpParser.php | 2 +- .../Printer/BetterStandardPrinter.php | 2 +- .../Printer/FormatPerservingPrinter.php | 2 +- .../src/Rector/AbstractCollectorRector.php | 2 +- .../Reflection/ClassReflectionAnalyzer.php | 15 +- .../rector/rector/src/Util/MemoryLimiter.php | 2 +- vendor/rector/rector/src/Util/StringUtils.php | 2 +- .../rector/src/Validation/RectorAssert.php | 2 +- .../rector/src/ValueObject/Configuration.php | 2 +- .../src/ValueObject/Error/SystemError.php | 4 +- .../src/ValueObject/FileProcessResult.php | 2 +- .../src/ValueObject/PhpVersionFeature.php | 5 + .../rector/src/ValueObject/ProcessResult.php | 2 +- .../src/ValueObject/Reporting/FileDiff.php | 8 +- .../rector/src/functions/node_helper.php | 2 +- .../PHPUnit/Framework/TestCase.php | 13 + vendor/rector/rector/vendor/autoload.php | 2 +- vendor/rector/rector/vendor/bin/php-parse | 6 +- .../vendor/clue/ndjson-react/composer.json | 4 +- .../vendor/clue/ndjson-react/src/Decoder.php | 10 +- .../vendor/clue/ndjson-react/src/Encoder.php | 6 +- .../vendor/composer/InstalledVersions.php | 8 +- .../vendor/composer/autoload_classmap.php | 1213 +++++++-------- .../rector/vendor/composer/autoload_psr4.php | 54 +- .../rector/vendor/composer/autoload_real.php | 10 +- .../vendor/composer/autoload_static.php | 1329 +++++++++-------- .../rector/vendor/composer/installed.json | 224 +-- .../rector/vendor/composer/installed.php | 4 +- .../rector/vendor/composer/pcre/composer.json | 4 +- .../composer/pcre/src/MatchAllResult.php | 2 +- .../pcre/src/MatchAllStrictGroupsResult.php | 2 +- .../pcre/src/MatchAllWithOffsetsResult.php | 2 +- .../vendor/composer/pcre/src/MatchResult.php | 2 +- .../pcre/src/MatchStrictGroupsResult.php | 2 +- .../pcre/src/MatchWithOffsetsResult.php | 2 +- .../composer/pcre/src/PcreException.php | 2 +- .../rector/vendor/composer/pcre/src/Preg.php | 2 +- .../rector/vendor/composer/pcre/src/Regex.php | 2 +- .../composer/pcre/src/ReplaceResult.php | 2 +- .../pcre/src/UnexpectedNullMatchException.php | 2 +- .../vendor/composer/semver/composer.json | 4 +- .../vendor/composer/semver/src/Comparator.php | 4 +- .../composer/semver/src/CompilingMatcher.php | 6 +- .../composer/semver/src/Constraint/Bound.php | 2 +- .../semver/src/Constraint/Constraint.php | 2 +- .../src/Constraint/ConstraintInterface.php | 2 +- .../src/Constraint/MatchAllConstraint.php | 2 +- .../src/Constraint/MatchNoneConstraint.php | 2 +- .../semver/src/Constraint/MultiConstraint.php | 2 +- .../vendor/composer/semver/src/Interval.php | 4 +- .../vendor/composer/semver/src/Intervals.php | 12 +- .../vendor/composer/semver/src/Semver.php | 4 +- .../composer/semver/src/VersionParser.php | 10 +- .../composer/xdebug-handler/composer.json | 4 +- .../composer/xdebug-handler/src/PhpConfig.php | 2 +- .../composer/xdebug-handler/src/Process.php | 4 +- .../composer/xdebug-handler/src/Status.php | 6 +- .../xdebug-handler/src/XdebugHandler.php | 6 +- .../vendor/doctrine/inflector/composer.json | 4 +- .../Inflector/CachedWordInflector.php | 2 +- .../GenericLanguageInflectorFactory.php | 4 +- .../lib/Doctrine/Inflector/Inflector.php | 4 +- .../Doctrine/Inflector/InflectorFactory.php | 14 +- .../lib/Doctrine/Inflector/Language.php | 2 +- .../Inflector/LanguageInflectorFactory.php | 4 +- .../Doctrine/Inflector/NoopWordInflector.php | 2 +- .../Inflector/Rules/English/Inflectible.php | 38 +- .../Rules/English/InflectorFactory.php | 6 +- .../Inflector/Rules/English/Rules.php | 10 +- .../Inflector/Rules/English/Uninflected.php | 4 +- .../Inflector/Rules/French/Inflectible.php | 10 +- .../Rules/French/InflectorFactory.php | 6 +- .../Doctrine/Inflector/Rules/French/Rules.php | 10 +- .../Inflector/Rules/French/Uninflected.php | 4 +- .../Rules/NorwegianBokmal/Inflectible.php | 10 +- .../NorwegianBokmal/InflectorFactory.php | 6 +- .../Inflector/Rules/NorwegianBokmal/Rules.php | 10 +- .../Rules/NorwegianBokmal/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Pattern.php | 2 +- .../lib/Doctrine/Inflector/Rules/Patterns.php | 2 +- .../Rules/Portuguese/Inflectible.php | 10 +- .../Rules/Portuguese/InflectorFactory.php | 6 +- .../Inflector/Rules/Portuguese/Rules.php | 10 +- .../Rules/Portuguese/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Ruleset.php | 2 +- .../Inflector/Rules/Spanish/Inflectible.php | 20 +- .../Rules/Spanish/InflectorFactory.php | 6 +- .../Inflector/Rules/Spanish/Rules.php | 10 +- .../Inflector/Rules/Spanish/Uninflected.php | 4 +- .../Doctrine/Inflector/Rules/Substitution.php | 2 +- .../Inflector/Rules/Substitutions.php | 4 +- .../Inflector/Rules/Transformation.php | 4 +- .../Inflector/Rules/Transformations.php | 4 +- .../Inflector/Rules/Turkish/Inflectible.php | 10 +- .../Rules/Turkish/InflectorFactory.php | 6 +- .../Inflector/Rules/Turkish/Rules.php | 10 +- .../Inflector/Rules/Turkish/Uninflected.php | 4 +- .../lib/Doctrine/Inflector/Rules/Word.php | 2 +- .../Doctrine/Inflector/RulesetInflector.php | 4 +- .../lib/Doctrine/Inflector/WordInflector.php | 2 +- .../vendor/evenement/evenement/composer.json | 4 +- .../evenement/evenement/src/EventEmitter.php | 2 +- .../evenement/src/EventEmitterInterface.php | 2 +- .../evenement/src/EventEmitterTrait.php | 2 +- .../fidry/cpu-core-counter/bin/diagnose.php | 6 +- .../fidry/cpu-core-counter/bin/execute.php | 6 +- .../fidry/cpu-core-counter/composer.json | 4 +- .../cpu-core-counter/src/CpuCoreCounter.php | 6 +- .../fidry/cpu-core-counter/src/Diagnoser.php | 4 +- .../src/Executor/ProcOpenExecutor.php | 2 +- .../src/Executor/ProcessExecutor.php | 2 +- .../src/Finder/CpuCoreFinder.php | 2 +- .../src/Finder/CpuInfoFinder.php | 2 +- .../src/Finder/DummyCpuCoreFinder.php | 2 +- .../src/Finder/FinderRegistry.php | 2 +- .../src/Finder/HwLogicalFinder.php | 2 +- .../src/Finder/HwPhysicalFinder.php | 2 +- .../src/Finder/LscpuLogicalFinder.php | 2 +- .../src/Finder/LscpuPhysicalFinder.php | 2 +- .../src/Finder/NProcFinder.php | 4 +- .../src/Finder/NProcessorFinder.php | 2 +- .../src/Finder/NullCpuCoreFinder.php | 2 +- .../src/Finder/OnlyOnOSFamilyFinder.php | 2 +- .../src/Finder/ProcOpenBasedFinder.php | 6 +- .../src/Finder/SkipOnOSFamilyFinder.php | 2 +- .../src/Finder/WmicLogicalFinder.php | 2 +- .../src/Finder/WmicPhysicalFinder.php | 2 +- .../src/Finder/_NProcessorFinder.php | 2 +- .../src/NumberOfCpuCoreNotFound.php | 2 +- .../illuminate/container/BoundMethod.php | 4 +- .../vendor/illuminate/container/Container.php | 8 +- .../container/ContextualBindingBuilder.php | 6 +- .../container/EntryNotFoundException.php | 4 +- .../container/RewindableGenerator.php | 2 +- .../vendor/illuminate/container/Util.php | 2 +- .../vendor/illuminate/container/composer.json | 2 +- .../contracts/Auth/Access/Authorizable.php | 2 +- .../illuminate/contracts/Auth/Access/Gate.php | 2 +- .../contracts/Auth/Authenticatable.php | 2 +- .../contracts/Auth/CanResetPassword.php | 2 +- .../illuminate/contracts/Auth/Factory.php | 2 +- .../illuminate/contracts/Auth/Guard.php | 2 +- .../Auth/Middleware/AuthenticatesRequests.php | 2 +- .../contracts/Auth/MustVerifyEmail.php | 2 +- .../contracts/Auth/PasswordBroker.php | 2 +- .../contracts/Auth/PasswordBrokerFactory.php | 2 +- .../contracts/Auth/StatefulGuard.php | 2 +- .../contracts/Auth/SupportsBasicAuth.php | 2 +- .../contracts/Auth/UserProvider.php | 2 +- .../contracts/Broadcasting/Broadcaster.php | 2 +- .../contracts/Broadcasting/Factory.php | 2 +- .../Broadcasting/HasBroadcastChannel.php | 2 +- .../contracts/Broadcasting/ShouldBeUnique.php | 2 +- .../Broadcasting/ShouldBroadcast.php | 2 +- .../Broadcasting/ShouldBroadcastNow.php | 2 +- .../illuminate/contracts/Bus/Dispatcher.php | 2 +- .../contracts/Bus/QueueingDispatcher.php | 2 +- .../illuminate/contracts/Cache/Factory.php | 2 +- .../illuminate/contracts/Cache/Lock.php | 2 +- .../contracts/Cache/LockProvider.php | 2 +- .../contracts/Cache/LockTimeoutException.php | 2 +- .../illuminate/contracts/Cache/Repository.php | 4 +- .../illuminate/contracts/Cache/Store.php | 2 +- .../contracts/Config/Repository.php | 2 +- .../contracts/Console/Application.php | 2 +- .../contracts/Console/Isolatable.php | 2 +- .../illuminate/contracts/Console/Kernel.php | 2 +- .../Console/PromptsForMissingInput.php | 2 +- .../Container/BindingResolutionException.php | 4 +- .../Container/CircularDependencyException.php | 4 +- .../contracts/Container/Container.php | 4 +- .../Container/ContextualBindingBuilder.php | 2 +- .../illuminate/contracts/Cookie/Factory.php | 2 +- .../contracts/Cookie/QueueingFactory.php | 2 +- .../contracts/Database/Eloquent/Builder.php | 4 +- .../contracts/Database/Eloquent/Castable.php | 2 +- .../Database/Eloquent/CastsAttributes.php | 4 +- .../Eloquent/CastsInboundAttributes.php | 4 +- .../Eloquent/DeviatesCastableAttributes.php | 2 +- .../Eloquent/SerializesCastableAttributes.php | 4 +- .../Eloquent/SupportsPartialRelations.php | 2 +- .../Database/Events/MigrationEvent.php | 2 +- .../contracts/Database/ModelIdentifier.php | 2 +- .../contracts/Database/Query/Builder.php | 2 +- .../Database/Query/ConditionExpression.php | 2 +- .../contracts/Database/Query/Expression.php | 4 +- .../contracts/Debug/ExceptionHandler.php | 2 +- .../contracts/Encryption/DecryptException.php | 2 +- .../contracts/Encryption/EncryptException.php | 2 +- .../contracts/Encryption/Encrypter.php | 2 +- .../contracts/Encryption/StringEncrypter.php | 2 +- .../contracts/Events/Dispatcher.php | 2 +- .../Events/ShouldDispatchAfterCommit.php | 2 +- .../Events/ShouldHandleEventsAfterCommit.php | 2 +- .../illuminate/contracts/Filesystem/Cloud.php | 2 +- .../contracts/Filesystem/Factory.php | 2 +- .../Filesystem/FileNotFoundException.php | 2 +- .../contracts/Filesystem/Filesystem.php | 2 +- .../Filesystem/LockTimeoutException.php | 2 +- .../contracts/Foundation/Application.php | 4 +- .../Foundation/CachesConfiguration.php | 2 +- .../contracts/Foundation/CachesRoutes.php | 2 +- .../Foundation/ExceptionRenderer.php | 2 +- .../contracts/Foundation/MaintenanceMode.php | 2 +- .../illuminate/contracts/Hashing/Hasher.php | 2 +- .../illuminate/contracts/Http/Kernel.php | 2 +- .../illuminate/contracts/Mail/Attachable.php | 2 +- .../illuminate/contracts/Mail/Factory.php | 2 +- .../illuminate/contracts/Mail/MailQueue.php | 2 +- .../illuminate/contracts/Mail/Mailable.php | 4 +- .../illuminate/contracts/Mail/Mailer.php | 2 +- .../contracts/Notifications/Dispatcher.php | 2 +- .../contracts/Notifications/Factory.php | 2 +- .../contracts/Pagination/CursorPaginator.php | 2 +- .../Pagination/LengthAwarePaginator.php | 2 +- .../contracts/Pagination/Paginator.php | 2 +- .../illuminate/contracts/Pipeline/Hub.php | 2 +- .../contracts/Pipeline/Pipeline.php | 2 +- .../contracts/Process/InvokedProcess.php | 2 +- .../contracts/Process/ProcessResult.php | 2 +- .../contracts/Queue/ClearableQueue.php | 2 +- .../Queue/EntityNotFoundException.php | 2 +- .../contracts/Queue/EntityResolver.php | 2 +- .../illuminate/contracts/Queue/Factory.php | 2 +- .../vendor/illuminate/contracts/Queue/Job.php | 2 +- .../illuminate/contracts/Queue/Monitor.php | 2 +- .../illuminate/contracts/Queue/Queue.php | 2 +- .../contracts/Queue/QueueableCollection.php | 2 +- .../contracts/Queue/QueueableEntity.php | 2 +- .../contracts/Queue/ShouldBeEncrypted.php | 2 +- .../contracts/Queue/ShouldBeUnique.php | 2 +- .../Queue/ShouldBeUniqueUntilProcessing.php | 2 +- .../contracts/Queue/ShouldQueue.php | 2 +- .../Queue/ShouldQueueAfterCommit.php | 2 +- .../illuminate/contracts/Redis/Connection.php | 2 +- .../illuminate/contracts/Redis/Connector.php | 2 +- .../illuminate/contracts/Redis/Factory.php | 2 +- .../Redis/LimiterTimeoutException.php | 2 +- .../contracts/Routing/BindingRegistrar.php | 2 +- .../contracts/Routing/Registrar.php | 2 +- .../contracts/Routing/ResponseFactory.php | 2 +- .../contracts/Routing/UrlGenerator.php | 2 +- .../contracts/Routing/UrlRoutable.php | 2 +- .../Middleware/AuthenticatesSessions.php | 2 +- .../illuminate/contracts/Session/Session.php | 2 +- .../contracts/Support/Arrayable.php | 2 +- .../Support/CanBeEscapedWhenCastToString.php | 2 +- .../contracts/Support/DeferrableProvider.php | 2 +- .../Support/DeferringDisplayableValue.php | 2 +- .../illuminate/contracts/Support/Htmlable.php | 2 +- .../illuminate/contracts/Support/Jsonable.php | 2 +- .../contracts/Support/MessageBag.php | 2 +- .../contracts/Support/MessageProvider.php | 2 +- .../contracts/Support/Renderable.php | 2 +- .../contracts/Support/Responsable.php | 2 +- .../contracts/Support/ValidatedData.php | 2 +- .../Translation/HasLocalePreference.php | 2 +- .../contracts/Translation/Loader.php | 2 +- .../contracts/Translation/Translator.php | 2 +- .../contracts/Validation/DataAwareRule.php | 2 +- .../contracts/Validation/Factory.php | 2 +- .../contracts/Validation/ImplicitRule.php | 2 +- .../contracts/Validation/InvokableRule.php | 2 +- .../illuminate/contracts/Validation/Rule.php | 2 +- .../Validation/UncompromisedVerifier.php | 2 +- .../Validation/ValidatesWhenResolved.php | 2 +- .../contracts/Validation/ValidationRule.php | 2 +- .../contracts/Validation/Validator.php | 4 +- .../Validation/ValidatorAwareRule.php | 4 +- .../illuminate/contracts/View/Engine.php | 2 +- .../illuminate/contracts/View/Factory.php | 2 +- .../vendor/illuminate/contracts/View/View.php | 4 +- .../View/ViewCompilationException.php | 2 +- .../vendor/illuminate/contracts/composer.json | 2 +- .../vendor/nette/utils/src/HtmlStringable.php | 2 +- .../utils/src/Iterators/CachingIterator.php | 4 +- .../nette/utils/src/Iterators/Mapper.php | 2 +- .../vendor/nette/utils/src/SmartObject.php | 4 +- .../vendor/nette/utils/src/StaticClass.php | 2 +- .../vendor/nette/utils/src/Translator.php | 2 +- .../nette/utils/src/Utils/ArrayHash.php | 4 +- .../nette/utils/src/Utils/ArrayList.php | 4 +- .../vendor/nette/utils/src/Utils/Arrays.php | 6 +- .../vendor/nette/utils/src/Utils/Callback.php | 4 +- .../vendor/nette/utils/src/Utils/DateTime.php | 4 +- .../nette/utils/src/Utils/FileSystem.php | 4 +- .../vendor/nette/utils/src/Utils/Floats.php | 4 +- .../vendor/nette/utils/src/Utils/Helpers.php | 4 +- .../vendor/nette/utils/src/Utils/Html.php | 6 +- .../vendor/nette/utils/src/Utils/Image.php | 4 +- .../vendor/nette/utils/src/Utils/Json.php | 4 +- .../nette/utils/src/Utils/ObjectHelpers.php | 6 +- .../nette/utils/src/Utils/ObjectMixin.php | 4 +- .../nette/utils/src/Utils/Paginator.php | 4 +- .../vendor/nette/utils/src/Utils/Random.php | 4 +- .../nette/utils/src/Utils/Reflection.php | 4 +- .../vendor/nette/utils/src/Utils/Strings.php | 6 +- .../vendor/nette/utils/src/Utils/Type.php | 4 +- .../nette/utils/src/Utils/Validators.php | 4 +- .../nette/utils/src/Utils/exceptions.php | 2 +- .../vendor/nette/utils/src/compatibility.php | 6 +- .../vendor/nette/utils/src/exceptions.php | 2 +- .../vendor/nikic/php-parser/bin/php-parse | 2 +- .../vendor/nikic/php-parser/grammar/README.md | 30 - .../nikic/php-parser/grammar/parser.template | 106 -- .../vendor/nikic/php-parser/grammar/php5.y | 1046 ------------- .../vendor/nikic/php-parser/grammar/php7.y | 1245 --------------- .../nikic/php-parser/grammar/phpyLang.php | 128 -- .../php-parser/grammar/rebuildParsers.php | 64 - .../nikic/php-parser/grammar/tokens.template | 17 - .../vendor/nikic/php-parser/grammar/tokens.y | 115 -- .../lib/PhpParser/BuilderHelpers.php | 12 +- .../nikic/php-parser/lib/PhpParser/Lexer.php | 8 +- .../PhpParser/NodeVisitor/NameResolver.php | 3 + .../php-parser/lib/PhpParser/Parser/Php5.php | 2 + .../php-parser/lib/PhpParser/Parser/Php7.php | 2 + .../lib/PhpParser/ParserFactory.php | 29 + .../vendor/ondram/ci-detector/composer.json | 4 +- .../ondram/ci-detector/src/Ci/AbstractCi.php | 4 +- .../ondram/ci-detector/src/Ci/AppVeyor.php | 8 +- .../ci-detector/src/Ci/AwsCodeBuild.php | 8 +- .../ci-detector/src/Ci/AzurePipelines.php | 8 +- .../ondram/ci-detector/src/Ci/Bamboo.php | 8 +- .../ci-detector/src/Ci/BitbucketPipelines.php | 8 +- .../ondram/ci-detector/src/Ci/Buddy.php | 8 +- .../ondram/ci-detector/src/Ci/CiInterface.php | 6 +- .../ondram/ci-detector/src/Ci/Circle.php | 8 +- .../ondram/ci-detector/src/Ci/Codeship.php | 8 +- .../ci-detector/src/Ci/Continuousphp.php | 8 +- .../ondram/ci-detector/src/Ci/Drone.php | 8 +- .../ci-detector/src/Ci/GitHubActions.php | 8 +- .../ondram/ci-detector/src/Ci/GitLab.php | 8 +- .../ondram/ci-detector/src/Ci/Jenkins.php | 8 +- .../ondram/ci-detector/src/Ci/SourceHut.php | 8 +- .../ondram/ci-detector/src/Ci/TeamCity.php | 8 +- .../ondram/ci-detector/src/Ci/Travis.php | 8 +- .../ondram/ci-detector/src/Ci/Wercker.php | 8 +- .../ondram/ci-detector/src/CiDetector.php | 6 +- .../ci-detector/src/CiDetectorInterface.php | 6 +- .../vendor/ondram/ci-detector/src/Env.php | 2 +- .../src/Exception/CiNotDetectedException.php | 2 +- .../ondram/ci-detector/src/TrinaryLogic.php | 2 +- .../phpdoc-parser/phpstan-baseline.neon | 26 - .../phpdoc-parser/src/Parser/TypeParser.php | 6 +- .../phpdoc-parser/src/Printer/Printer.php | 3 + .../rector/vendor/psr/container/composer.json | 2 +- .../src/ContainerExceptionInterface.php | 2 +- .../psr/container/src/ContainerInterface.php | 2 +- .../src/NotFoundExceptionInterface.php | 2 +- .../rector/vendor/psr/log/composer.json | 2 +- .../vendor/psr/log/src/AbstractLogger.php | 2 +- .../psr/log/src/InvalidArgumentException.php | 2 +- .../rector/vendor/psr/log/src/LogLevel.php | 2 +- .../psr/log/src/LoggerAwareInterface.php | 2 +- .../vendor/psr/log/src/LoggerAwareTrait.php | 2 +- .../vendor/psr/log/src/LoggerInterface.php | 2 +- .../rector/vendor/psr/log/src/LoggerTrait.php | 2 +- .../rector/vendor/psr/log/src/NullLogger.php | 2 +- .../vendor/psr/simple-cache/composer.json | 2 +- .../psr/simple-cache/src/CacheException.php | 2 +- .../psr/simple-cache/src/CacheInterface.php | 2 +- .../src/InvalidArgumentException.php | 2 +- .../rector/vendor/react/cache/composer.json | 4 +- .../vendor/react/cache/src/ArrayCache.php | 6 +- .../vendor/react/cache/src/CacheInterface.php | 4 +- .../vendor/react/child-process/composer.json | 4 +- .../react/child-process/src/Process.php | 20 +- .../rector/rector/vendor/react/dns/README.md | 2 +- .../rector/vendor/react/dns/composer.json | 6 +- .../react/dns/src/BadServerException.php | 2 +- .../vendor/react/dns/src/Config/Config.php | 2 +- .../vendor/react/dns/src/Config/HostsFile.php | 4 +- .../vendor/react/dns/src/Model/Message.php | 4 +- .../vendor/react/dns/src/Model/Record.php | 2 +- .../react/dns/src/Protocol/BinaryDumper.php | 8 +- .../vendor/react/dns/src/Protocol/Parser.php | 8 +- .../react/dns/src/Query/CachingExecutor.php | 8 +- .../dns/src/Query/CancellationException.php | 2 +- .../react/dns/src/Query/CoopExecutor.php | 4 +- .../react/dns/src/Query/ExecutorInterface.php | 2 +- .../react/dns/src/Query/FallbackExecutor.php | 4 +- .../react/dns/src/Query/HostsFileExecutor.php | 10 +- .../vendor/react/dns/src/Query/Query.php | 6 +- .../react/dns/src/Query/RetryExecutor.php | 6 +- .../src/Query/SelectiveTransportExecutor.php | 4 +- .../dns/src/Query/TcpTransportExecutor.php | 18 +- .../react/dns/src/Query/TimeoutException.php | 2 +- .../react/dns/src/Query/TimeoutExecutor.php | 8 +- .../dns/src/Query/UdpTransportExecutor.php | 20 +- .../react/dns/src/RecordNotFoundException.php | 2 +- .../vendor/react/dns/src/Resolver/Factory.php | 34 +- .../react/dns/src/Resolver/Resolver.php | 10 +- .../dns/src/Resolver/ResolverInterface.php | 2 +- .../vendor/react/event-loop/composer.json | 4 +- .../vendor/react/event-loop/src/ExtEvLoop.php | 6 +- .../react/event-loop/src/ExtEventLoop.php | 6 +- .../react/event-loop/src/ExtLibevLoop.php | 16 +- .../react/event-loop/src/ExtLibeventLoop.php | 6 +- .../vendor/react/event-loop/src/ExtUvLoop.php | 12 +- .../vendor/react/event-loop/src/Factory.php | 4 +- .../vendor/react/event-loop/src/Loop.php | 2 +- .../react/event-loop/src/LoopInterface.php | 2 +- .../react/event-loop/src/SignalsHandler.php | 2 +- .../react/event-loop/src/StreamSelectLoop.php | 8 +- .../event-loop/src/Tick/FutureTickQueue.php | 2 +- .../react/event-loop/src/Timer/Timer.php | 4 +- .../react/event-loop/src/Timer/Timers.php | 4 +- .../react/event-loop/src/TimerInterface.php | 2 +- .../rector/vendor/react/promise/composer.json | 4 +- .../src/CancellablePromiseInterface.php | 2 +- .../react/promise/src/CancellationQueue.php | 2 +- .../vendor/react/promise/src/Deferred.php | 2 +- .../promise/src/Exception/LengthException.php | 2 +- .../promise/src/ExtendedPromiseInterface.php | 2 +- .../react/promise/src/FulfilledPromise.php | 2 +- .../vendor/react/promise/src/LazyPromise.php | 2 +- .../vendor/react/promise/src/Promise.php | 2 +- .../react/promise/src/PromiseInterface.php | 2 +- .../react/promise/src/PromisorInterface.php | 2 +- .../react/promise/src/RejectedPromise.php | 2 +- .../src/UnhandledRejectionException.php | 2 +- .../vendor/react/promise/src/functions.php | 4 +- .../react/promise/src/functions_include.php | 4 +- .../rector/vendor/react/socket/README.md | 2 +- .../rector/vendor/react/socket/composer.json | 6 +- .../vendor/react/socket/src/Connection.php | 16 +- .../react/socket/src/ConnectionInterface.php | 4 +- .../vendor/react/socket/src/Connector.php | 12 +- .../react/socket/src/ConnectorInterface.php | 2 +- .../vendor/react/socket/src/DnsConnector.php | 8 +- .../vendor/react/socket/src/FdServer.php | 8 +- .../react/socket/src/FixedUriConnector.php | 2 +- .../src/HappyEyeBallsConnectionBuilder.php | 35 +- .../socket/src/HappyEyeBallsConnector.php | 10 +- .../react/socket/src/LimitingServer.php | 4 +- .../react/socket/src/SecureConnector.php | 10 +- .../vendor/react/socket/src/SecureServer.php | 8 +- .../rector/vendor/react/socket/src/Server.php | 8 +- .../react/socket/src/ServerInterface.php | 4 +- .../vendor/react/socket/src/SocketServer.php | 8 +- .../react/socket/src/StreamEncryption.php | 6 +- .../vendor/react/socket/src/TcpConnector.php | 8 +- .../vendor/react/socket/src/TcpServer.php | 8 +- .../react/socket/src/TimeoutConnector.php | 8 +- .../vendor/react/socket/src/UnixConnector.php | 8 +- .../vendor/react/socket/src/UnixServer.php | 8 +- .../rector/vendor/react/stream/composer.json | 4 +- .../react/stream/src/CompositeStream.php | 4 +- .../react/stream/src/DuplexResourceStream.php | 8 +- .../stream/src/DuplexStreamInterface.php | 2 +- .../stream/src/ReadableResourceStream.php | 8 +- .../stream/src/ReadableStreamInterface.php | 4 +- .../vendor/react/stream/src/ThroughStream.php | 4 +- .../rector/vendor/react/stream/src/Util.php | 2 +- .../stream/src/WritableResourceStream.php | 8 +- .../stream/src/WritableStreamInterface.php | 4 +- .../rector/extension-installer/rector.php | 4 +- .../src/GeneratedConfig.php | 2 +- .../src/PluginInstaller.php | 10 +- .../doctrine-annotations-to-attributes.php | 2 +- .../config/sets/doctrine-bundle-210.php | 2 +- .../config/sets/doctrine-code-quality.php | 2 +- .../config/sets/doctrine-common-20.php | 2 +- .../config/sets/doctrine-dbal-210.php | 2 +- .../config/sets/doctrine-dbal-211.php | 2 +- .../config/sets/doctrine-dbal-30.php | 2 +- .../config/sets/doctrine-dbal-40.php | 2 +- ...ctrine-gedmo-annotations-to-attributes.php | 2 +- .../config/sets/doctrine-orm-213.php | 2 +- .../config/sets/doctrine-orm-214.php | 2 +- .../config/sets/doctrine-orm-25.php | 2 +- .../config/sets/doctrine-orm-29.php | 2 +- .../sets/doctrine-repository-as-service.php | 2 +- .../vendor/rector/rector-doctrine/easy-ci.php | 4 +- .../vendor/rector/rector-doctrine/rector.php | 2 +- .../RemoveEmptyTableAttributeRector.php | 8 +- .../ToOneRelationPropertyTypeResolver.php | 2 +- .../src/PhpDoc/ShortClassExpander.php | 2 +- .../config/set/downgrade-php72.php | 2 +- .../config/set/downgrade-php73.php | 2 +- .../config/set/downgrade-php74.php | 2 +- .../config/set/downgrade-php80.php | 2 +- .../config/set/downgrade-php81.php | 2 +- .../config/set/downgrade-php82.php | 5 +- .../config/set/level/down-to-php71.php | 2 +- .../config/set/level/down-to-php72.php | 2 +- .../config/set/level/down-to-php73.php | 2 +- .../config/set/level/down-to-php74.php | 2 +- .../config/set/level/down-to-php80.php | 2 +- .../config/set/level/down-to-php81.php | 2 +- .../DowngradeParameterTypeWideningRector.php | 2 +- .../DowngradeArrayKeyFirstLastRector.php | 22 +- .../DowngradeAttributeToAnnotationRector.php | 2 +- ...tandaloneNullTrueFalseReturnTypeRector.php | 159 ++ .../Symfony/Component/Annotation/Route.php | 2 +- .../config/sets/annotations-to-attributes.php | 2 +- .../config/sets/level/up-to-phpunit-100.php | 2 +- .../config/sets/level/up-to-phpunit-50.php | 2 +- .../config/sets/level/up-to-phpunit-60.php | 2 +- .../config/sets/level/up-to-phpunit-70.php | 2 +- .../config/sets/level/up-to-phpunit-80.php | 2 +- .../config/sets/level/up-to-phpunit-90.php | 2 +- .../config/sets/level/up-to-phpunit-91.php | 2 +- .../config/sets/phpunit-code-quality.php | 2 +- .../config/sets/phpunit-exception.php | 2 +- .../config/sets/phpunit-specific-method.php | 2 +- .../rector-phpunit/config/sets/phpunit100.php | 2 +- .../rector-phpunit/config/sets/phpunit40.php | 2 +- .../rector-phpunit/config/sets/phpunit50.php | 2 +- .../rector-phpunit/config/sets/phpunit60.php | 2 +- .../rector-phpunit/config/sets/phpunit70.php | 2 +- .../config/sets/phpunit80-dms.php | 2 +- .../rector-phpunit/config/sets/phpunit80.php | 2 +- .../rector-phpunit/config/sets/phpunit90.php | 2 +- .../rector-phpunit/config/sets/phpunit91.php | 2 +- .../config/sets/remove-mocks.php | 2 +- .../vendor/rector/rector-phpunit/easy-ci.php | 4 +- .../vendor/rector/rector-phpunit/rector.php | 2 +- ...ataProviderAnnotationToAttributeRector.php | 2 +- .../TestWithAnnotationToAttributeRector.php | 2 +- .../AnnotationWithValueToAttributeRector.php | 2 +- ...rsAnnotationWithValueToAttributeRector.php | 2 +- .../TicketAnnotationToAttributeRector.php | 2 +- .../Class_/TestWithToDataProviderRector.php | 4 +- .../RemoveDataProviderTestPrefixRector.php | 2 +- .../DataProviderClassMethodFinder.php | 2 +- .../src/PhpDoc/DataProviderMethodRenamer.php | 2 +- .../fosrest/annotations-to-attributes.php | 2 +- .../sets/jms/annotations-to-attributes.php | 2 +- .../sensiolabs/annotations-to-attributes.php | 2 +- .../swiftmailer-to-symfony-mailer.php | 23 + .../symfony/annotations-to-attributes.php | 2 +- .../config/sets/symfony/configs.php | 2 +- .../sets/symfony/level/up-to-symfony-25.php | 2 +- .../sets/symfony/level/up-to-symfony-26.php | 2 +- .../sets/symfony/level/up-to-symfony-27.php | 2 +- .../sets/symfony/level/up-to-symfony-28.php | 2 +- .../sets/symfony/level/up-to-symfony-30.php | 2 +- .../sets/symfony/level/up-to-symfony-31.php | 2 +- .../sets/symfony/level/up-to-symfony-32.php | 2 +- .../sets/symfony/level/up-to-symfony-33.php | 2 +- .../sets/symfony/level/up-to-symfony-34.php | 2 +- .../sets/symfony/level/up-to-symfony-40.php | 2 +- .../sets/symfony/level/up-to-symfony-41.php | 2 +- .../sets/symfony/level/up-to-symfony-42.php | 2 +- .../sets/symfony/level/up-to-symfony-43.php | 2 +- .../sets/symfony/level/up-to-symfony-44.php | 2 +- .../sets/symfony/level/up-to-symfony-50.php | 2 +- .../sets/symfony/level/up-to-symfony-51.php | 2 +- .../sets/symfony/level/up-to-symfony-52.php | 2 +- .../sets/symfony/level/up-to-symfony-53.php | 2 +- .../sets/symfony/level/up-to-symfony-54.php | 2 +- .../sets/symfony/level/up-to-symfony-60.php | 2 +- .../sets/symfony/level/up-to-symfony-61.php | 2 +- .../sets/symfony/level/up-to-symfony-62.php | 2 +- .../sets/symfony/level/up-to-symfony-63.php | 2 +- .../sets/symfony/level/up-to-symfony-64.php | 11 + .../sets/symfony/symfony-code-quality.php | 2 +- .../symfony/symfony-constructor-injection.php | 2 +- .../config/sets/symfony/symfony25.php | 2 +- .../config/sets/symfony/symfony26.php | 2 +- .../config/sets/symfony/symfony27.php | 2 +- .../config/sets/symfony/symfony28.php | 2 +- .../config/sets/symfony/symfony30.php | 2 +- .../config/sets/symfony/symfony31.php | 2 +- .../config/sets/symfony/symfony32.php | 2 +- .../config/sets/symfony/symfony33.php | 2 +- .../config/sets/symfony/symfony34.php | 2 +- .../config/sets/symfony/symfony40.php | 2 +- .../config/sets/symfony/symfony41.php | 2 +- .../config/sets/symfony/symfony42.php | 2 +- .../config/sets/symfony/symfony43.php | 2 +- .../config/sets/symfony/symfony44.php | 2 +- .../config/sets/symfony/symfony50-types.php | 2 +- .../config/sets/symfony/symfony50.php | 2 +- .../config/sets/symfony/symfony51.php | 2 +- .../symfony52-validator-attributes.php | 2 +- .../config/sets/symfony/symfony52.php | 2 +- .../config/sets/symfony/symfony53.php | 22 +- .../config/sets/symfony/symfony54.php | 2 +- .../symfony/symfony6/symfony-return-types.php | 2 +- .../config/sets/symfony/symfony60.php | 2 +- .../config/sets/symfony/symfony61.php | 2 +- .../config/sets/symfony/symfony62.php | 2 +- .../config/sets/symfony/symfony63.php | 2 +- .../config/sets/symfony/symfony64.php | 11 + .../config/sets/twig/level/up-to-twig-112.php | 2 +- .../config/sets/twig/level/up-to-twig-127.php | 2 +- .../config/sets/twig/level/up-to-twig-134.php | 2 +- .../config/sets/twig/level/up-to-twig-140.php | 2 +- .../config/sets/twig/level/up-to-twig-20.php | 2 +- .../config/sets/twig/level/up-to-twig-240.php | 2 +- .../twig/twig-underscore-to-namespace.php | 2 +- .../config/sets/twig/twig112.php | 2 +- .../config/sets/twig/twig127.php | 2 +- .../config/sets/twig/twig134.php | 2 +- .../config/sets/twig/twig140.php | 2 +- .../config/sets/twig/twig20.php | 2 +- .../config/sets/twig/twig240.php | 2 +- .../vendor/rector/rector-symfony/rector.php | 2 +- .../ClassMethod/ActionSuffixRemoverRector.php | 2 +- .../EventListenerToEventSubscriberRector.php | 2 +- ...iceSettersToSettersAutodiscoveryRector.php | 2 +- .../SwiftCreateMessageToNewEmailRector.php | 4 +- ...wiftSetBodyToHtmlPlainMethodCallRector.php | 4 +- .../MethodCall/RedirectToRouteRector.php | 2 +- .../Rector/StaticCall/ParseFileRector.php | 2 +- .../RemoveDefaultGetBlockPrefixRector.php | 2 +- .../StringToArrayArgumentProcessRector.php | 2 +- ...plateShortNotationToBundleSyntaxRector.php | 2 +- .../FuncCall/ReplaceServiceArgumentRector.php | 2 +- ...mentValueResolverToValueResolverRector.php | 4 +- .../Symfony/ContainerServiceProvider.php | 4 +- .../Symfony/Routing/SymfonyRoutesProvider.php | 4 +- .../FormTypeStringToTypeProvider.php | 2 +- .../src/Helper/TemplateGuesser.php | 2 +- .../src/Set/SwiftMailerSetList.php | 16 + .../src/Set/SymfonyLevelSetList.php | 4 + .../rector-symfony/src/Set/SymfonySetList.php | 4 + .../ValueObject/IntlBundleClassToNewClass.php | 2 +- .../ValueObjectFactory/ServiceMapFactory.php | 6 +- .../rector/rector/vendor/scoper-autoload.php | 4 +- .../vendor/sebastian/diff/src/Chunk.php | 2 +- .../rector/vendor/sebastian/diff/src/Diff.php | 2 +- .../vendor/sebastian/diff/src/Differ.php | 4 +- .../src/Exception/ConfigurationException.php | 2 +- .../diff/src/Exception/Exception.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../rector/vendor/sebastian/diff/src/Line.php | 2 +- .../LongestCommonSubsequenceCalculator.php | 2 +- ...ientLongestCommonSubsequenceCalculator.php | 2 +- .../src/Output/AbstractChunkOutputBuilder.php | 2 +- .../diff/src/Output/DiffOnlyOutputBuilder.php | 4 +- .../src/Output/DiffOutputBuilderInterface.php | 2 +- .../Output/StrictUnifiedDiffOutputBuilder.php | 6 +- .../src/Output/UnifiedDiffOutputBuilder.php | 4 +- .../vendor/sebastian/diff/src/Parser.php | 2 +- ...ientLongestCommonSubsequenceCalculator.php | 2 +- .../vendor/symfony/console/Application.php | 110 +- .../symfony/console/Attribute/AsCommand.php | 2 +- .../console/CI/GithubActionReporter.php | 4 +- .../rector/vendor/symfony/console/Color.php | 4 +- .../symfony/console/Command/Command.php | 34 +- .../console/Command/CompleteCommand.php | 32 +- .../console/Command/DumpCompletionCommand.php | 16 +- .../symfony/console/Command/HelpCommand.php | 14 +- .../symfony/console/Command/LazyCommand.php | 20 +- .../symfony/console/Command/ListCommand.php | 16 +- .../symfony/console/Command/LockableTrait.php | 12 +- .../Command/SignalableCommandInterface.php | 3 +- .../console/Command/TraceableCommand.php | 340 +++++ .../CommandLoader/CommandLoaderInterface.php | 6 +- .../CommandLoader/ContainerCommandLoader.php | 8 +- .../CommandLoader/FactoryCommandLoader.php | 6 +- .../console/Completion/CompletionInput.php | 29 +- .../Completion/CompletionSuggestions.php | 10 +- .../Output/BashCompletionOutput.php | 6 +- .../Output/CompletionOutputInterface.php | 6 +- .../Output/FishCompletionOutput.php | 6 +- .../Completion/Output/ZshCompletionOutput.php | 6 +- .../symfony/console/Completion/Suggestion.php | 2 +- .../vendor/symfony/console/ConsoleEvents.php | 10 +- .../rector/vendor/symfony/console/Cursor.php | 5 +- .../DataCollector/CommandDataCollector.php | 182 +++ .../symfony/console/Debug/CliRequest.php | 70 + .../AddConsoleCommandPass.php | 22 +- .../Descriptor/ApplicationDescription.php | 8 +- .../symfony/console/Descriptor/Descriptor.php | 16 +- .../Descriptor/DescriptorInterface.php | 4 +- .../console/Descriptor/JsonDescriptor.php | 12 +- .../console/Descriptor/MarkdownDescriptor.php | 16 +- .../Descriptor/ReStructuredTextDescriptor.php | 18 +- .../console/Descriptor/TextDescriptor.php | 16 +- .../console/Descriptor/XmlDescriptor.php | 12 +- .../Exception/CommandNotFoundException.php | 2 +- .../console/Exception/ExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../Exception/InvalidOptionException.php | 2 +- .../console/Exception/LogicException.php | 2 +- .../Exception/MissingInputException.php | 2 +- .../Exception/NamespaceNotFoundException.php | 2 +- .../Exception/RunCommandFailedException.php | 32 + .../console/Exception/RuntimeException.php | 2 +- .../console/Formatter/NullOutputFormatter.php | 2 +- .../Formatter/NullOutputFormatterStyle.php | 2 +- .../console/Formatter/OutputFormatter.php | 6 +- .../Formatter/OutputFormatterInterface.php | 2 +- .../Formatter/OutputFormatterStyle.php | 4 +- .../OutputFormatterStyleInterface.php | 2 +- .../Formatter/OutputFormatterStyleStack.php | 6 +- .../WrappableOutputFormatterInterface.php | 2 +- .../console/Helper/DebugFormatterHelper.php | 2 +- .../console/Helper/DescriptorHelper.php | 18 +- .../vendor/symfony/console/Helper/Dumper.php | 10 +- .../console/Helper/FormatterHelper.php | 4 +- .../vendor/symfony/console/Helper/Helper.php | 35 +- .../console/Helper/HelperInterface.php | 2 +- .../symfony/console/Helper/HelperSet.php | 4 +- .../console/Helper/InputAwareHelper.php | 6 +- .../symfony/console/Helper/OutputWrapper.php | 2 +- .../symfony/console/Helper/ProcessHelper.php | 10 +- .../symfony/console/Helper/ProgressBar.php | 28 +- .../console/Helper/ProgressIndicator.php | 10 +- .../symfony/console/Helper/QuestionHelper.php | 30 +- .../console/Helper/SymfonyQuestionHelper.php | 14 +- .../vendor/symfony/console/Helper/Table.php | 29 +- .../symfony/console/Helper/TableCell.php | 4 +- .../symfony/console/Helper/TableCellStyle.php | 4 +- .../symfony/console/Helper/TableRows.php | 2 +- .../symfony/console/Helper/TableSeparator.php | 2 +- .../symfony/console/Helper/TableStyle.php | 6 +- .../symfony/console/Input/ArgvInput.php | 4 +- .../symfony/console/Input/ArrayInput.php | 6 +- .../vendor/symfony/console/Input/Input.php | 7 +- .../symfony/console/Input/InputArgument.php | 14 +- .../console/Input/InputAwareInterface.php | 2 +- .../symfony/console/Input/InputDefinition.php | 6 +- .../symfony/console/Input/InputInterface.php | 6 +- .../symfony/console/Input/InputOption.php | 14 +- .../Input/StreamableInputInterface.php | 2 +- .../symfony/console/Input/StringInput.php | 4 +- .../symfony/console/Logger/ConsoleLogger.php | 12 +- .../console/Messenger/RunCommandContext.php | 39 + .../console/Messenger/RunCommandMessage.php | 48 + .../Messenger/RunCommandMessageHandler.php | 47 + .../symfony/console/Output/AnsiColorMode.php | 4 +- .../symfony/console/Output/BufferedOutput.php | 2 +- .../symfony/console/Output/ConsoleOutput.php | 4 +- .../console/Output/ConsoleOutputInterface.php | 2 +- .../console/Output/ConsoleSectionOutput.php | 8 +- .../symfony/console/Output/NullOutput.php | 6 +- .../vendor/symfony/console/Output/Output.php | 6 +- .../console/Output/OutputInterface.php | 8 +- .../symfony/console/Output/StreamOutput.php | 7 +- .../console/Output/TrimmedBufferOutput.php | 6 +- .../console/Question/ChoiceQuestion.php | 4 +- .../console/Question/ConfirmationQuestion.php | 2 +- .../symfony/console/Question/Question.php | 6 +- .../rector/vendor/symfony/console/README.md | 2 +- .../console/SignalRegistry/SignalMap.php | 37 + .../console/SignalRegistry/SignalRegistry.php | 2 +- .../console/SingleCommandApplication.php | 8 +- .../symfony/console/Style/OutputStyle.php | 10 +- .../symfony/console/Style/StyleInterface.php | 2 +- .../symfony/console/Style/SymfonyStyle.php | 48 +- .../vendor/symfony/console/Terminal.php | 4 +- .../vendor/symfony/console/composer.json | 20 +- .../Exception/ExceptionInterface.php | 2 +- .../Exception/FileNotFoundException.php | 2 +- .../filesystem/Exception/IOException.php | 2 +- .../Exception/IOExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../filesystem/Exception/RuntimeException.php | 2 +- .../vendor/symfony/filesystem/Filesystem.php | 13 +- .../rector/vendor/symfony/filesystem/Path.php | 6 +- .../vendor/symfony/filesystem/composer.json | 2 +- .../symfony/finder/Comparator/Comparator.php | 2 +- .../finder/Comparator/DateComparator.php | 2 +- .../finder/Comparator/NumberComparator.php | 2 +- .../Exception/AccessDeniedException.php | 2 +- .../Exception/DirectoryNotFoundException.php | 2 +- .../rector/vendor/symfony/finder/Finder.php | 40 +- .../vendor/symfony/finder/Gitignore.php | 2 +- .../rector/vendor/symfony/finder/Glob.php | 2 +- .../finder/Iterator/CustomFilterIterator.php | 2 +- .../Iterator/DateRangeFilterIterator.php | 4 +- .../Iterator/DepthRangeFilterIterator.php | 2 +- .../ExcludeDirectoryFilterIterator.php | 28 +- .../Iterator/FileTypeFilterIterator.php | 2 +- .../Iterator/FilecontentFilterIterator.php | 4 +- .../Iterator/FilenameFilterIterator.php | 4 +- .../symfony/finder/Iterator/LazyIterator.php | 2 +- .../Iterator/MultiplePcreFilterIterator.php | 2 +- .../finder/Iterator/PathFilterIterator.php | 4 +- .../Iterator/RecursiveDirectoryIterator.php | 6 +- .../Iterator/SizeRangeFilterIterator.php | 4 +- .../finder/Iterator/SortableIterator.php | 2 +- .../Iterator/VcsIgnoredFilterIterator.php | 4 +- .../vendor/symfony/finder/SplFileInfo.php | 2 +- .../vendor/symfony/finder/composer.json | 4 +- .../Resources/unidata/caseFolding.php | 2 +- .../Resources/unidata/lowerCase.php | 2 +- .../Resources/unidata/titleCaseRegexp.php | 2 +- .../Resources/unidata/upperCase.php | 2 +- .../process/Exception/ExceptionInterface.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../process/Exception/LogicException.php | 2 +- .../Exception/ProcessFailedException.php | 7 +- .../Exception/ProcessSignaledException.php | 7 +- .../Exception/ProcessTimedOutException.php | 10 +- .../Exception/RunProcessFailedException.php | 29 + .../process/Exception/RuntimeException.php | 2 +- .../symfony/process/ExecutableFinder.php | 29 +- .../vendor/symfony/process/InputStream.php | 16 +- .../process/Messenger/RunProcessContext.php | 46 + .../process/Messenger/RunProcessMessage.php | 58 + .../Messenger/RunProcessMessageHandler.php | 30 + .../symfony/process/PhpExecutableFinder.php | 7 +- .../vendor/symfony/process/PhpProcess.php | 6 +- .../vendor/symfony/process/PhpSubprocess.php | 140 ++ .../symfony/process/Pipes/AbstractPipes.php | 18 +- .../symfony/process/Pipes/PipesInterface.php | 2 +- .../symfony/process/Pipes/UnixPipes.php | 15 +- .../symfony/process/Pipes/WindowsPipes.php | 23 +- .../rector/vendor/symfony/process/Process.php | 114 +- .../vendor/symfony/process/ProcessUtils.php | 7 +- .../vendor/symfony/process/composer.json | 2 +- .../service-contracts/Attribute/Required.php | 2 +- .../Attribute/SubscribedService.php | 6 +- .../service-contracts/ResetInterface.php | 2 +- .../service-contracts/ServiceLocatorTrait.php | 6 +- .../ServiceProviderInterface.php | 4 +- .../ServiceSubscriberInterface.php | 4 +- .../ServiceSubscriberTrait.php | 8 +- .../symfony/service-contracts/composer.json | 2 +- .../symplify/easy-parallel/composer.json | 4 +- .../symplify/easy-parallel/config/config.php | 4 +- .../vendor/symplify/easy-parallel/easy-ci.php | 6 +- .../vendor/symplify/easy-parallel/ecs.php | 6 +- .../vendor/symplify/easy-parallel/rector.php | 2 +- .../CommandLine/WorkerCommandLineFactory.php | 10 +- .../src/Contract/SerializableInterface.php | 2 +- .../src/CpuCoreCountProvider.php | 6 +- .../easy-parallel/src/Enum/Action.php | 2 +- .../easy-parallel/src/Enum/Content.php | 2 +- .../easy-parallel/src/Enum/ReactCommand.php | 2 +- .../easy-parallel/src/Enum/ReactEvent.php | 2 +- .../ParallelShouldNotHappenException.php | 2 +- .../src/FileSystem/FilePathNormalizer.php | 4 +- .../CommandFromReflectionFactory.php | 6 +- .../easy-parallel/src/ScheduleFactory.php | 4 +- .../src/ValueObject/EasyParallelConfig.php | 2 +- .../src/ValueObject/ParallelProcess.php | 22 +- .../src/ValueObject/ProcessPool.php | 6 +- .../src/ValueObject/Schedule.php | 2 +- .../src/ValueObject/RuleDefinition.php | 2 +- .../vendor/webmozart/assert/composer.json | 6 +- .../vendor/webmozart/assert/src/Assert.php | 2 +- .../assert/src/InvalidArgumentException.php | 2 +- .../vendor/webmozart/assert/src/Mixin.php | 2 +- .../console/Event/ConsoleCommandEvent.php | 5 +- .../string/Inflector/EnglishInflector.php | 41 +- 1108 files changed, 6570 insertions(+), 7459 deletions(-) create mode 100644 vendor/rector/rector/rules/CodeQuality/Rector/BooleanAnd/RemoveUselessIsObjectCheckRector.php delete mode 100644 vendor/rector/rector/rules/CodingStyle/Rector/Class_/AddArrayDefaultToArrayPropertyRector.php delete mode 100644 vendor/rector/rector/rules/CodingStyle/Rector/Switch_/BinarySwitchToIfElseRector.php delete mode 100644 vendor/rector/rector/rules/CodingStyle/TypeAnalyzer/IterableTypeAnalyzer.php create mode 100644 vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveNullTagValueNodeRector.php delete mode 100644 vendor/rector/rector/rules/Php71/Rector/FuncCall/CountOnNullRector.php create mode 100644 vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php create mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/MergeDateTimePropertyTypeDeclarationRector.php delete mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/Param/ParamTypeFromStrictTypedPropertyRector.php delete mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorReadonlyClassRector.php delete mode 100644 vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php create mode 100644 vendor/rector/rector/src/Exception/FullyQualifiedNameNotAutoloadedException.php delete mode 100644 vendor/rector/rector/vendor/nikic/php-parser/grammar/README.md delete mode 100644 vendor/rector/rector/vendor/nikic/php-parser/grammar/parser.template delete mode 100644 vendor/rector/rector/vendor/nikic/php-parser/grammar/php5.y delete mode 100644 vendor/rector/rector/vendor/nikic/php-parser/grammar/php7.y delete mode 100644 vendor/rector/rector/vendor/nikic/php-parser/grammar/phpyLang.php delete mode 100644 vendor/rector/rector/vendor/nikic/php-parser/grammar/rebuildParsers.php delete mode 100644 vendor/rector/rector/vendor/nikic/php-parser/grammar/tokens.template delete mode 100644 vendor/rector/rector/vendor/nikic/php-parser/grammar/tokens.y delete mode 100644 vendor/rector/rector/vendor/phpstan/phpdoc-parser/phpstan-baseline.neon create mode 100644 vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php create mode 100644 vendor/rector/rector/vendor/rector/rector-symfony/config/sets/swiftmailer/swiftmailer-to-symfony-mailer.php create mode 100644 vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/level/up-to-symfony-64.php create mode 100644 vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony64.php rename vendor/rector/rector/vendor/rector/rector-symfony/rules/{Symfony53 => SwiftMailer}/Rector/MethodCall/SwiftCreateMessageToNewEmailRector.php (93%) rename vendor/rector/rector/vendor/rector/rector-symfony/rules/{Symfony53 => SwiftMailer}/Rector/MethodCall/SwiftSetBodyToHtmlPlainMethodCallRector.php (92%) create mode 100644 vendor/rector/rector/vendor/rector/rector-symfony/src/Set/SwiftMailerSetList.php create mode 100644 vendor/rector/rector/vendor/symfony/console/Command/TraceableCommand.php create mode 100644 vendor/rector/rector/vendor/symfony/console/DataCollector/CommandDataCollector.php create mode 100644 vendor/rector/rector/vendor/symfony/console/Debug/CliRequest.php create mode 100644 vendor/rector/rector/vendor/symfony/console/Exception/RunCommandFailedException.php create mode 100644 vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandContext.php create mode 100644 vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessage.php create mode 100644 vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessageHandler.php create mode 100644 vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php create mode 100644 vendor/rector/rector/vendor/symfony/process/Exception/RunProcessFailedException.php create mode 100644 vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessContext.php create mode 100644 vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessage.php create mode 100644 vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessageHandler.php create mode 100644 vendor/rector/rector/vendor/symfony/process/PhpSubprocess.php diff --git a/composer.json b/composer.json index 80adbeafb..f85240c31 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "require": { "php": ">=7.4", - "rector/rector": "0.18.10", + "rector/rector": "0.18.13", "friendsofphp/php-cs-fixer": "3.38.2", "redaxo/php-cs-fixer-config": "^1.0" }, diff --git a/composer.lock b/composer.lock index b51af5306..73f52aae1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b880908f298f9f6b6cc824e68236292f", + "content-hash": "17d4a15ae86f3c19853230568f627a53", "packages": [ { "name": "composer/pcre", @@ -319,16 +319,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.42", + "version": "1.10.50", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "fc2316508de5453140b5cb3d3f8683a33e92f26a" + "reference": "06a98513ac72c03e8366b5a0cb00750b487032e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/fc2316508de5453140b5cb3d3f8683a33e92f26a", - "reference": "fc2316508de5453140b5cb3d3f8683a33e92f26a", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/06a98513ac72c03e8366b5a0cb00750b487032e4", + "reference": "06a98513ac72c03e8366b5a0cb00750b487032e4", "shasum": "" }, "require": { @@ -377,7 +377,7 @@ "type": "tidelift" } ], - "time": "2023-11-17T15:26:57+00:00" + "time": "2023-12-13T10:59:42+00:00" }, { "name": "psr/container", @@ -529,16 +529,16 @@ }, { "name": "rector/rector", - "version": "0.18.10", + "version": "0.18.13", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "f36bc0a707fd8af301df5108740ce41f9db8eded" + "reference": "f8011a76d36aa4f839f60f3b4f97707d97176618" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/f36bc0a707fd8af301df5108740ce41f9db8eded", - "reference": "f36bc0a707fd8af301df5108740ce41f9db8eded", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/f8011a76d36aa4f839f60f3b4f97707d97176618", + "reference": "f8011a76d36aa4f839f60f3b4f97707d97176618", "shasum": "" }, "require": { @@ -573,7 +573,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/0.18.10" + "source": "https://github.com/rectorphp/rector/tree/0.18.13" }, "funding": [ { @@ -581,7 +581,7 @@ "type": "github" } ], - "time": "2023-11-16T19:42:21+00:00" + "time": "2023-12-20T16:08:01+00:00" }, { "name": "redaxo/php-cs-fixer-config", @@ -692,16 +692,16 @@ }, { "name": "symfony/console", - "version": "v5.4.31", + "version": "v5.4.32", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a" + "reference": "c70df1ffaf23a8d340bded3cfab1b86752ad6ed7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/11ac5f154e0e5c4c77af83ad11ead9165280b92a", - "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a", + "url": "https://api.github.com/repos/symfony/console/zipball/c70df1ffaf23a8d340bded3cfab1b86752ad6ed7", + "reference": "c70df1ffaf23a8d340bded3cfab1b86752ad6ed7", "shasum": "" }, "require": { @@ -771,7 +771,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.31" + "source": "https://github.com/symfony/console/tree/v5.4.32" }, "funding": [ { @@ -787,7 +787,7 @@ "type": "tidelift" } ], - "time": "2023-10-31T07:58:33+00:00" + "time": "2023-11-18T18:23:04+00:00" }, { "name": "symfony/deprecation-contracts", @@ -1996,16 +1996,16 @@ }, { "name": "symfony/string", - "version": "v5.4.31", + "version": "v5.4.32", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "2765096c03f39ddf54f6af532166e42aaa05b24b" + "reference": "91bf4453d65d8231688a04376c3a40efe0770f04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/2765096c03f39ddf54f6af532166e42aaa05b24b", - "reference": "2765096c03f39ddf54f6af532166e42aaa05b24b", + "url": "https://api.github.com/repos/symfony/string/zipball/91bf4453d65d8231688a04376c3a40efe0770f04", + "reference": "91bf4453d65d8231688a04376c3a40efe0770f04", "shasum": "" }, "require": { @@ -2062,7 +2062,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.31" + "source": "https://github.com/symfony/string/tree/v5.4.32" }, "funding": [ { @@ -2078,7 +2078,7 @@ "type": "tidelift" } ], - "time": "2023-11-09T08:19:44+00:00" + "time": "2023-11-26T13:43:46+00:00" } ], "packages-dev": [], diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e5098a166..5f0a2440a 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -325,17 +325,17 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.42", - "version_normalized": "1.10.42.0", + "version": "1.10.50", + "version_normalized": "1.10.50.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "fc2316508de5453140b5cb3d3f8683a33e92f26a" + "reference": "06a98513ac72c03e8366b5a0cb00750b487032e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/fc2316508de5453140b5cb3d3f8683a33e92f26a", - "reference": "fc2316508de5453140b5cb3d3f8683a33e92f26a", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/06a98513ac72c03e8366b5a0cb00750b487032e4", + "reference": "06a98513ac72c03e8366b5a0cb00750b487032e4", "shasum": "" }, "require": { @@ -344,7 +344,7 @@ "conflict": { "phpstan/phpstan-shim": "*" }, - "time": "2023-11-17T15:26:57+00:00", + "time": "2023-12-13T10:59:42+00:00", "bin": [ "phpstan", "phpstan.phar" @@ -547,17 +547,17 @@ }, { "name": "rector/rector", - "version": "0.18.10", - "version_normalized": "0.18.10.0", + "version": "0.18.13", + "version_normalized": "0.18.13.0", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "f36bc0a707fd8af301df5108740ce41f9db8eded" + "reference": "f8011a76d36aa4f839f60f3b4f97707d97176618" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/f36bc0a707fd8af301df5108740ce41f9db8eded", - "reference": "f36bc0a707fd8af301df5108740ce41f9db8eded", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/f8011a76d36aa4f839f60f3b4f97707d97176618", + "reference": "f8011a76d36aa4f839f60f3b4f97707d97176618", "shasum": "" }, "require": { @@ -570,7 +570,7 @@ "rector/rector-phpunit": "*", "rector/rector-symfony": "*" }, - "time": "2023-11-16T19:42:21+00:00", + "time": "2023-12-20T16:08:01+00:00", "bin": [ "bin/rector" ], @@ -594,7 +594,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/0.18.10" + "source": "https://github.com/rectorphp/rector/tree/0.18.13" }, "funding": [ { @@ -719,17 +719,17 @@ }, { "name": "symfony/console", - "version": "v5.4.31", - "version_normalized": "5.4.31.0", + "version": "v5.4.32", + "version_normalized": "5.4.32.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a" + "reference": "c70df1ffaf23a8d340bded3cfab1b86752ad6ed7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/11ac5f154e0e5c4c77af83ad11ead9165280b92a", - "reference": "11ac5f154e0e5c4c77af83ad11ead9165280b92a", + "url": "https://api.github.com/repos/symfony/console/zipball/c70df1ffaf23a8d340bded3cfab1b86752ad6ed7", + "reference": "c70df1ffaf23a8d340bded3cfab1b86752ad6ed7", "shasum": "" }, "require": { @@ -767,7 +767,7 @@ "symfony/lock": "", "symfony/process": "" }, - "time": "2023-10-31T07:58:33+00:00", + "time": "2023-11-18T18:23:04+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -801,7 +801,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.31" + "source": "https://github.com/symfony/console/tree/v5.4.32" }, "funding": [ { @@ -2074,17 +2074,17 @@ }, { "name": "symfony/string", - "version": "v5.4.31", - "version_normalized": "5.4.31.0", + "version": "v5.4.32", + "version_normalized": "5.4.32.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "2765096c03f39ddf54f6af532166e42aaa05b24b" + "reference": "91bf4453d65d8231688a04376c3a40efe0770f04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/2765096c03f39ddf54f6af532166e42aaa05b24b", - "reference": "2765096c03f39ddf54f6af532166e42aaa05b24b", + "url": "https://api.github.com/repos/symfony/string/zipball/91bf4453d65d8231688a04376c3a40efe0770f04", + "reference": "91bf4453d65d8231688a04376c3a40efe0770f04", "shasum": "" }, "require": { @@ -2104,7 +2104,7 @@ "symfony/translation-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0|^6.0" }, - "time": "2023-11-09T08:19:44+00:00", + "time": "2023-11-26T13:43:46+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -2143,7 +2143,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.31" + "source": "https://github.com/symfony/string/tree/v5.4.32" }, "funding": [ { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 25423fa76..1c7245013 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => 'b070db1590810464ec1b5db978b799b126b36177', + 'reference' => '8f20c7a4ebc059b741841054d4315cc3f0f4fac7', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-main', 'version' => 'dev-main', - 'reference' => 'b070db1590810464ec1b5db978b799b126b36177', + 'reference' => '8f20c7a4ebc059b741841054d4315cc3f0f4fac7', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -56,9 +56,9 @@ 'dev_requirement' => false, ), 'phpstan/phpstan' => array( - 'pretty_version' => '1.10.42', - 'version' => '1.10.42.0', - 'reference' => 'fc2316508de5453140b5cb3d3f8683a33e92f26a', + 'pretty_version' => '1.10.50', + 'version' => '1.10.50.0', + 'reference' => '06a98513ac72c03e8366b5a0cb00750b487032e4', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpstan', 'aliases' => array(), @@ -104,9 +104,9 @@ ), ), 'rector/rector' => array( - 'pretty_version' => '0.18.10', - 'version' => '0.18.10.0', - 'reference' => 'f36bc0a707fd8af301df5108740ce41f9db8eded', + 'pretty_version' => '0.18.13', + 'version' => '0.18.13.0', + 'reference' => 'f8011a76d36aa4f839f60f3b4f97707d97176618', 'type' => 'library', 'install_path' => __DIR__ . '/../rector/rector', 'aliases' => array(), @@ -131,9 +131,9 @@ 'dev_requirement' => false, ), 'symfony/console' => array( - 'pretty_version' => 'v5.4.31', - 'version' => '5.4.31.0', - 'reference' => '11ac5f154e0e5c4c77af83ad11ead9165280b92a', + 'pretty_version' => 'v5.4.32', + 'version' => '5.4.32.0', + 'reference' => 'c70df1ffaf23a8d340bded3cfab1b86752ad6ed7', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), @@ -290,9 +290,9 @@ 'dev_requirement' => false, ), 'symfony/string' => array( - 'pretty_version' => 'v5.4.31', - 'version' => '5.4.31.0', - 'reference' => '2765096c03f39ddf54f6af532166e42aaa05b24b', + 'pretty_version' => 'v5.4.32', + 'version' => '5.4.32.0', + 'reference' => '91bf4453d65d8231688a04376c3a40efe0770f04', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/string', 'aliases' => array(), diff --git a/vendor/phpstan/phpstan/phpstan.phar b/vendor/phpstan/phpstan/phpstan.phar index c20a72f4d0523e170af5c9e81179068781c92e69..46bb968b941e8381d010a636233016893b29c714 100755 GIT binary patch delta 365199 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

R)oqht|H%`7k7FYiqrEn46oB4ex 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

i#F7jbSM`)>rF4BKPqtXect?_1$j${ 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

_fUgBC&Q$(#k@?yw$1=I|Vh7rP9SAeuo*Ob@P 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 delta 421002 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 KFB9UE;{O|Qs`_RC diff --git a/vendor/phpstan/phpstan/phpstan.phar.asc b/vendor/phpstan/phpstan/phpstan.phar.asc index 8a20ee28b..0f363255f 100644 --- a/vendor/phpstan/phpstan/phpstan.phar.asc +++ b/vendor/phpstan/phpstan/phpstan.phar.asc @@ -1,16 +1,16 @@ -----BEGIN PGP SIGNATURE----- -iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmVXhiQACgkQUcZzBf/C -5cC2OA/+L/m+FL2H9UlerndJ6h+t/deEAXIeeUxIDzjyhY6+6Yuq1Qi6gvfEI/Uj -1PgyRzyyYjpvbdBJmU9ES3EiHOgkNfdA/IueggP+UNZqZ7J8V4qZHxi4RydAyYtM -PGwyt0uLbyQLS5uxaYbbIXOc3vyYK0dpimzJyKAltOvejBynHbb4JuJKbnlhv1de -kvChhqcDSbdWvzEgkauAI6c6VdLzXdm5xLQI82QpGpgsxjpPu9uaG8f+RUTffW/Y -y2b7pH4BNyMQFvgh5zNim8su8PliKg4U8KYa1hIggD0K/B9N8R1ib8N214omaSQr -kW1oKjFKHb8pi1znWcl2A6jEZlsmEkXM2Tm30AEWhW/AHTW0nREmGuqIHQTgfy1S -3rzpN61KjgR5jV2/sExorVaUM9gJayb0/oWmsv4K/aG0PpKBjtiakUpAmf7SkGJM -/dR9eL2VoyBYQugDaqDOeOoAqh2J00FVGsC+yH2hrH5xB49kiBJX6GSN4b9XmcVT -h1TvK74+VtbvhHngrBoG3wXKOVkqX0IL08EnJoYcLhrYpZmGfYiPHa3obzAJbwnm -TCjWUN/aN7nl0AGV/Hn2Vp+GcW+SKWtRNj9YpDVD2oXMzSAAr4e5yhh7jqYNjGEi -j+oga26zTYY2hxDjv7gfuFTFN0ARE3WNKYdeIzi1800uU/SPE0M= -=C2Kf +iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmV5joUACgkQUcZzBf/C +5cBntQ/+OM+FOq0P8rk+90fVkJBEopvHlzt+HLxLxOpp4TA9H5rYrYvcoRNzeV+H +d8GNHtEUwe3Li87OfGL67MVd9BPN1NNmVpqodgiHHwDBlE2/yPhcsczs4DA+plFT +ZZfDtA7FOfSHa1Y4iRQndW2jI9gZKPIaDah885KqUwj5CxB/ydc1rVMIjn+BkVEA +g29VrevyzPJrkuwih2rcZ/E0AkbSvkgkvaf74s1Iy0b9ff+IU0FvRxTHfVXy6ykd +WIc5nIDEqyZIMR2K6lqCHkzdVwOlBCY0P6khEOzZeBUhAustmOncFRMQNX9Hilcq +9QzF2eF1cXZU7RybVqmqfomM7vKLWgfghAKbNAwlkSKEC79RqKn37Dbr2ow1eNCx +Mqp42kSRyhl2357z81t+A6MFi1a0c1Z1eMsSwFf9pVUN2N68zorHsMzs6gl+V2+8 +2JHoZAj92HElCOY3FpmBFwWUhLHv4dMueO1foDA6w71EslIVNxbJhFrDx9T1PHrz +gEkkdEgxQl8HTg5mGrTutfp0/i37nX1YnZZZ4h6+3m1T4FU6WkjZ7RUICw2RsXeW +1DRVJ5ta2aDTolbyPCkQ5V8ZyHOqnIux7vVlOExaYHjzPurUdtZSMXsqsb5dY3NC ++BRlElHVVlxDfn05wQf/WZJM6ZWeuoLN/lwbw1oKCEp3iTA2NMw= +=I7Xy -----END PGP SIGNATURE----- diff --git a/vendor/rector/rector/bin/add-phpstan-self-replace.php b/vendor/rector/rector/bin/add-phpstan-self-replace.php index 62e651381..833ea2214 100644 --- a/vendor/rector/rector/bin/add-phpstan-self-replace.php +++ b/vendor/rector/rector/bin/add-phpstan-self-replace.php @@ -2,10 +2,10 @@ // this is part of downgrade build declare (strict_types=1); -namespace RectorPrefix202311; +namespace RectorPrefix202312; -use RectorPrefix202311\Nette\Utils\FileSystem; -use RectorPrefix202311\Nette\Utils\Json; +use RectorPrefix202312\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\Json; require __DIR__ . '/../vendor/autoload.php'; $composerJsonFileContents = FileSystem::read(__DIR__ . '/../composer.json'); $composerJson = Json::decode($composerJsonFileContents, Json::FORCE_ARRAY); diff --git a/vendor/rector/rector/bin/rector b/vendor/rector/rector/bin/rector index e15959dd3..0921ee618 100755 --- a/vendor/rector/rector/bin/rector +++ b/vendor/rector/rector/bin/rector @@ -1,5 +1,5 @@ #!/usr/bin/env php 'mb_strrpos', 'mbsubstr' => 'mb_substr', ]); - $rectorConfig->rules([CombinedAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ForeachToInArrayRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, GetClassToInstanceOfRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, SimplifyUselessVariableRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, SimplifyTautologyTernaryRector::class, SingleInArrayToCompareRector::class, SimplifyIfElseToTernaryRector::class, JoinStringConcatRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, BooleanNotIdenticalToNotIdenticalRector::class, StrvalToTypeCastRector::class, FloatvalToTypeCastRector::class, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, IntvalToTypeCastRector::class, BoolvalToTypeCastRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, InlineIfToExplicitIfRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, UnwrapSprintfOneArgumentRector::class, SwitchNegatedTernaryRector::class, SingularSwitchToIfRector::class, SimplifyIfNullableReturnRector::class, FuncGetArgsToVariadicParamRector::class, CallUserFuncToMethodCallRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, CountArrayToEmptyArrayComparisonRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, SwitchTrueToIfRector::class, CleanupUnneededNullsafeOperatorRector::class, DisallowedEmptyRuleFixerRector::class, ConvertStaticPrivateConstantToSelfRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, CompleteMissingIfElseBracketRector::class]); + $rectorConfig->rules([CombinedAssignRector::class, SimplifyEmptyArrayCheckRector::class, ReplaceMultipleBooleanNotRector::class, ForeachToInArrayRector::class, SimplifyForeachToCoalescingRector::class, SimplifyFuncGetArgsCountRector::class, SimplifyInArrayValuesRector::class, SimplifyStrposLowerRector::class, GetClassToInstanceOfRector::class, SimplifyArraySearchRector::class, SimplifyConditionsRector::class, SimplifyIfNotNullReturnRector::class, SimplifyIfReturnBoolRector::class, SimplifyUselessVariableRector::class, UnnecessaryTernaryExpressionRector::class, RemoveExtraParametersRector::class, SimplifyDeMorganBinaryRector::class, SimplifyTautologyTernaryRector::class, SingleInArrayToCompareRector::class, SimplifyIfElseToTernaryRector::class, JoinStringConcatRector::class, ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class, ExplicitBoolCompareRector::class, CombineIfRector::class, UseIdenticalOverEqualWithSameTypeRector::class, SimplifyBoolIdenticalTrueRector::class, SimplifyRegexPatternRector::class, BooleanNotIdenticalToNotIdenticalRector::class, StrvalToTypeCastRector::class, FloatvalToTypeCastRector::class, CallableThisArrayToAnonymousFunctionRector::class, AndAssignsToSeparateLinesRector::class, CompactToVariablesRector::class, CompleteDynamicPropertiesRector::class, IsAWithStringWithThirdArgumentRector::class, StrlenZeroToIdenticalEmptyStringRector::class, ThrowWithPreviousExceptionRector::class, RemoveSoleValueSprintfRector::class, ShortenElseIfRector::class, ArrayMergeOfNonArraysToSimpleArrayRector::class, IntvalToTypeCastRector::class, BoolvalToTypeCastRector::class, ArrayKeyExistsTernaryThenValueToCoalescingRector::class, AbsolutizeRequireAndIncludePathRector::class, ChangeArrayPushToArrayAssignRector::class, ForRepeatedCountToOwnVariableRector::class, ForeachItemsAssignToEmptyArrayToAssignRector::class, InlineIfToExplicitIfRector::class, UnusedForeachValueToArrayKeysRector::class, CommonNotEqualRector::class, SetTypeToCastRector::class, LogicalToBooleanRector::class, VarToPublicPropertyRector::class, IssetOnPropertyObjectToPropertyExistsRector::class, NewStaticToNewSelfRector::class, UnwrapSprintfOneArgumentRector::class, SwitchNegatedTernaryRector::class, SingularSwitchToIfRector::class, SimplifyIfNullableReturnRector::class, FuncGetArgsToVariadicParamRector::class, CallUserFuncToMethodCallRector::class, CallUserFuncWithArrowFunctionToInlineRector::class, CountArrayToEmptyArrayComparisonRector::class, FlipTypeControlToUseExclusiveTypeRector::class, InlineArrayReturnAssignRector::class, InlineIsAInstanceOfRector::class, TernaryFalseExpressionToIfRector::class, InlineConstructorDefaultToPropertyRector::class, TernaryEmptyArrayArrayDimFetchToCoalesceRector::class, OptionalParametersAfterRequiredRector::class, SimplifyEmptyCheckOnEmptyArrayRector::class, SwitchTrueToIfRector::class, CleanupUnneededNullsafeOperatorRector::class, DisallowedEmptyRuleFixerRector::class, ConvertStaticPrivateConstantToSelfRector::class, LocallyCalledStaticMethodToNonStaticRector::class, NumberCompareToMaxFuncCallRector::class, CompleteMissingIfElseBracketRector::class, RemoveUselessIsObjectCheckRector::class]); }; diff --git a/vendor/rector/rector/config/set/coding-style.php b/vendor/rector/rector/config/set/coding-style.php index 0623bea33..2cba7e463 100644 --- a/vendor/rector/rector/config/set/coding-style.php +++ b/vendor/rector/rector/config/set/coding-style.php @@ -1,12 +1,11 @@ ruleWithConfiguration(FuncCallToConstFetchRector::class, ['php_sapi_name' => 'PHP_SAPI', 'pi' => 'M_PI']); - $rectorConfig->rules([SeparateMultiUseImportsRector::class, PostIncDecToPreIncDecRector::class, NewlineAfterStatementRector::class, RemoveFinalFromConstRector::class, NullableCompareToNullRector::class, ConsistentImplodeRector::class, TernaryConditionVariableAssignmentRector::class, SymplifyQuoteEscapeRector::class, StringClassNameToClassConstantRector::class, CatchExceptionNameMatchingTypeRector::class, UseIncrementAssignRector::class, SplitDoubleAssignRector::class, EncapsedStringsToSprintfRector::class, WrapEncapsedVariableInCurlyBracesRector::class, NewlineBeforeNewAssignSetRector::class, AddArrayDefaultToArrayPropertyRector::class, MakeInheritedMethodVisibilitySameAsParentRector::class, CallUserFuncArrayToVariadicRector::class, VersionCompareFuncCallToConstantRector::class, StaticArrowFunctionRector::class, StaticClosureRector::class, CountArrayToEmptyArrayComparisonRector::class, CallUserFuncToMethodCallRector::class, FuncGetArgsToVariadicParamRector::class, StrictArraySearchRector::class, UseClassKeywordForClassNameResolutionRector::class, SplitGroupedPropertiesRector::class, SplitGroupedClassConstantsRector::class, ExplicitPublicClassMethodRector::class, ArraySpreadInsteadOfArrayMergeRector::class]); + $rectorConfig->rules([SeparateMultiUseImportsRector::class, PostIncDecToPreIncDecRector::class, NewlineAfterStatementRector::class, RemoveFinalFromConstRector::class, NullableCompareToNullRector::class, ConsistentImplodeRector::class, TernaryConditionVariableAssignmentRector::class, SymplifyQuoteEscapeRector::class, StringClassNameToClassConstantRector::class, CatchExceptionNameMatchingTypeRector::class, UseIncrementAssignRector::class, SplitDoubleAssignRector::class, EncapsedStringsToSprintfRector::class, WrapEncapsedVariableInCurlyBracesRector::class, NewlineBeforeNewAssignSetRector::class, MakeInheritedMethodVisibilitySameAsParentRector::class, CallUserFuncArrayToVariadicRector::class, VersionCompareFuncCallToConstantRector::class, StaticArrowFunctionRector::class, StaticClosureRector::class, CountArrayToEmptyArrayComparisonRector::class, CallUserFuncToMethodCallRector::class, FuncGetArgsToVariadicParamRector::class, StrictArraySearchRector::class, UseClassKeywordForClassNameResolutionRector::class, SplitGroupedPropertiesRector::class, SplitGroupedClassConstantsRector::class, ExplicitPublicClassMethodRector::class, ArraySpreadInsteadOfArrayMergeRector::class]); }; diff --git a/vendor/rector/rector/config/set/dead-code.php b/vendor/rector/rector/config/set/dead-code.php index dc1d757c2..47e242622 100644 --- a/vendor/rector/rector/config/set/dead-code.php +++ b/vendor/rector/rector/config/set/dead-code.php @@ -1,7 +1,7 @@ rule(IsCountableRector::class); - $rectorConfig->rule(ArrayKeyFirstLastRector::class); - $rectorConfig->rule(SensitiveDefineRector::class); - $rectorConfig->rule(SensitiveConstantNameRector::class); - $rectorConfig->rule(SensitiveHereNowDocRector::class); $rectorConfig->ruleWithConfiguration(RenameFunctionRector::class, [ # https://wiki.php.net/rfc/deprecations_php_7_3 'image2wbmp' => 'imagewbmp', @@ -38,9 +32,5 @@ 'mbereg_search_getregs' => 'mb_ereg_search_getregs', 'mbereg_search_getpos' => 'mb_ereg_search_getpos', ]); - $rectorConfig->rule(StringifyStrNeedlesRector::class); - $rectorConfig->rule(JsonThrowOnErrorRector::class); - $rectorConfig->rule(RegexDashEscapeRector::class); - $rectorConfig->rule(ContinueToBreakInSwitchRector::class); - $rectorConfig->rule(SetCookieRector::class); + $rectorConfig->rules([StringifyStrNeedlesRector::class, RegexDashEscapeRector::class, ContinueToBreakInSwitchRector::class, SetCookieRector::class, IsCountableRector::class, ArrayKeyFirstLastRector::class, SensitiveDefineRector::class, SensitiveConstantNameRector::class, SensitiveHereNowDocRector::class]); }; diff --git a/vendor/rector/rector/config/set/php74.php b/vendor/rector/rector/config/set/php74.php index 806789fe7..beb233bbe 100644 --- a/vendor/rector/rector/config/set/php74.php +++ b/vendor/rector/rector/config/set/php74.php @@ -1,7 +1,7 @@ ruleWithConfiguration(RenameFunctionRector::class, [ #the_real_type @@ -27,5 +26,5 @@ # https://wiki.php.net/rfc/deprecations_php_7_4 'apache_request_headers' => 'getallheaders', ]); - $rectorConfig->rules([ArrayKeyExistsOnPropertyRector::class, FilterVarToAddSlashesRector::class, ExportToReflectionFunctionRector::class, MbStrrposEncodingArgumentPositionRector::class, RealToFloatTypeCastRector::class, NullCoalescingOperatorRector::class, ClosureToArrowFunctionRector::class, AddLiteralSeparatorToNumberRector::class, RestoreDefaultNullToNullableTypePropertyRector::class, CurlyToSquareBracketArrayStringRector::class, MoneyFormatToNumberFormatRector::class, ParenthesizeNestedTernaryRector::class, TypedPropertyFromAssignsRector::class]); + $rectorConfig->rules([ArrayKeyExistsOnPropertyRector::class, FilterVarToAddSlashesRector::class, ExportToReflectionFunctionRector::class, MbStrrposEncodingArgumentPositionRector::class, RealToFloatTypeCastRector::class, NullCoalescingOperatorRector::class, ClosureToArrowFunctionRector::class, AddLiteralSeparatorToNumberRector::class, RestoreDefaultNullToNullableTypePropertyRector::class, CurlyToSquareBracketArrayStringRector::class, MoneyFormatToNumberFormatRector::class, ParenthesizeNestedTernaryRector::class]); }; diff --git a/vendor/rector/rector/config/set/php80.php b/vendor/rector/rector/config/set/php80.php index d1ca514a8..df4786614 100644 --- a/vendor/rector/rector/config/set/php80.php +++ b/vendor/rector/rector/config/set/php80.php @@ -1,7 +1,7 @@ rules([AddOverrideAttributeToOverriddenMethodsRector::class]); + $rectorConfig->rules([AddOverrideAttributeToOverriddenMethodsRector::class, AddTypeToConstRector::class]); }; diff --git a/vendor/rector/rector/config/set/privatization.php b/vendor/rector/rector/config/set/privatization.php index 1a815859d..93dd77623 100644 --- a/vendor/rector/rector/config/set/privatization.php +++ b/vendor/rector/rector/config/set/privatization.php @@ -1,7 +1,7 @@ rules([AddArrowFunctionReturnTypeRector::class, ParamTypeByMethodCallTypeRector::class, TypedPropertyFromAssignsRector::class, AddReturnTypeDeclarationBasedOnParentClassMethodRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, ParamTypeFromStrictTypedPropertyRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromStrictFluentReturnRector::class, ReturnTypeFromReturnNewRector::class, TypedPropertyFromStrictGetterMethodReturnTypeRector::class, AddMethodCallBasedStrictParamTypeRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, ReturnTypeFromStrictParamRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class, AddParamTypeSplFixedArrayRector::class, AddParamTypeBasedOnPHPUnitDataProviderRector::class, AddParamTypeFromPropertyTypeRector::class, AddReturnTypeDeclarationFromYieldsRector::class, ReturnTypeFromReturnDirectArrayRector::class, ReturnTypeFromStrictConstantReturnRector::class, ReturnTypeFromStrictTypedCallRector::class, ReturnNeverTypeRector::class, EmptyOnNullableObjectToInstanceOfRector::class, PropertyTypeFromStrictSetterGetterRector::class, ReturnTypeFromStrictTernaryRector::class, BoolReturnTypeFromStrictScalarReturnsRector::class, NumericReturnTypeFromStrictScalarReturnsRector::class, StrictArrayParamDimFetchRector::class, ReturnUnionTypeRector::class, StrictStringParamConcatRector::class]); + $rectorConfig->rules([AddArrowFunctionReturnTypeRector::class, ParamTypeByMethodCallTypeRector::class, TypedPropertyFromAssignsRector::class, AddReturnTypeDeclarationBasedOnParentClassMethodRector::class, ReturnTypeFromStrictTypedPropertyRector::class, TypedPropertyFromStrictConstructorRector::class, AddVoidReturnTypeWhereNoReturnRector::class, ReturnTypeFromStrictFluentReturnRector::class, ReturnTypeFromReturnNewRector::class, AddMethodCallBasedStrictParamTypeRector::class, ReturnTypeFromStrictBoolReturnExprRector::class, ReturnTypeFromStrictNativeCallRector::class, ReturnTypeFromStrictNewArrayRector::class, ReturnTypeFromStrictScalarReturnExprRector::class, ReturnTypeFromStrictParamRector::class, TypedPropertyFromStrictSetUpRector::class, ParamTypeByParentCallTypeRector::class, AddParamTypeSplFixedArrayRector::class, AddParamTypeBasedOnPHPUnitDataProviderRector::class, AddParamTypeFromPropertyTypeRector::class, AddReturnTypeDeclarationFromYieldsRector::class, ReturnTypeFromReturnDirectArrayRector::class, ReturnTypeFromStrictConstantReturnRector::class, ReturnTypeFromStrictTypedCallRector::class, ReturnNeverTypeRector::class, EmptyOnNullableObjectToInstanceOfRector::class, PropertyTypeFromStrictSetterGetterRector::class, ReturnTypeFromStrictTernaryRector::class, BoolReturnTypeFromStrictScalarReturnsRector::class, NumericReturnTypeFromStrictScalarReturnsRector::class, StrictArrayParamDimFetchRector::class, ReturnUnionTypeRector::class, StrictStringParamConcatRector::class, MergeDateTimePropertyTypeDeclarationRector::class]); }; diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDoc/ArrayItemNode.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDoc/ArrayItemNode.php index b89dbb638..4c5a87d95 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDoc/ArrayItemNode.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDoc/ArrayItemNode.php @@ -29,7 +29,7 @@ public function __construct($value, $key = null) public function __toString() : string { $value = ''; - if ($this->key !== null) { + if ($this->key !== null && !\is_int($this->key)) { $value .= $this->key . '='; } if (\is_array($this->value)) { diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php index 19a076f9f..56f3e0471 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocClassRenamer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\PhpDocManipulator; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode; diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocNodeMapper.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocNodeMapper.php index c5396a7b2..7fdd81a21 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocNodeMapper.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocNodeMapper.php @@ -10,7 +10,7 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser; use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\CloningPhpDocNodeVisitor; use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\ParentConnectingPhpDocNodeVisitor; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\BetterPhpDocParser\PhpDocNodeMapperTest */ diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php index a981ce92d..c1bd5e029 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/BetterPhpDocParser.php @@ -44,9 +44,8 @@ final class BetterPhpDocParser extends PhpDocParser /** * @param PhpDocNodeDecoratorInterface[] $phpDocNodeDecorators */ - public function __construct(TypeParser $typeParser, ConstExprParser $constExprParser, TokenIteratorFactory $tokenIteratorFactory, array $phpDocNodeDecorators, PrivatesAccessor $privatesAccessor = null) + public function __construct(TypeParser $typeParser, ConstExprParser $constExprParser, TokenIteratorFactory $tokenIteratorFactory, array $phpDocNodeDecorators, PrivatesAccessor $privatesAccessor) { - $privatesAccessor = $privatesAccessor ?? new PrivatesAccessor(); $this->tokenIteratorFactory = $tokenIteratorFactory; $this->phpDocNodeDecorators = $phpDocNodeDecorators; $this->privatesAccessor = $privatesAccessor; diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php index 86f415d86..2d552581e 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/DoctrineAnnotationDecorator.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\PhpDocParser; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode; use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocChildNode; @@ -21,6 +21,7 @@ use Rector\BetterPhpDocParser\ValueObject\PhpDocAttributeKey; use Rector\BetterPhpDocParser\ValueObject\StartAndEnd; use Rector\Core\Util\StringUtils; +use RectorPrefix202312\Webmozart\Assert\Assert; final class DoctrineAnnotationDecorator implements PhpDocNodeDecoratorInterface { /** @@ -49,10 +50,10 @@ final class DoctrineAnnotationDecorator implements PhpDocNodeDecoratorInterface */ private const ALLOWED_SHORT_ANNOTATIONS = ['Target']; /** - * @see https://regex101.com/r/95kIw4/1 + * @see https://regex101.com/r/95kIw4/2 * @var string */ - private const LONG_ANNOTATION_REGEX = '#@\\\\(?.*?)(?\\(.*?\\))#'; + private const LONG_ANNOTATION_REGEX = '#@\\\\(?.*?)(?\\(.*?\\)|,)#'; /** * @see https://regex101.com/r/xWaLOz/1 * @var string @@ -138,22 +139,35 @@ private function mergeNestedDoctrineAnnotations(PhpDocNode $phpDocNode) : void unset($phpDocNode->children[$key]); } } + private function processTextSpacelessInTextNode(PhpDocNode $phpDocNode, PhpDocTextNode $phpDocTextNode, Node $currentPhpNode, int $key) : void + { + $spacelessPhpDocTagNodes = $this->resolveFqnAnnotationSpacelessPhpDocTagNode($phpDocTextNode, $currentPhpNode); + if ($spacelessPhpDocTagNodes === []) { + return; + } + $texts = \explode("\n@\\", $phpDocTextNode->text); + $otherText = $texts[0]; + if (\strncmp($otherText, '@\\', \strlen('@\\')) !== 0 && \trim($otherText) !== '') { + $phpDocNode->children[$key] = new PhpDocTextNode($otherText); + \array_splice($phpDocNode->children, $key + 1, 0, $spacelessPhpDocTagNodes); + } else { + unset($phpDocNode->children[$key]); + \array_splice($phpDocNode->children, $key, 0, $spacelessPhpDocTagNodes); + } + } private function transformGenericTagValueNodesToDoctrineAnnotationTagValueNodes(PhpDocNode $phpDocNode, Node $currentPhpNode) : void { foreach ($phpDocNode->children as $key => $phpDocChildNode) { // the @\FQN use case if ($phpDocChildNode instanceof PhpDocTextNode) { - $spacelessPhpDocTagNode = $this->resolveFqnAnnotationSpacelessPhpDocTagNode($phpDocChildNode, $currentPhpNode); - if (!$spacelessPhpDocTagNode instanceof SpacelessPhpDocTagNode) { - continue; - } - $phpDocNode->children[$key] = $spacelessPhpDocTagNode; + $this->processTextSpacelessInTextNode($phpDocNode, $phpDocChildNode, $currentPhpNode, $key); continue; } if (!$phpDocChildNode instanceof PhpDocTagNode) { continue; } if (!$phpDocChildNode->value instanceof GenericTagValueNode) { + $this->processDescriptionAsSpacelessPhpDoctagNode($phpDocNode, $phpDocChildNode, $currentPhpNode, $key); continue; } // known doc tag to annotation class @@ -162,10 +176,66 @@ private function transformGenericTagValueNodesToDoctrineAnnotationTagValueNodes( if (\strpos($fullyQualifiedAnnotationClass, '\\') === \false && !\in_array($fullyQualifiedAnnotationClass, self::ALLOWED_SHORT_ANNOTATIONS, \true)) { continue; } - $spacelessPhpDocTagNode = $this->createSpacelessPhpDocTagNode($phpDocChildNode->name, $phpDocChildNode->value, $fullyQualifiedAnnotationClass, $currentPhpNode); - $this->attributeMirrorer->mirror($phpDocChildNode, $spacelessPhpDocTagNode); + while (isset($phpDocNode->children[$key]) && $phpDocNode->children[$key] !== $phpDocChildNode) { + ++$key; + } + $phpDocTextNode = new PhpDocTextNode($phpDocChildNode->value->value); + $startAndEnd = $phpDocChildNode->value->getAttribute(PhpDocAttributeKey::START_AND_END); + if (!$startAndEnd instanceof StartAndEnd) { + $spacelessPhpDocTagNode = $this->createSpacelessPhpDocTagNode($phpDocChildNode->name, $phpDocChildNode->value, $fullyQualifiedAnnotationClass, $currentPhpNode); + $this->attributeMirrorer->mirror($phpDocChildNode, $spacelessPhpDocTagNode); + $phpDocNode->children[$key] = $spacelessPhpDocTagNode; + continue; + } + $phpDocTextNode->setAttribute(PhpDocAttributeKey::START_AND_END, $startAndEnd); + $spacelessPhpDocTagNodes = $this->resolveFqnAnnotationSpacelessPhpDocTagNode($phpDocTextNode, $currentPhpNode); + if ($spacelessPhpDocTagNodes === []) { + $spacelessPhpDocTagNode = $this->createSpacelessPhpDocTagNode($phpDocChildNode->name, $phpDocChildNode->value, $fullyQualifiedAnnotationClass, $currentPhpNode); + $this->attributeMirrorer->mirror($phpDocChildNode, $spacelessPhpDocTagNode); + $phpDocNode->children[$key] = $spacelessPhpDocTagNode; + continue; + } + Assert::isAOf($phpDocNode->children[$key], PhpDocTagNode::class); + $texts = \explode("\n@\\", $phpDocChildNode->value->value); + $phpDocNode->children[$key]->value = new GenericTagValueNode($texts[0]); + $phpDocNode->children[$key]->value->setAttribute(PhpDocAttributeKey::START_AND_END, $startAndEnd); + $spacelessPhpDocTagNode = $this->createSpacelessPhpDocTagNode($phpDocNode->children[$key]->name, $phpDocNode->children[$key]->value, $fullyQualifiedAnnotationClass, $currentPhpNode); + $this->attributeMirrorer->mirror($phpDocNode->children[$key], $spacelessPhpDocTagNode); $phpDocNode->children[$key] = $spacelessPhpDocTagNode; + // require to reprint the generic + $phpDocNode->children[$key]->value->setAttribute(PhpDocAttributeKey::ORIG_NODE, null); + \array_splice($phpDocNode->children, $key + 1, 0, $spacelessPhpDocTagNodes); + } + } + private function processDescriptionAsSpacelessPhpDoctagNode(PhpDocNode $phpDocNode, PhpDocTagNode $phpDocTagNode, Node $currentPhpNode, int $key) : void + { + if (!\property_exists($phpDocTagNode->value, 'description')) { + return; + } + $description = (string) $phpDocTagNode->value->description; + if (\strpos($description, "\n") === \false) { + return; + } + $phpDocTextNode = new PhpDocTextNode($description); + $startAndEnd = $phpDocTagNode->value->getAttribute(PhpDocAttributeKey::START_AND_END); + if (!$startAndEnd instanceof StartAndEnd) { + return; } + $phpDocTextNode->setAttribute(PhpDocAttributeKey::START_AND_END, $startAndEnd); + $spacelessPhpDocTagNodes = $this->resolveFqnAnnotationSpacelessPhpDocTagNode($phpDocTextNode, $currentPhpNode); + if ($spacelessPhpDocTagNodes === []) { + return; + } + while (isset($phpDocNode->children[$key]) && $phpDocNode->children[$key] !== $phpDocTagNode) { + ++$key; + } + unset($phpDocNode->children[$key]); + $classNode = new PhpDocTagNode($phpDocTagNode->name, $phpDocTagNode->value); + $description = Strings::replace($description, self::LONG_ANNOTATION_REGEX, ''); + $description = \substr($description, 0, -7); + $phpDocTagNode->value->description = $description; + $phpDocNode->children[$key] = $classNode; + \array_splice($phpDocNode->children, $key + 1, 0, $spacelessPhpDocTagNodes); } /** * This is closed block, e.g. {( ... )}, @@ -216,16 +286,28 @@ private function combineStartAndEnd(\PHPStan\PhpDocParser\Ast\Node $startPhpDocC $nextStartAndEnd = $endPhpDocChildNode->getAttribute(PhpDocAttributeKey::START_AND_END); return new StartAndEnd($currentStartAndEnd->getStart(), $nextStartAndEnd->getEnd()); } - private function resolveFqnAnnotationSpacelessPhpDocTagNode(PhpDocTextNode $phpDocTextNode, Node $currentPhpNode) : ?SpacelessPhpDocTagNode + /** + * @return SpacelessPhpDocTagNode[] + */ + private function resolveFqnAnnotationSpacelessPhpDocTagNode(PhpDocTextNode $phpDocTextNode, Node $currentPhpNode) : array { - $match = Strings::match($phpDocTextNode->text, self::LONG_ANNOTATION_REGEX); - $fullyQualifiedAnnotationClass = $match['class_name'] ?? null; - if ($fullyQualifiedAnnotationClass === null) { - return null; + $matches = Strings::matchAll($phpDocTextNode->text, self::LONG_ANNOTATION_REGEX); + $spacelessPhpDocTagNodes = []; + foreach ($matches as $match) { + $fullyQualifiedAnnotationClass = $match['class_name'] ?? null; + if ($fullyQualifiedAnnotationClass === null) { + continue; + } + $nestedAnnotationOpen = \explode('(', (string) $fullyQualifiedAnnotationClass); + $fullyQualifiedAnnotationClass = $nestedAnnotationOpen[0]; + $annotationContent = $match['annotation_content'] ?? null; + $tagName = '@\\' . $fullyQualifiedAnnotationClass; + $formerStartEnd = $phpDocTextNode->getAttribute(PhpDocAttributeKey::START_AND_END); + if (isset($nestedAnnotationOpen[1])) { + $annotationContent = '("' . \trim($nestedAnnotationOpen[1], '"\'') . '")'; + } + $spacelessPhpDocTagNodes[] = $this->createDoctrineSpacelessPhpDocTagNode($annotationContent, $tagName, $fullyQualifiedAnnotationClass, $formerStartEnd, $currentPhpNode); } - $annotationContent = $match['annotation_content'] ?? null; - $tagName = '@\\' . $fullyQualifiedAnnotationClass; - $formerStartEnd = $phpDocTextNode->getAttribute(PhpDocAttributeKey::START_AND_END); - return $this->createDoctrineSpacelessPhpDocTagNode($annotationContent, $tagName, $fullyQualifiedAnnotationClass, $formerStartEnd, $currentPhpNode); + return $spacelessPhpDocTagNodes; } } diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php index 5b203cd2f..eb0e14cca 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/PhpDocParser/StaticDoctrineAnnotationParser/PlainValueParser.php @@ -61,10 +61,7 @@ public function parseValue(BetterTokenIterator $tokenIterator, Node $currentPhpN if ($constExprNode instanceof ConstExprNode) { return $constExprNode; } - while ($tokenIterator->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON) || $tokenIterator->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { - $currentTokenValue .= $tokenIterator->currentTokenValue(); - $tokenIterator->next(); - } + $currentTokenValue = $this->parseStringValue($tokenIterator, $currentTokenValue); // nested entity!, supported in attribute since PHP 8.1 if ($tokenIterator->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { return $this->parseNestedDoctrineAnnotationTagValueNode($currentTokenValue, $tokenIterator, $currentPhpNode); @@ -82,6 +79,38 @@ public function parseValue(BetterTokenIterator $tokenIterator, Node $currentPhpN } return $currentTokenValue; } + private function parseStringValue(BetterTokenIterator $tokenIterator, string $currentTokenValue) : string + { + if (\strncmp($currentTokenValue, '"', \strlen('"')) === 0 && \substr_compare($currentTokenValue, '"', -\strlen('"')) !== 0) { + $currentTokenValue = $this->parseMultilineOrWhiteSpacedString($tokenIterator, $currentTokenValue); + } else { + while ($tokenIterator->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON) || $tokenIterator->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { + $currentTokenValue .= $tokenIterator->currentTokenValue(); + $tokenIterator->next(); + } + } + return $currentTokenValue; + } + private function parseMultilineOrWhiteSpacedString(BetterTokenIterator $tokenIterator, string $currentTokenValue) : string + { + while (\strncmp($currentTokenValue, '"', \strlen('"')) === 0 && \substr_compare($currentTokenValue, '"', -\strlen('"')) !== 0) { + if (!$tokenIterator->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + $currentTokenValue .= ' '; + } + if (\strncmp($currentTokenValue, '"', \strlen('"')) === 0 && \strpos($tokenIterator->currentTokenValue(), '"') !== \false && $currentTokenValue !== $tokenIterator->currentTokenValue()) { + //starts with '"' and current token contains '"', should be the end + $currentTokenValue .= \substr($tokenIterator->currentTokenValue(), 0, (int) \strpos($tokenIterator->currentTokenValue(), '"') + 1); + $tokenIterator->next(); + break; + } + $currentTokenValue .= $tokenIterator->currentTokenValue(); + $tokenIterator->next(); + } + if (\strncmp($currentTokenValue, '"', \strlen('"')) === 0 && \substr_compare($currentTokenValue, '"', -\strlen('"')) === 0) { + return \trim(\str_replace('"', '', $currentTokenValue)); + } + return $currentTokenValue; + } private function parseNestedDoctrineAnnotationTagValueNode(string $currentTokenValue, BetterTokenIterator $tokenIterator, Node $currentPhpNode) : DoctrineAnnotationTagValueNode { // @todo diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/Printer/DocBlockInliner.php b/vendor/rector/rector/packages/BetterPhpDocParser/Printer/DocBlockInliner.php index 054bd1891..f3dc493fc 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/Printer/DocBlockInliner.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/Printer/DocBlockInliner.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\Printer; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; final class DocBlockInliner { /** diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php b/vendor/rector/rector/packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php index 92ee40212..6821178fb 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/Printer/PhpDocInfoPrinter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\BetterPhpDocParser\Printer; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Node\Stmt\InlineHTML; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; @@ -221,7 +221,7 @@ private function printEnd(string $output) : string $lastTokenPosition = $this->currentTokenPosition; } if ($lastTokenPosition === 0) { - $lastTokenPosition = 1; + return $output . "\n */"; } return $this->addTokensFromTo($output, $lastTokenPosition, $this->tokenCount, \true); } diff --git a/vendor/rector/rector/packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php b/vendor/rector/rector/packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php index 7c20ee7f9..c521f2133 100644 --- a/vendor/rector/rector/packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php +++ b/vendor/rector/rector/packages/BetterPhpDocParser/ValueObject/PhpDoc/DoctrineAnnotation/CurlyListNode.php @@ -5,7 +5,7 @@ use Rector\BetterPhpDocParser\PhpDoc\ArrayItemNode; use Stringable; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; final class CurlyListNode extends \Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\AbstractValuesAwareNode { /** diff --git a/vendor/rector/rector/packages/Caching/CacheFactory.php b/vendor/rector/rector/packages/Caching/CacheFactory.php index dae04bdab..6beff9390 100644 --- a/vendor/rector/rector/packages/Caching/CacheFactory.php +++ b/vendor/rector/rector/packages/Caching/CacheFactory.php @@ -7,7 +7,7 @@ use Rector\Caching\ValueObject\Storage\MemoryCacheStorage; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; -use RectorPrefix202311\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202312\Symfony\Component\Filesystem\Filesystem; final class CacheFactory { /** diff --git a/vendor/rector/rector/packages/Caching/ValueObject/Storage/FileCacheStorage.php b/vendor/rector/rector/packages/Caching/ValueObject/Storage/FileCacheStorage.php index 8cef77744..0bf0f25d2 100644 --- a/vendor/rector/rector/packages/Caching/ValueObject/Storage/FileCacheStorage.php +++ b/vendor/rector/rector/packages/Caching/ValueObject/Storage/FileCacheStorage.php @@ -4,8 +4,8 @@ namespace Rector\Caching\ValueObject\Storage; use FilesystemIterator; -use RectorPrefix202311\Nette\Utils\FileSystem; -use RectorPrefix202311\Nette\Utils\Random; +use RectorPrefix202312\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\Random; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Caching\ValueObject\CacheFilePaths; use Rector\Caching\ValueObject\CacheItem; @@ -26,7 +26,7 @@ final class FileCacheStorage implements CacheStorageInterface * @var \Symfony\Component\Filesystem\Filesystem */ private $filesystem; - public function __construct(string $directory, \RectorPrefix202311\Symfony\Component\Filesystem\Filesystem $filesystem) + public function __construct(string $directory, \RectorPrefix202312\Symfony\Component\Filesystem\Filesystem $filesystem) { $this->directory = $directory; $this->filesystem = $filesystem; diff --git a/vendor/rector/rector/packages/ChangesReporting/Annotation/AnnotationExtractor.php b/vendor/rector/rector/packages/ChangesReporting/Annotation/AnnotationExtractor.php index b8ced317a..4bb2ef806 100644 --- a/vendor/rector/rector/packages/ChangesReporting/Annotation/AnnotationExtractor.php +++ b/vendor/rector/rector/packages/ChangesReporting/Annotation/AnnotationExtractor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Annotation; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use Rector\Core\Contract\Rector\RectorInterface; use ReflectionClass; /** diff --git a/vendor/rector/rector/packages/ChangesReporting/Output/ConsoleOutputFormatter.php b/vendor/rector/rector/packages/ChangesReporting/Output/ConsoleOutputFormatter.php index 160a629b4..3bc040e48 100644 --- a/vendor/rector/rector/packages/ChangesReporting/Output/ConsoleOutputFormatter.php +++ b/vendor/rector/rector/packages/ChangesReporting/Output/ConsoleOutputFormatter.php @@ -3,14 +3,14 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use Rector\ChangesReporting\Annotation\RectorsChangelogResolver; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\Core\ValueObject\Configuration; use Rector\Core\ValueObject\Error\SystemError; use Rector\Core\ValueObject\ProcessResult; use Rector\Core\ValueObject\Reporting\FileDiff; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; final class ConsoleOutputFormatter implements OutputFormatterInterface { /** diff --git a/vendor/rector/rector/packages/ChangesReporting/Output/JsonOutputFormatter.php b/vendor/rector/rector/packages/ChangesReporting/Output/JsonOutputFormatter.php index f454d7660..054b3662d 100644 --- a/vendor/rector/rector/packages/ChangesReporting/Output/JsonOutputFormatter.php +++ b/vendor/rector/rector/packages/ChangesReporting/Output/JsonOutputFormatter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\ChangesReporting\Output; -use RectorPrefix202311\Nette\Utils\Json; +use RectorPrefix202312\Nette\Utils\Json; use Rector\ChangesReporting\Annotation\RectorsChangelogResolver; use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface; use Rector\Core\ValueObject\Configuration; diff --git a/vendor/rector/rector/packages/ChangesReporting/ValueObject/RectorWithLineChange.php b/vendor/rector/rector/packages/ChangesReporting/ValueObject/RectorWithLineChange.php index 2e88ddeb6..229251881 100644 --- a/vendor/rector/rector/packages/ChangesReporting/ValueObject/RectorWithLineChange.php +++ b/vendor/rector/rector/packages/ChangesReporting/ValueObject/RectorWithLineChange.php @@ -4,8 +4,8 @@ namespace Rector\ChangesReporting\ValueObject; use Rector\Core\Contract\Rector\RectorInterface; -use RectorPrefix202311\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202312\Webmozart\Assert\Assert; final class RectorWithLineChange implements SerializableInterface { /** @@ -48,7 +48,7 @@ public function getRectorClass() : string * @param array $json * @return $this */ - public static function decode(array $json) : \RectorPrefix202311\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202312\Symplify\EasyParallel\Contract\SerializableInterface { $rectorClass = $json[self::KEY_RECTOR_CLASS]; Assert::string($rectorClass); diff --git a/vendor/rector/rector/packages/Config/RectorConfig.php b/vendor/rector/rector/packages/Config/RectorConfig.php index 917bbd6fa..41d391459 100644 --- a/vendor/rector/rector/packages/Config/RectorConfig.php +++ b/vendor/rector/rector/packages/Config/RectorConfig.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Config; -use RectorPrefix202311\Illuminate\Container\Container; +use RectorPrefix202312\Illuminate\Container\Container; use PHPStan\Collectors\Collector; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; use Rector\Core\Configuration\Option; @@ -15,7 +15,7 @@ use Rector\Core\Exception\ShouldNotHappenException; use Rector\Core\ValueObject\PhpVersion; use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @api */ diff --git a/vendor/rector/rector/packages/FileSystemRector/Parser/FileInfoParser.php b/vendor/rector/rector/packages/FileSystemRector/Parser/FileInfoParser.php index 8f1ef3db8..7bcc98328 100644 --- a/vendor/rector/rector/packages/FileSystemRector/Parser/FileInfoParser.php +++ b/vendor/rector/rector/packages/FileSystemRector/Parser/FileInfoParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\FileSystemRector\Parser; -use RectorPrefix202311\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\FileSystem; use PhpParser\Node\Stmt; use Rector\Core\PhpParser\Parser\RectorParser; use Rector\Core\Provider\CurrentFileProvider; diff --git a/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php b/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php index 8cec03961..a43eb271c 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php @@ -15,7 +15,7 @@ use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * Factory so Symfony app can use services from PHPStan container * diff --git a/vendor/rector/rector/packages/NodeTypeResolver/Node/AttributeKey.php b/vendor/rector/rector/packages/NodeTypeResolver/Node/AttributeKey.php index 25a7dcd2d..f860af41a 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/Node/AttributeKey.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/Node/AttributeKey.php @@ -209,10 +209,6 @@ final class AttributeKey * @var string */ public const IS_ARRAY_IN_ATTRIBUTE = 'is_array_in_attribute'; - /** - * @var string - */ - public const IS_NAMESPACE_NAME = 'is_namespace_name'; /** * @var string */ @@ -240,7 +236,11 @@ final class AttributeKey /** * @var string */ - public const IS_PARAM_VAR = 'IS_PARAM_VAR'; + public const IS_PARAM_VAR = 'is_param_var'; + /** + * @var string + */ + public const IS_INCREMENT_OR_DECREMENT = 'is_increment_or_decrement'; /** * @var string */ diff --git a/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver.php b/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver.php index 654d9ef5c..10c8a2b61 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/NodeTypeResolver.php @@ -28,6 +28,7 @@ use PHPStan\Type\Constant\ConstantBooleanType; use PHPStan\Type\Constant\ConstantStringType; use PHPStan\Type\MixedType; +use PHPStan\Type\NeverType; use PHPStan\Type\NullType; use PHPStan\Type\ObjectType; use PHPStan\Type\ObjectWithoutClassType; @@ -381,6 +382,9 @@ private function isUnionTypeable(Type $first, Type $second) : bool private function isMatchingUnionType(Type $resolvedType, ObjectType $requiredObjectType) : bool { $type = TypeCombinator::removeNull($resolvedType); + if ($type instanceof NeverType) { + return \false; + } // for falsy nullables $type = TypeCombinator::remove($type, new ConstantBooleanType(\false)); if ($type instanceof ObjectWithoutClassType) { diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/ContextNodeVisitor.php b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/ContextNodeVisitor.php index 04c230e0a..12495b1ea 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/ContextNodeVisitor.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/ContextNodeVisitor.php @@ -9,6 +9,10 @@ use PhpParser\Node\Expr\Array_; use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\Closure; +use PhpParser\Node\Expr\PostDec; +use PhpParser\Node\Expr\PostInc; +use PhpParser\Node\Expr\PreDec; +use PhpParser\Node\Expr\PreInc; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; use PhpParser\Node\Expr\Variable; @@ -72,6 +76,9 @@ public function enterNode(Node $node) : ?Node $node->var->setAttribute(AttributeKey::IS_PARAM_VAR, \true); return null; } + if ($node instanceof PostDec || $node instanceof PostInc || $node instanceof PreDec || $node instanceof PreInc) { + $node->var->setAttribute(AttributeKey::IS_INCREMENT_OR_DECREMENT, \true); + } $this->processContextInClass($node); return null; } diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/NameNodeVisitor.php b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/NameNodeVisitor.php index cee1995e9..155f7f542 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/NameNodeVisitor.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/NodeVisitor/NameNodeVisitor.php @@ -9,7 +9,6 @@ use PhpParser\Node\Expr\New_; use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Name; -use PhpParser\Node\Stmt\Namespace_; use PhpParser\Node\Stmt\Use_; use PhpParser\Node\Stmt\UseUse; use PhpParser\NodeVisitorAbstract; @@ -19,10 +18,6 @@ final class NameNodeVisitor extends NodeVisitorAbstract implements ScopeResolver { public function enterNode(Node $node) : ?Node { - if ($node instanceof Namespace_ && $node->name instanceof Name) { - $node->name->setAttribute(AttributeKey::IS_NAMESPACE_NAME, \true); - return null; - } if ($node instanceof UseUse && ($node->type === Use_::TYPE_NORMAL || $node->type === Use_::TYPE_UNKNOWN)) { $node->name->setAttribute(AttributeKey::IS_USEUSE_NAME, \true); return null; diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php index 862928cb8..e0a6c6077 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Scope/PHPStanNodeScopeResolver.php @@ -60,7 +60,7 @@ use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\NodeTypeResolver\PHPStan\Scope\Contract\NodeVisitor\ScopeResolverNodeVisitorInterface; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @inspired by https://github.com/silverstripe/silverstripe-upgrader/blob/532182b23e854d02e0b27e68ebc394f436de0682/src/UpgradeRule/PHP/Visitor/PHPStanScopeVisitor.php * - https://github.com/silverstripe/silverstripe-upgrader/pull/57/commits/e5c7cfa166ad940d9d4ff69537d9f7608e992359#diff-5e0807bb3dc03d6a8d8b6ad049abd774 diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Type/TypeFactory.php b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Type/TypeFactory.php index 2c593fcb5..d58b7b649 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Type/TypeFactory.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PHPStan/Type/TypeFactory.php @@ -13,10 +13,12 @@ use PHPStan\Type\FloatType; use PHPStan\Type\IntegerType; use PHPStan\Type\MixedType; +use PHPStan\Type\ObjectType; use PHPStan\Type\StringType; use PHPStan\Type\Type; use PHPStan\Type\TypeUtils; use PHPStan\Type\UnionType; +use Rector\NodeTypeResolver\PHPStan\ObjectWithoutClassTypeWithParentTypes; use Rector\NodeTypeResolver\PHPStan\TypeHasher; final class TypeFactory { @@ -54,14 +56,30 @@ public function createMixedPassedOrUnionType(array $types, bool $keepConstantTyp */ public function uniquateTypes(array $types, bool $keepConstant = \false) : array { + $constantTypeHashes = []; $uniqueTypes = []; + $totalTypes = \count($types); foreach ($types as $type) { - if (!$keepConstant) { - $type = $this->removeValueFromConstantType($type); + if ($totalTypes > 1 && $type instanceof ObjectWithoutClassTypeWithParentTypes) { + $parents = $type->getParentTypes(); + $type = new ObjectType($parents[0]->getClassName()); + } + $removedConstantType = $this->removeValueFromConstantType($type); + $removedConstantTypeHash = $this->typeHasher->createTypeHash($removedConstantType); + if ($keepConstant && $type !== $removedConstantType) { + $typeHash = $this->typeHasher->createTypeHash($type); + $constantTypeHashes[$typeHash] = $removedConstantTypeHash; + } else { + $type = $removedConstantType; + $typeHash = $removedConstantTypeHash; } - $typeHash = $this->typeHasher->createTypeHash($type); $uniqueTypes[$typeHash] = $type; } + foreach ($constantTypeHashes as $constantTypeHash => $removedConstantTypeHash) { + if (\array_key_exists($removedConstantTypeHash, $uniqueTypes)) { + unset($uniqueTypes[$constantTypeHash]); + } + } // re-index return \array_values($uniqueTypes); } diff --git a/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php b/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php index 0a5817eda..d6f4bbcbc 100644 --- a/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php +++ b/vendor/rector/rector/packages/NodeTypeResolver/PhpDocNodeVisitor/NameImportingPhpDocNodeVisitor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\NodeTypeResolver\PhpDocNodeVisitor; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node as PhpParserNode; use PHPStan\PhpDocParser\Ast\Node; use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode; diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php index bfee8150c..bac883235 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/PHPStanStaticTypeMapper.php @@ -11,7 +11,7 @@ use Rector\Core\Exception\NotImplementedYetException; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; final class PHPStanStaticTypeMapper { /** diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php index 542fda882..27b8ad6a1 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ConditionalTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Reflection\ClassReflection; diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php index ac69c4d7d..9885fd9ed 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/ObjectTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PHPStanStaticTypeMapper\TypeMapper; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Name; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/StaticTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/StaticTypeMapper.php index 57006e61c..9ed961b3c 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/StaticTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/StaticTypeMapper.php @@ -12,6 +12,7 @@ use Rector\Core\Php\PhpVersionProvider; use Rector\Core\ValueObject\PhpVersionFeature; use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface; +use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\StaticTypeMapper\ValueObject\Type\SelfStaticType; use Rector\StaticTypeMapper\ValueObject\Type\SimpleStaticType; /** @@ -45,20 +46,19 @@ public function mapToPHPStanPhpDocTypeNode(Type $type) : TypeNode return $type->toPhpDocNode(); } /** - * @param StaticType $type + * @param SimpleStaticType|StaticType $type */ public function mapToPhpParserNode(Type $type, string $typeKind) : ?Node { - // special case, for autocomplete of return type - if ($type instanceof SimpleStaticType) { - return new Name(ObjectReference::STATIC); - } if ($type instanceof SelfStaticType) { return new Name(ObjectReference::SELF); } - if ($this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::STATIC_RETURN_TYPE)) { - return new Name(ObjectReference::STATIC); + if ($typeKind !== TypeKind::RETURN) { + return new Name(ObjectReference::SELF); + } + if (!$this->phpVersionProvider->isAtLeastPhpVersion(PhpVersionFeature::STATIC_RETURN_TYPE)) { + return new Name(ObjectReference::SELF); } - return new Name(ObjectReference::SELF); + return new Name(ObjectReference::STATIC); } } diff --git a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php index f3e00ebbb..c0e1b2b38 100644 --- a/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php +++ b/vendor/rector/rector/packages/PHPStanStaticTypeMapper/TypeMapper/UnionTypeMapper.php @@ -34,8 +34,8 @@ use Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper; use Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeAnalyzer; use Rector\PHPStanStaticTypeMapper\ValueObject\UnionTypeAnalysis; -use RectorPrefix202311\Webmozart\Assert\Assert; -use RectorPrefix202311\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202312\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\InvalidArgumentException; /** * @implements TypeMapperInterface */ diff --git a/vendor/rector/rector/packages/Parallel/Application/ParallelFileProcessor.php b/vendor/rector/rector/packages/Parallel/Application/ParallelFileProcessor.php index 83eb01094..d31cec5fd 100644 --- a/vendor/rector/rector/packages/Parallel/Application/ParallelFileProcessor.php +++ b/vendor/rector/rector/packages/Parallel/Application/ParallelFileProcessor.php @@ -3,13 +3,13 @@ declare (strict_types=1); namespace Rector\Parallel\Application; -use RectorPrefix202311\Clue\React\NDJson\Decoder; -use RectorPrefix202311\Clue\React\NDJson\Encoder; -use RectorPrefix202311\Nette\Utils\Random; +use RectorPrefix202312\Clue\React\NDJson\Decoder; +use RectorPrefix202312\Clue\React\NDJson\Encoder; +use RectorPrefix202312\Nette\Utils\Random; use PHPStan\Collectors\CollectedData; -use RectorPrefix202311\React\EventLoop\StreamSelectLoop; -use RectorPrefix202311\React\Socket\ConnectionInterface; -use RectorPrefix202311\React\Socket\TcpServer; +use RectorPrefix202312\React\EventLoop\StreamSelectLoop; +use RectorPrefix202312\React\Socket\ConnectionInterface; +use RectorPrefix202312\React\Socket\TcpServer; use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\Console\Command\ProcessCommand; @@ -19,15 +19,15 @@ use Rector\Core\ValueObject\Reporting\FileDiff; use Rector\Parallel\Command\WorkerCommandLineFactory; use Rector\Parallel\ValueObject\Bridge; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202311\Symplify\EasyParallel\Enum\Content; -use RectorPrefix202311\Symplify\EasyParallel\Enum\ReactCommand; -use RectorPrefix202311\Symplify\EasyParallel\Enum\ReactEvent; -use RectorPrefix202311\Symplify\EasyParallel\ValueObject\ParallelProcess; -use RectorPrefix202311\Symplify\EasyParallel\ValueObject\ProcessPool; -use RectorPrefix202311\Symplify\EasyParallel\ValueObject\Schedule; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202312\Symplify\EasyParallel\Enum\Content; +use RectorPrefix202312\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202312\Symplify\EasyParallel\Enum\ReactEvent; +use RectorPrefix202312\Symplify\EasyParallel\ValueObject\ParallelProcess; +use RectorPrefix202312\Symplify\EasyParallel\ValueObject\ProcessPool; +use RectorPrefix202312\Symplify\EasyParallel\ValueObject\Schedule; use Throwable; /** * Inspired from @see diff --git a/vendor/rector/rector/packages/Parallel/Command/WorkerCommandLineFactory.php b/vendor/rector/rector/packages/Parallel/Command/WorkerCommandLineFactory.php index b5719eecf..232124774 100644 --- a/vendor/rector/rector/packages/Parallel/Command/WorkerCommandLineFactory.php +++ b/vendor/rector/rector/packages/Parallel/Command/WorkerCommandLineFactory.php @@ -6,10 +6,10 @@ use Rector\ChangesReporting\Output\JsonOutputFormatter; use Rector\Core\Configuration\Option; use Rector\Core\FileSystem\FilePathHelper; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; -use RectorPrefix202311\Symplify\EasyParallel\Reflection\CommandFromReflectionFactory; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; +use RectorPrefix202312\Symplify\EasyParallel\Reflection\CommandFromReflectionFactory; /** * @see \Rector\Tests\Parallel\Command\WorkerCommandLineFactoryTest * @todo possibly extract to symplify/easy-parallel diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper.php index e747d87fa..b8d83c6a9 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper.php @@ -12,7 +12,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\PhpAttribute\AnnotationToAttributeMapper\AnnotationToAttributeMapperTest */ diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php index a3c06f174..cd52b477b 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php @@ -13,7 +13,7 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php index bca532481..0ad74de9f 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayItemNodeAnnotationToAttributeMapper.php @@ -14,7 +14,7 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202311\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202312\Webmozart\Assert\InvalidArgumentException; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php index a548a81a8..0c99ef226 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php +++ b/vendor/rector/rector/packages/PhpAttribute/AnnotationToAttributeMapper/CurlyListNodeAnnotationToAttributeMapper.php @@ -10,7 +10,7 @@ use Rector\PhpAttribute\AnnotationToAttributeMapper; use Rector\PhpAttribute\Contract\AnnotationToAttributeMapperInterface; use Rector\PhpAttribute\Enum\DocTagNodeState; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @implements AnnotationToAttributeMapperInterface */ diff --git a/vendor/rector/rector/packages/PhpAttribute/AttributeArrayNameInliner.php b/vendor/rector/rector/packages/PhpAttribute/AttributeArrayNameInliner.php index 09a891a0a..61a50ca50 100644 --- a/vendor/rector/rector/packages/PhpAttribute/AttributeArrayNameInliner.php +++ b/vendor/rector/rector/packages/PhpAttribute/AttributeArrayNameInliner.php @@ -11,7 +11,7 @@ use PhpParser\Node\Scalar\LNumber; use PhpParser\Node\Scalar\String_; use Rector\Core\Exception\NotImplementedYetException; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; final class AttributeArrayNameInliner { /** diff --git a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/AttributeNameFactory.php b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/AttributeNameFactory.php index fd4fa9504..e87ae41aa 100644 --- a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/AttributeNameFactory.php +++ b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/AttributeNameFactory.php @@ -27,10 +27,14 @@ public function __construct(UseAliasNameMatcher $useAliasNameMatcher) */ public function create(AnnotationToAttributeInterface $annotationToAttribute, DoctrineAnnotationTagValueNode $doctrineAnnotationTagValueNode, array $uses) { - // A. attribute and class name are the same, so we re-use the short form to keep code compatible with previous one + // A. attribute and class name are the same, so we re-use the short form to keep code compatible with previous one, + // except start with \ if ($annotationToAttribute->getAttributeClass() === $annotationToAttribute->getTag()) { $attributeName = $doctrineAnnotationTagValueNode->identifierTypeNode->name; $attributeName = \ltrim($attributeName, '@'); + if (\strncmp($attributeName, '\\', \strlen('\\')) === 0) { + return new FullyQualified(\ltrim($attributeName, '\\')); + } return new Name($attributeName); } // B. different name diff --git a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/NamedArgsFactory.php b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/NamedArgsFactory.php index 0bc166d38..f84eb2170 100644 --- a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/NamedArgsFactory.php +++ b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/NamedArgsFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpAttribute\NodeFactory; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\BuilderHelpers; use PhpParser\Node\Arg; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php index 89b7ad54c..c2592ed57 100644 --- a/vendor/rector/rector/packages/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php +++ b/vendor/rector/rector/packages/PhpAttribute/NodeFactory/PhpNestedAttributeGroupFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PhpAttribute\NodeFactory; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node\Arg; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; diff --git a/vendor/rector/rector/packages/PhpDocParser/PhpDocParser/PhpDocNodeVisitor/CloningPhpDocNodeVisitor.php b/vendor/rector/rector/packages/PhpDocParser/PhpDocParser/PhpDocNodeVisitor/CloningPhpDocNodeVisitor.php index a93655ecd..bcda65d4c 100644 --- a/vendor/rector/rector/packages/PhpDocParser/PhpDocParser/PhpDocNodeVisitor/CloningPhpDocNodeVisitor.php +++ b/vendor/rector/rector/packages/PhpDocParser/PhpDocParser/PhpDocNodeVisitor/CloningPhpDocNodeVisitor.php @@ -16,7 +16,9 @@ final class CloningPhpDocNodeVisitor extends \Rector\PhpDocParser\PhpDocParser\P public function enterNode(Node $node) : Node { $clonedNode = clone $node; - $clonedNode->setAttribute(PhpDocAttributeKey::ORIG_NODE, $node); + if (!$clonedNode->hasAttribute(PhpDocAttributeKey::ORIG_NODE)) { + $clonedNode->setAttribute(PhpDocAttributeKey::ORIG_NODE, $node); + } return $clonedNode; } } diff --git a/vendor/rector/rector/packages/PostRector/Rector/ClassRenamingPostRector.php b/vendor/rector/rector/packages/PostRector/Rector/ClassRenamingPostRector.php index 7779c681a..197c88c52 100644 --- a/vendor/rector/rector/packages/PostRector/Rector/ClassRenamingPostRector.php +++ b/vendor/rector/rector/packages/PostRector/Rector/ClassRenamingPostRector.php @@ -78,8 +78,10 @@ public function enterNode(Node $node) : ?Node } /** @var Scope|null $scope */ $scope = $node->getAttribute(AttributeKey::SCOPE); - $result = $this->classRenamer->renameNode($node, $oldToNewClasses, $scope); - if (!$result instanceof Name && !$node instanceof FullyQualified) { + $result = null; + if ($node instanceof FullyQualified) { + $result = $this->classRenamer->renameNode($node, $oldToNewClasses, $scope); + } else { $phpAttributeName = $node->getAttribute(AttributeKey::PHP_ATTRIBUTE_NAME); if (\is_string($phpAttributeName)) { $result = $this->classRenamer->renameNode(new FullyQualified($phpAttributeName, $node->getAttributes()), $oldToNewClasses, $scope); diff --git a/vendor/rector/rector/packages/PostRector/Rector/UnusedImportRemovingPostRector.php b/vendor/rector/rector/packages/PostRector/Rector/UnusedImportRemovingPostRector.php index 512a410b5..e312e21d1 100644 --- a/vendor/rector/rector/packages/PostRector/Rector/UnusedImportRemovingPostRector.php +++ b/vendor/rector/rector/packages/PostRector/Rector/UnusedImportRemovingPostRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\PostRector\Rector; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name; @@ -74,7 +74,7 @@ public function enterNode(Node $node) : ?Node private function findNonUseImportNames($namespace) : array { $names = []; - $this->simpleCallableNodeTraverser->traverseNodesWithCallable($namespace, static function (Node $node) use(&$names) { + $this->simpleCallableNodeTraverser->traverseNodesWithCallable($namespace->stmts, static function (Node $node) use(&$names) { if ($node instanceof Use_) { return NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN; } @@ -144,10 +144,10 @@ private function isUseImportUsed(UseUse $useUse, array $names) : bool $alias = $this->resolveAliasName($useUse); // match partial import foreach ($names as $name) { - if (\substr_compare($comparedName, $name, -\strlen($name)) === 0) { + if (\substr_compare($comparedName, '\\' . $name, -\strlen('\\' . $name)) === 0) { return \true; } - if (\strncmp($name, $namespacedPrefix, \strlen($namespacedPrefix)) === 0) { + if ($this->isSubNamespace($name, $namespacedPrefix)) { return \true; } if (!\is_string($alias)) { @@ -166,4 +166,12 @@ private function isUseImportUsed(UseUse $useUse, array $names) : bool } return \false; } + private function isSubNamespace(string $name, string $namespacedPrefix) : bool + { + if (\strncmp($name, $namespacedPrefix, \strlen($namespacedPrefix)) === 0) { + $subNamespace = \substr($name, \strlen($namespacedPrefix)); + return \strpos($subNamespace, '\\') === \false; + } + return \false; + } } diff --git a/vendor/rector/rector/packages/PostRector/Rector/UseAddingPostRector.php b/vendor/rector/rector/packages/PostRector/Rector/UseAddingPostRector.php index 2a822174e..d1793af0b 100644 --- a/vendor/rector/rector/packages/PostRector/Rector/UseAddingPostRector.php +++ b/vendor/rector/rector/packages/PostRector/Rector/UseAddingPostRector.php @@ -95,15 +95,6 @@ private function resolveNodesWithImportedUses(array $nodes, array $useImportType $this->useImportsAdder->addImportsToNamespace($namespace, $useImportTypes, $constantUseImportTypes, $functionUseImportTypes); return $nodes; } - // just renamed no-namepaced class to namespaced class - $namespaces = \array_filter($nodes, static function (Stmt $stmt) : bool { - return $stmt instanceof Namespace_; - }); - if ($namespaces !== []) { - // then add, to prevent adding + removing false positive of same short use - $this->useImportsAdder->addImportsToNamespace(\current($namespaces), $useImportTypes, $constantUseImportTypes, $functionUseImportTypes); - return $nodes; - } // B. no namespace? add in the top $useImportTypes = $this->filterOutNonNamespacedNames($useImportTypes); // then add, to prevent adding + removing false positive of same short use diff --git a/vendor/rector/rector/packages/Skipper/Skipper/Skipper.php b/vendor/rector/rector/packages/Skipper/Skipper/Skipper.php index 0d8029400..0d813f27f 100644 --- a/vendor/rector/rector/packages/Skipper/Skipper/Skipper.php +++ b/vendor/rector/rector/packages/Skipper/Skipper/Skipper.php @@ -7,7 +7,7 @@ use Rector\Core\Contract\Rector\RectorInterface; use Rector\Core\ProcessAnalyzer\RectifiedAnalyzer; use Rector\Skipper\Contract\SkipVoterInterface; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @api * @see \Rector\Tests\Skipper\Skipper\SkipperTest diff --git a/vendor/rector/rector/packages/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php b/vendor/rector/rector/packages/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php index 030d0a174..09aefb3d5 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/Mapper/ScalarStringToTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\Mapper; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PHPStan\Type\Accessory\AccessoryNonEmptyStringType; use PHPStan\Type\ArrayType; use PHPStan\Type\BooleanType; diff --git a/vendor/rector/rector/packages/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php b/vendor/rector/rector/packages/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php index 78e0b303e..4afe28e11 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/PhpDoc/PhpDocTypeMapper.php @@ -9,7 +9,7 @@ use PHPStan\PhpDocParser\Ast\Type\TypeNode; use PHPStan\Type\Type; use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\StaticTypeMapper\PhpDoc\PhpDocTypeMapperTest */ diff --git a/vendor/rector/rector/packages/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php b/vendor/rector/rector/packages/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php index 7336833ce..4e8b7db64 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/PhpDocParser/IdentifierTypeMapper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\PhpDocParser; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PHPStan\Analyser\NameScope; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; diff --git a/vendor/rector/rector/packages/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php b/vendor/rector/rector/packages/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php index b244ea8d0..0ecbb37e6 100644 --- a/vendor/rector/rector/packages/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php +++ b/vendor/rector/rector/packages/StaticTypeMapper/ValueObject/Type/FullyQualifiedObjectType.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\StaticTypeMapper\ValueObject\Type; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node\Name; use PhpParser\Node\Stmt\Use_; use PhpParser\Node\Stmt\UseUse; diff --git a/vendor/rector/rector/packages/Testing/Fixture/FixtureFileFinder.php b/vendor/rector/rector/packages/Testing/Fixture/FixtureFileFinder.php index 467fb100c..bc8809ff8 100644 --- a/vendor/rector/rector/packages/Testing/Fixture/FixtureFileFinder.php +++ b/vendor/rector/rector/packages/Testing/Fixture/FixtureFileFinder.php @@ -4,7 +4,7 @@ namespace Rector\Testing\Fixture; use Iterator; -use RectorPrefix202311\Symfony\Component\Finder\Finder; +use RectorPrefix202312\Symfony\Component\Finder\Finder; final class FixtureFileFinder { /** diff --git a/vendor/rector/rector/packages/Testing/Fixture/FixtureFileUpdater.php b/vendor/rector/rector/packages/Testing/Fixture/FixtureFileUpdater.php index d289d695c..69450f0f0 100644 --- a/vendor/rector/rector/packages/Testing/Fixture/FixtureFileUpdater.php +++ b/vendor/rector/rector/packages/Testing/Fixture/FixtureFileUpdater.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202311\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\FileSystem; final class FixtureFileUpdater { /** diff --git a/vendor/rector/rector/packages/Testing/Fixture/FixtureSplitter.php b/vendor/rector/rector/packages/Testing/Fixture/FixtureSplitter.php index 71667cac7..f7315915c 100644 --- a/vendor/rector/rector/packages/Testing/Fixture/FixtureSplitter.php +++ b/vendor/rector/rector/packages/Testing/Fixture/FixtureSplitter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202311\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\FileSystem; /** * @api */ diff --git a/vendor/rector/rector/packages/Testing/Fixture/FixtureTempFileDumper.php b/vendor/rector/rector/packages/Testing/Fixture/FixtureTempFileDumper.php index 2c17fffb2..c33ca75d4 100644 --- a/vendor/rector/rector/packages/Testing/Fixture/FixtureTempFileDumper.php +++ b/vendor/rector/rector/packages/Testing/Fixture/FixtureTempFileDumper.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Testing\Fixture; -use RectorPrefix202311\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\FileSystem; /** * @api used in tests */ diff --git a/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php b/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php index 4398af944..3fb3ae017 100644 --- a/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php +++ b/vendor/rector/rector/packages/Testing/PHPUnit/AbstractRectorTestCase.php @@ -3,10 +3,10 @@ declare (strict_types=1); namespace Rector\Testing\PHPUnit; -use RectorPrefix202311\Illuminate\Container\RewindableGenerator; +use RectorPrefix202312\Illuminate\Container\RewindableGenerator; use Iterator; -use RectorPrefix202311\Nette\Utils\FileSystem; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\Strings; use PHPStan\Collectors\Collector; use PHPUnit\Framework\ExpectationFailedException; use Rector\Core\Application\ApplicationFileProcessor; diff --git a/vendor/rector/rector/packages/Testing/TestingParser/TestingParser.php b/vendor/rector/rector/packages/Testing/TestingParser/TestingParser.php index 87e5a5e51..a0683136d 100644 --- a/vendor/rector/rector/packages/Testing/TestingParser/TestingParser.php +++ b/vendor/rector/rector/packages/Testing/TestingParser/TestingParser.php @@ -3,10 +3,8 @@ declare (strict_types=1); namespace Rector\Testing\TestingParser; -use RectorPrefix202311\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\FileSystem; use PhpParser\Node; -use Rector\Core\Configuration\Option; -use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\PhpParser\Parser\RectorParser; use Rector\Core\Provider\CurrentFileProvider; use Rector\Core\ValueObject\Application\File; @@ -63,7 +61,6 @@ public function parseFileToDecoratedNodes(string $filePath) : array { // needed for PHPStan reflection, as it caches the last processed file $this->dynamicSourceLocatorProvider->setFilePath($filePath); - SimpleParameterProvider::setParameter(Option::SOURCE, [$filePath]); $fileContent = FileSystem::read($filePath); $stmts = $this->rectorParser->parseString($fileContent); $file = new File($filePath, $fileContent); diff --git a/vendor/rector/rector/packages/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php b/vendor/rector/rector/packages/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php index 4d3292221..d859b0a33 100644 --- a/vendor/rector/rector/packages/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php +++ b/vendor/rector/rector/packages/VendorLocker/NodeVendorLocker/ClassMethodReturnTypeOverrideGuard.php @@ -9,7 +9,10 @@ use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\FunctionVariantWithPhpDocs; use PHPStan\Reflection\MethodReflection; +use PHPStan\Reflection\ParametersAcceptorSelector; +use PHPStan\Reflection\Php\PhpMethodReflection; use PHPStan\Type\MixedType; +use PHPStan\Type\Type; use Rector\Core\FileSystem\FilePathHelper; use Rector\Core\NodeAnalyzer\MagicClassMethodAnalyzer; use Rector\Core\Reflection\ReflectionResolver; @@ -67,7 +70,7 @@ public function shouldSkipClassMethod(ClassMethod $classMethod, Scope $scope) : if (!$classReflection instanceof ClassReflection) { return \true; } - if ($classReflection->isAbstract()) { + if ($classMethod->isAbstract()) { return \true; } if ($classReflection->isInterface()) { @@ -87,7 +90,26 @@ public function shouldSkipClassMethod(ClassMethod $classMethod, Scope $scope) : return \true; } $returnType = $this->returnTypeInferer->inferFunctionLike($classMethod); - return !$returnType->isVoid()->yes(); + return $this->hasChildrenDifferentTypeClassMethod($classMethod, $childrenClassReflections, $returnType); + } + /** + * @param ClassReflection[] $childrenClassReflections + */ + private function hasChildrenDifferentTypeClassMethod(ClassMethod $classMethod, array $childrenClassReflections, Type $returnType) : bool + { + $methodName = $classMethod->name->toString(); + foreach ($childrenClassReflections as $childClassReflection) { + $methodReflection = $childClassReflection->getNativeMethod($methodName); + if (!$methodReflection instanceof PhpMethodReflection) { + continue; + } + $parametersAcceptor = ParametersAcceptorSelector::combineAcceptors($methodReflection->getVariants()); + $childReturnType = $parametersAcceptor->getNativeReturnType(); + if (!$returnType->isSuperTypeOf($childReturnType)->yes()) { + return \true; + } + } + return \false; } private function isReturnTypeChangeAllowed(ClassMethod $classMethod, Scope $scope) : bool { diff --git a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php index 7da634b00..8352d7209 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ArgumentAdderRector.php @@ -28,7 +28,7 @@ use Rector\StaticTypeMapper\StaticTypeMapper; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Arguments\Rector\ClassMethod\ArgumentAdderRector\ArgumentAdderRectorTest */ diff --git a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php index 1f85152cc..fe78588fe 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/ClassMethod/ReplaceArgumentDefaultValueRector.php @@ -15,7 +15,7 @@ use Rector\Core\ValueObject\MethodName; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @api used in rector-symfony * @see \Rector\Tests\Arguments\Rector\ClassMethod\ReplaceArgumentDefaultValueRector\ReplaceArgumentDefaultValueRectorTest diff --git a/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php b/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php index 845a8d622..2cf2983da 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/FuncCall/FunctionArgumentDefaultValueReplacerRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://php.watch/versions/8.1/version_compare-operator-restrictions * @changelog https://github.com/rectorphp/rector/issues/6271 diff --git a/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php b/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php index 9b55f4cd1..47586a558 100644 --- a/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php +++ b/vendor/rector/rector/rules/Arguments/Rector/MethodCall/RemoveMethodCallParamRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Arguments\Rector\MethodCall\RemoveMethodCallParamRector\RemoveMethodCallParamRectorTest */ diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/BooleanAnd/RemoveUselessIsObjectCheckRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/BooleanAnd/RemoveUselessIsObjectCheckRector.php new file mode 100644 index 000000000..85988066c --- /dev/null +++ b/vendor/rector/rector/rules/CodeQuality/Rector/BooleanAnd/RemoveUselessIsObjectCheckRector.php @@ -0,0 +1,62 @@ +> + */ + public function getNodeTypes() : array + { + return [BooleanAnd::class]; + } + /** + * @param BooleanAnd $node + */ + public function refactor(Node $node) : ?Node + { + if ($node->left instanceof FuncCall && $this->isName($node->left, 'is_object') && $node->right instanceof Instanceof_) { + return $this->processRemoveUselessIsObject($node->left, $node->right); + } + if (!$node->left instanceof Instanceof_) { + return null; + } + if (!$node->right instanceof FuncCall) { + return null; + } + if (!$this->isName($node->right, 'is_object')) { + return null; + } + return $this->processRemoveUselessIsObject($node->right, $node->left); + } + private function processRemoveUselessIsObject(FuncCall $funcCall, Instanceof_ $instanceof) : ?Instanceof_ + { + if ($funcCall->isFirstClassCallable()) { + return null; + } + $args = $funcCall->getArgs(); + if (!isset($args[0])) { + return null; + } + if (!$this->nodeComparator->areNodesEqual($args[0]->value, $instanceof->expr)) { + return null; + } + return $instanceof; + } +} diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php index 7c3aa2e0e..e785a1f48 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Concat/JoinStringConcatRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\Concat; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\String_; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Empty_/SimplifyEmptyCheckOnEmptyArrayRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Empty_/SimplifyEmptyCheckOnEmptyArrayRector.php index 8ba3c8402..5c15a09b3 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Empty_/SimplifyEmptyCheckOnEmptyArrayRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Empty_/SimplifyEmptyCheckOnEmptyArrayRector.php @@ -20,6 +20,7 @@ use PHPStan\Type\ArrayType; use PHPStan\Type\MixedType; use Rector\Core\NodeAnalyzer\ExprAnalyzer; +use Rector\Core\Php\ReservedKeywordAnalyzer; use Rector\Core\PhpParser\AstResolver; use Rector\Core\Rector\AbstractScopeAwareRector; use Rector\Core\Reflection\ReflectionResolver; @@ -51,12 +52,18 @@ final class SimplifyEmptyCheckOnEmptyArrayRector extends AbstractScopeAwareRecto * @var \Rector\TypeDeclaration\TypeInferer\PropertyTypeInferer\AllAssignNodePropertyTypeInferer */ private $allAssignNodePropertyTypeInferer; - public function __construct(ExprAnalyzer $exprAnalyzer, ReflectionResolver $reflectionResolver, AstResolver $astResolver, AllAssignNodePropertyTypeInferer $allAssignNodePropertyTypeInferer) + /** + * @readonly + * @var \Rector\Core\Php\ReservedKeywordAnalyzer + */ + private $reservedKeywordAnalyzer; + public function __construct(ExprAnalyzer $exprAnalyzer, ReflectionResolver $reflectionResolver, AstResolver $astResolver, AllAssignNodePropertyTypeInferer $allAssignNodePropertyTypeInferer, ReservedKeywordAnalyzer $reservedKeywordAnalyzer) { $this->exprAnalyzer = $exprAnalyzer; $this->reflectionResolver = $reflectionResolver; $this->astResolver = $astResolver; $this->allAssignNodePropertyTypeInferer = $allAssignNodePropertyTypeInferer; + $this->reservedKeywordAnalyzer = $reservedKeywordAnalyzer; } public function getRuleDefinition() : RuleDefinition { @@ -97,13 +104,20 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node } return new Identical($node->expr, new Array_()); } + private function isAllowedVariable(Variable $variable) : bool + { + if (\is_string($variable->name) && $this->reservedKeywordAnalyzer->isNativeVariable($variable->name)) { + return \false; + } + return !$this->exprAnalyzer->isNonTypedFromParam($variable); + } private function isAllowedExpr(Expr $expr, Scope $scope) : bool { if (!$scope->getType($expr) instanceof ArrayType) { return \false; } if ($expr instanceof Variable) { - return !$this->exprAnalyzer->isNonTypedFromParam($expr); + return $this->isAllowedVariable($expr); } if (!$expr instanceof PropertyFetch && !$expr instanceof StaticPropertyFetch) { return \false; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Expression/TernaryFalseExpressionToIfRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Expression/TernaryFalseExpressionToIfRector.php index 94322a243..39a490cee 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Expression/TernaryFalseExpressionToIfRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Expression/TernaryFalseExpressionToIfRector.php @@ -70,7 +70,7 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node if (!$ternary->if instanceof Expr) { return null; } - if ($this->sideEffectNodeDetector->detect($ternary->else, $scope)) { + if ($this->sideEffectNodeDetector->detect($ternary->else, $scope) || $this->sideEffectNodeDetector->detectCallExpr($ternary->else, $scope)) { return null; } return new If_($ternary->cond, ['stmts' => [new Expression($ternary->if)]]); diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php index f258373e3..33f2224f6 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Foreach_/SimplifyForeachToCoalescingRector.php @@ -10,6 +10,7 @@ use PhpParser\Node\Expr\BinaryOp\Coalesce; use PhpParser\Node\Expr\BinaryOp\Identical; use PhpParser\Node\Stmt; +use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Foreach_; use PhpParser\Node\Stmt\If_; @@ -32,14 +33,14 @@ public function getRuleDefinition() : RuleDefinition return new RuleDefinition('Changes foreach that returns set value to ??', [new CodeSample(<<<'CODE_SAMPLE' foreach ($this->oldToNewFunctions as $oldFunction => $newFunction) { if ($currentFunction === $oldFunction) { - innerForeachReturn $newFunction; + return $newFunction; } } -innerForeachReturn null; +return null; CODE_SAMPLE , <<<'CODE_SAMPLE' -innerForeachReturn $this->oldToNewFunctions[$currentFunction] ?? null; +return $this->oldToNewFunctions[$currentFunction] ?? null; CODE_SAMPLE )]); } @@ -125,6 +126,9 @@ private function matchForeachReturnOrAssign(Foreach_ $foreach) if (\count($if->stmts) !== 1) { return null; } + if ($if->else instanceof Else_ || $if->elseifs !== []) { + return null; + } $innerStmt = $if->stmts[0]; if ($innerStmt instanceof Return_) { return $innerStmt; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php index 88e96169f..6a1bab770 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/FuncCall/SimplifyRegexPatternRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\FuncCall; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Scalar\String_; use Rector\Core\Rector\AbstractRector; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php index 912f7092d..660da5a45 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/Include_/AbsolutizeRequireAndIncludePathRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodeQuality\Rector\Include_; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Expr\Include_; diff --git a/vendor/rector/rector/rules/CodeQuality/Rector/NotEqual/CommonNotEqualRector.php b/vendor/rector/rector/rules/CodeQuality/Rector/NotEqual/CommonNotEqualRector.php index e7c0bdfba..9c60c38fe 100644 --- a/vendor/rector/rector/rules/CodeQuality/Rector/NotEqual/CommonNotEqualRector.php +++ b/vendor/rector/rector/rules/CodeQuality/Rector/NotEqual/CommonNotEqualRector.php @@ -47,10 +47,28 @@ public function getNodeTypes() : array /** * @param NotEqual $node */ - public function refactor(Node $node) : NotEqual + public function refactor(Node $node) : ?NotEqual { + if (!$this->doesNotEqualContainsShipCompareToken($node)) { + return null; + } // invoke override to default "!=" $node->setAttribute(AttributeKey::ORIGINAL_NODE, null); return $node; } + private function doesNotEqualContainsShipCompareToken(NotEqual $notEqual) : bool + { + $tokenStartPos = $notEqual->getStartTokenPos(); + $tokenEndPos = $notEqual->getEndTokenPos(); + for ($i = $tokenStartPos; $i < $tokenEndPos; ++$i) { + $token = $this->file->getOldTokens()[$i]; + if (!isset($token[1])) { + continue; + } + if ($token[1] === '<>') { + return \true; + } + } + return \false; + } } diff --git a/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php b/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php index 14104606e..0f0e49a7a 100644 --- a/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php +++ b/vendor/rector/rector/rules/CodingStyle/Application/UseImportsAdder.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Application; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node\Name; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Declare_; diff --git a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php index e555f2edf..ba5824939 100644 --- a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php +++ b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ClassNameImportSkipVoter/FullyQualifiedNameClassNameImportSkipVoter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\ClassNameImport\ClassNameImportSkipVoter; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use Rector\CodingStyle\ClassNameImport\ShortNameResolver; use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface; diff --git a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php index 6713dc883..3cfc48ee3 100644 --- a/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php +++ b/vendor/rector/rector/rules/CodingStyle/ClassNameImport/ShortNameResolver.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\ClassNameImport; -use RectorPrefix202311\Nette\Utils\Reflection; +use RectorPrefix202312\Nette\Utils\Reflection; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Name; diff --git a/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php b/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php index 6c95ae0be..36f9f6123 100644 --- a/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php +++ b/vendor/rector/rector/rules/CodingStyle/Naming/ClassNaming.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Naming; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node\Identifier; use PhpParser\Node\Name; use PhpParser\Node\Stmt\ClassLike; diff --git a/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php b/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php index a0be5e09d..66afbaad4 100644 --- a/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php +++ b/vendor/rector/rector/rules/CodingStyle/NodeAnalyzer/UseImportNameMatcher.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\NodeAnalyzer; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\GroupUse; @@ -71,6 +71,11 @@ private function resolveName(string $prefix, string $tag, UseUse $useUse) : stri throw new ShouldNotHappenException(); } if (!$originalUseUseNode->alias instanceof Identifier) { + $lastName = $originalUseUseNode->name->getLast(); + if (\strncmp($tag, $lastName . '\\', \strlen($lastName . '\\')) === 0) { + $tagName = Strings::after($tag, '\\'); + return $prefix . $originalUseUseNode->name->toString() . '\\' . $tagName; + } return $prefix . $originalUseUseNode->name->toString(); } $unaliasedShortClass = Strings::substring($tag, \strlen($originalUseUseNode->alias->toString())); diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php index 40f87e0ff..c50412e4a 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Catch_/CatchExceptionNameMatchingTypeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\Catch_; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\Closure; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Class_/AddArrayDefaultToArrayPropertyRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Class_/AddArrayDefaultToArrayPropertyRector.php deleted file mode 100644 index 5bd79eea4..000000000 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Class_/AddArrayDefaultToArrayPropertyRector.php +++ /dev/null @@ -1,258 +0,0 @@ -propertyFetchAnalyzer = $propertyFetchAnalyzer; - $this->iterableTypeAnalyzer = $iterableTypeAnalyzer; - $this->visibilityManipulator = $visibilityManipulator; - $this->constructorAssignDetector = $constructorAssignDetector; - $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->valueResolver = $valueResolver; - $this->betterNodeFinder = $betterNodeFinder; - } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Adds array default value to property to prevent foreach over null error', [new CodeSample(<<<'CODE_SAMPLE' -class SomeClass -{ - /** - * @var int[] - */ - private $values; - - public function isEmpty() - { - return $this->values === null; - } -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -class SomeClass -{ - /** - * @var int[] - */ - private $values = []; - - public function isEmpty() - { - return $this->values === []; - } -} -CODE_SAMPLE -)]); - } - /** - * @return array> - */ - public function getNodeTypes() : array - { - return [Class_::class]; - } - /** - * @param Class_ $node - */ - public function refactor(Node $node) : ?Node - { - if ($node->isReadonly()) { - return null; - } - $changedProperties = $this->collectPropertyNamesWithMissingDefaultArray($node); - if ($changedProperties === []) { - return null; - } - $this->completeDefaultArrayToPropertyNames($node, $changedProperties); - // $this->variable !== null && count($this->variable) > 0 → count($this->variable) > 0 - $this->clearNotNullBeforeCount($node, $changedProperties); - // $this->variable === null → $this->variable === [] - $this->replaceNullComparisonOfArrayPropertiesWithArrayComparison($node, $changedProperties); - return $node; - } - /** - * @return string[] - */ - private function collectPropertyNamesWithMissingDefaultArray(Class_ $class) : array - { - $propertyNames = []; - $this->traverseNodesWithCallable($class, function (Node $node) use($class, &$propertyNames) { - if (!$node instanceof Property) { - return null; - } - foreach ($node->props as $propertyProperty) { - if ($propertyProperty->default instanceof Expr) { - continue; - } - $varType = $this->resolveVarType($node); - if (!$this->iterableTypeAnalyzer->detect($varType)) { - continue; - } - if ($this->visibilityManipulator->isReadonly($node)) { - return null; - } - $propertyName = $this->getName($propertyProperty); - if ($this->constructorAssignDetector->isPropertyAssigned($class, $propertyName)) { - return null; - } - $propertyNames[] = $propertyName; - } - return null; - }); - return $propertyNames; - } - /** - * @param string[] $propertyNames - */ - private function completeDefaultArrayToPropertyNames(Class_ $class, array $propertyNames) : void - { - $this->traverseNodesWithCallable($class, function (Node $node) use($propertyNames) : ?PropertyProperty { - if (!$node instanceof PropertyProperty) { - return null; - } - if (!$this->isNames($node, $propertyNames)) { - return null; - } - $node->default = new Array_(); - return $node; - }); - } - /** - * @param string[] $propertyNames - */ - private function clearNotNullBeforeCount(Class_ $class, array $propertyNames) : void - { - $this->traverseNodesWithCallable($class, function (Node $node) use($propertyNames) : ?Expr { - if (!$node instanceof BooleanAnd) { - return null; - } - if (!$this->isLocalPropertyOfNamesNotIdenticalToNull($node->left, $propertyNames)) { - return null; - } - $isNextNodeCountingProperty = (bool) $this->betterNodeFinder->findFirst($node->right, function (Node $node) use($propertyNames) : bool { - if (!$node instanceof FuncCall) { - return \false; - } - if ($node->isFirstClassCallable()) { - return \false; - } - if (!$this->isName($node, 'count')) { - return \false; - } - $countedArgument = $node->getArgs()[0]->value; - if (!$countedArgument instanceof PropertyFetch) { - return \false; - } - return $this->isNames($countedArgument, $propertyNames); - }); - if (!$isNextNodeCountingProperty) { - return null; - } - return $node->right; - }); - } - /** - * @param string[] $propertyNames - */ - private function replaceNullComparisonOfArrayPropertiesWithArrayComparison(Class_ $class, array $propertyNames) : void - { - // replace comparison to "null" with "[]" - $this->traverseNodesWithCallable($class, function (Node $node) use($propertyNames) : ?BinaryOp { - if (!$node instanceof BinaryOp) { - return null; - } - if ($this->propertyFetchAnalyzer->isLocalPropertyOfNames($node->left, $propertyNames) && $this->valueResolver->isNull($node->right)) { - $node->right = new Array_(); - } - if ($this->propertyFetchAnalyzer->isLocalPropertyOfNames($node->right, $propertyNames) && $this->valueResolver->isNull($node->left)) { - $node->left = new Array_(); - } - return $node; - }); - } - private function resolveVarType(Property $property) : Type - { - $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property); - return $phpDocInfo->getVarType(); - } - /** - * @param string[] $propertyNames - */ - private function isLocalPropertyOfNamesNotIdenticalToNull(Expr $expr, array $propertyNames) : bool - { - if (!$expr instanceof NotIdentical) { - return \false; - } - if ($this->propertyFetchAnalyzer->isLocalPropertyOfNames($expr->left, $propertyNames) && $this->valueResolver->isNull($expr->right)) { - return \true; - } - if (!$this->propertyFetchAnalyzer->isLocalPropertyOfNames($expr->right, $propertyNames)) { - return \false; - } - return $this->valueResolver->isNull($expr->left); - } -} diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php index 30b2a08f8..3c2a0fafb 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\Encapsed; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Arg; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php index d8a8fb7cc..2712a359e 100644 --- a/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php +++ b/vendor/rector/rector/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\CodingStyle\Rector\String_; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Name\FullyQualified; diff --git a/vendor/rector/rector/rules/CodingStyle/Rector/Switch_/BinarySwitchToIfElseRector.php b/vendor/rector/rector/rules/CodingStyle/Rector/Switch_/BinarySwitchToIfElseRector.php deleted file mode 100644 index 8b1b1e49a..000000000 --- a/vendor/rector/rector/rules/CodingStyle/Rector/Switch_/BinarySwitchToIfElseRector.php +++ /dev/null @@ -1,52 +0,0 @@ -> - */ - public function getNodeTypes() : array - { - return [Switch_::class]; - } - /** - * @param Switch_ $node - */ - public function refactor(Node $node) : ?Node - { - \trigger_error(\sprintf('The "%s" rule is deprecated as prevents refactoring to match (), use PHPStan, manual handling and PHP 8.0 upgrade set instead.', self::class), \E_USER_ERROR); - return null; - } -} diff --git a/vendor/rector/rector/rules/CodingStyle/TypeAnalyzer/IterableTypeAnalyzer.php b/vendor/rector/rector/rules/CodingStyle/TypeAnalyzer/IterableTypeAnalyzer.php deleted file mode 100644 index d5cf56e38..000000000 --- a/vendor/rector/rector/rules/CodingStyle/TypeAnalyzer/IterableTypeAnalyzer.php +++ /dev/null @@ -1,29 +0,0 @@ -isArray()->yes()) { - return \true; - } - if ($type instanceof UnionType) { - foreach ($type->getTypes() as $unionedType) { - if (!$this->detect($unionedType)) { - return \false; - } - } - return \true; - } - return \false; - } -} diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadReturnTagValueNodeAnalyzer.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadReturnTagValueNodeAnalyzer.php index 8a9aaf748..b3044e6c6 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadReturnTagValueNodeAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadReturnTagValueNodeAnalyzer.php @@ -3,11 +3,16 @@ declare (strict_types=1); namespace Rector\DeadCode\PhpDoc; +use PhpParser\Node; +use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Function_; use PHPStan\Analyser\Scope; use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode; use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode; use PHPStan\PhpDocParser\Ast\Type\ThisTypeNode; +use PHPStan\Type\TypeCombinator; +use PHPStan\Type\UnionType; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; use Rector\BetterPhpDocParser\ValueObject\Type\BracketsAwareUnionTypeNode; use Rector\DeadCode\PhpDoc\Guard\StandaloneTypeRemovalGuard; @@ -15,6 +20,7 @@ use Rector\DeadCode\TypeNodeAnalyzer\MixedArrayTypeNodeAnalyzer; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\NodeTypeResolver\TypeComparator\TypeComparator; +use Rector\StaticTypeMapper\StaticTypeMapper; final class DeadReturnTagValueNodeAnalyzer { /** @@ -42,29 +48,38 @@ final class DeadReturnTagValueNodeAnalyzer * @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger */ private $phpDocTypeChanger; - public function __construct(TypeComparator $typeComparator, GenericTypeNodeAnalyzer $genericTypeNodeAnalyzer, MixedArrayTypeNodeAnalyzer $mixedArrayTypeNodeAnalyzer, StandaloneTypeRemovalGuard $standaloneTypeRemovalGuard, PhpDocTypeChanger $phpDocTypeChanger) + /** + * @readonly + * @var \Rector\StaticTypeMapper\StaticTypeMapper + */ + private $staticTypeMapper; + public function __construct(TypeComparator $typeComparator, GenericTypeNodeAnalyzer $genericTypeNodeAnalyzer, MixedArrayTypeNodeAnalyzer $mixedArrayTypeNodeAnalyzer, StandaloneTypeRemovalGuard $standaloneTypeRemovalGuard, PhpDocTypeChanger $phpDocTypeChanger, StaticTypeMapper $staticTypeMapper) { $this->typeComparator = $typeComparator; $this->genericTypeNodeAnalyzer = $genericTypeNodeAnalyzer; $this->mixedArrayTypeNodeAnalyzer = $mixedArrayTypeNodeAnalyzer; $this->standaloneTypeRemovalGuard = $standaloneTypeRemovalGuard; $this->phpDocTypeChanger = $phpDocTypeChanger; + $this->staticTypeMapper = $staticTypeMapper; } - public function isDead(ReturnTagValueNode $returnTagValueNode, ClassMethod $classMethod) : bool + /** + * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $functionLike + */ + public function isDead(ReturnTagValueNode $returnTagValueNode, $functionLike) : bool { - $returnType = $classMethod->getReturnType(); + $returnType = $functionLike->getReturnType(); if ($returnType === null) { return \false; } if ($returnTagValueNode->description !== '') { return \false; } - $scope = $classMethod->getAttribute(AttributeKey::SCOPE); + $scope = $functionLike->getAttribute(AttributeKey::SCOPE); if ($scope instanceof Scope && $scope->isInTrait() && $returnTagValueNode->type instanceof ThisTypeNode) { return \false; } - if (!$this->typeComparator->arePhpParserAndPhpStanPhpDocTypesEqual($returnType, $returnTagValueNode->type, $classMethod)) { - return $returnTagValueNode->type instanceof IdentifierTypeNode && (string) $returnTagValueNode->type === 'void'; + if (!$this->typeComparator->arePhpParserAndPhpStanPhpDocTypesEqual($returnType, $returnTagValueNode->type, $functionLike)) { + return $this->isDeadNotEqual($returnTagValueNode, $returnType, $functionLike); } if ($this->phpDocTypeChanger->isAllowed($returnTagValueNode->type)) { return \false; @@ -80,6 +95,29 @@ public function isDead(ReturnTagValueNode $returnTagValueNode, ClassMethod $clas } return !$this->hasTrueFalsePseudoType($returnTagValueNode->type); } + private function isVoidReturnType(Node $node) : bool + { + return $node instanceof Identifier && $node->toString() === 'void'; + } + private function isNeverReturnType(Node $node) : bool + { + return $node instanceof Identifier && $node->toString() === 'never'; + } + /** + * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $functionLike + */ + private function isDeadNotEqual(ReturnTagValueNode $returnTagValueNode, Node $node, $functionLike) : bool + { + if ($returnTagValueNode->type instanceof IdentifierTypeNode && (string) $returnTagValueNode->type === 'void') { + return \true; + } + if (!$this->hasUsefullPhpdocType($returnTagValueNode, $node)) { + return \true; + } + $nodeType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($node); + $docType = $this->staticTypeMapper->mapPHPStanPhpDocTypeNodeToPHPStanType($returnTagValueNode->type, $functionLike); + return $docType instanceof UnionType && $this->typeComparator->areTypesEqual(TypeCombinator::removeNull($docType), $nodeType); + } private function hasTrueFalsePseudoType(BracketsAwareUnionTypeNode $bracketsAwareUnionTypeNode) : bool { $unionTypes = $bracketsAwareUnionTypeNode->types; @@ -94,4 +132,21 @@ private function hasTrueFalsePseudoType(BracketsAwareUnionTypeNode $bracketsAwar } return \false; } + /** + * exact different between @return and node return type + * @param mixed $returnType + */ + private function hasUsefullPhpdocType(ReturnTagValueNode $returnTagValueNode, $returnType) : bool + { + if ($returnTagValueNode->type instanceof IdentifierTypeNode && $returnTagValueNode->type->name === 'mixed') { + return \false; + } + if (!$this->isVoidReturnType($returnType)) { + return !$this->isNeverReturnType($returnType); + } + if (!$returnTagValueNode->type instanceof IdentifierTypeNode || (string) $returnTagValueNode->type !== 'never') { + return \false; + } + return !$this->isNeverReturnType($returnType); + } } diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php index f1c8917a3..bf0ebc5a0 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/DeadVarTagValueNodeAnalyzer.php @@ -6,6 +6,7 @@ use PhpParser\Node\Stmt\Property; use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode; use PHPStan\Type\IntersectionType; +use PHPStan\Type\TypeCombinator; use PHPStan\Type\UnionType; use Rector\NodeTypeResolver\TypeComparator\TypeComparator; use Rector\StaticTypeMapper\StaticTypeMapper; @@ -40,6 +41,9 @@ public function isDead(VarTagValueNode $varTagValueNode, Property $property) : b if ($propertyType instanceof UnionType && !$docType instanceof UnionType) { return !$docType instanceof IntersectionType; } - return $this->typeComparator->arePhpParserAndPhpStanPhpDocTypesEqual($property->type, $varTagValueNode->type, $property); + if ($this->typeComparator->arePhpParserAndPhpStanPhpDocTypesEqual($property->type, $varTagValueNode->type, $property)) { + return \true; + } + return $docType instanceof UnionType && $this->typeComparator->areTypesEqual(TypeCombinator::removeNull($docType), $propertyType); } } diff --git a/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/ReturnTagRemover.php b/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/ReturnTagRemover.php index c700d1f65..26266bd1b 100644 --- a/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/ReturnTagRemover.php +++ b/vendor/rector/rector/rules/DeadCode/PhpDoc/TagRemover/ReturnTagRemover.php @@ -4,6 +4,7 @@ namespace Rector\DeadCode\PhpDoc\TagRemover; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Function_; use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\DeadCode\PhpDoc\DeadReturnTagValueNodeAnalyzer; @@ -18,14 +19,17 @@ public function __construct(DeadReturnTagValueNodeAnalyzer $deadReturnTagValueNo { $this->deadReturnTagValueNodeAnalyzer = $deadReturnTagValueNodeAnalyzer; } - public function removeReturnTagIfUseless(PhpDocInfo $phpDocInfo, ClassMethod $classMethod) : bool + /** + * @param \PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_ $functionLike + */ + public function removeReturnTagIfUseless(PhpDocInfo $phpDocInfo, $functionLike) : bool { // remove existing type $returnTagValueNode = $phpDocInfo->getReturnTagValue(); if (!$returnTagValueNode instanceof ReturnTagValueNode) { return \false; } - $isReturnTagValueDead = $this->deadReturnTagValueNodeAnalyzer->isDead($returnTagValueNode, $classMethod); + $isReturnTagValueDead = $this->deadReturnTagValueNodeAnalyzer->isDead($returnTagValueNode, $functionLike); if (!$isReturnTagValueDead) { return \false; } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php index be0c4ac4d..7f6bd804c 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php @@ -17,7 +17,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\DeadCode\Rector\ClassLike\RemoveAnnotationRector\RemoveAnnotationRectorTest */ diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveNullTagValueNodeRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveNullTagValueNodeRector.php new file mode 100644 index 000000000..bd073a580 --- /dev/null +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveNullTagValueNodeRector.php @@ -0,0 +1,150 @@ +docBlockUpdater = $docBlockUpdater; + $this->phpDocInfoFactory = $phpDocInfoFactory; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Remove @var/@param/@return null docblock', [new CodeSample(<<<'CODE_SAMPLE' +class SomeClass +{ + /** + * @return null + */ + public function foo() + { + return null; + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +class SomeClass +{ + public function foo() + { + return null; + } +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [ClassMethod::class, Function_::class, Expression::class, Property::class]; + } + /** + * @param ClassMethod|Function_|Expression|Property $node + */ + public function refactor(Node $node) : ?Node + { + if ($node instanceof Expression || $node instanceof Property) { + return $this->processVarTagNull($node); + } + $phpdocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); + $removedParamNames = []; + foreach ($node->params as $param) { + $paramName = $this->getName($param); + $paramTagValueNode = $phpdocInfo->getParamTagValueByName($paramName); + if ($paramTagValueNode instanceof ParamTagValueNode && $this->isNull($paramTagValueNode)) { + $removedParamNames[] = $paramTagValueNode->parameterName; + } + } + $hasRemoved = \false; + if ($removedParamNames !== []) { + $this->removeParamNullTag($phpdocInfo, $removedParamNames); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); + $hasRemoved = \true; + } + $returnTagValueNode = $phpdocInfo->getReturnTagValue(); + if ($returnTagValueNode instanceof ReturnTagValueNode && $this->isNull($returnTagValueNode)) { + $phpdocInfo->removeByType(ReturnTagValueNode::class); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); + $hasRemoved = \true; + } + if (!$hasRemoved) { + return null; + } + return $node; + } + /** + * @param \PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode|\PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode|\PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode $tag + */ + private function isNull($tag) : bool + { + return $tag->type instanceof IdentifierTypeNode && $tag->type->__toString() === 'null' && $tag->description === ''; + } + /** + * @param string[] $paramNames + */ + private function removeParamNullTag(PhpDocInfo $phpDocInfo, array $paramNames) : void + { + $phpDocNodeTraverser = new PhpDocNodeTraverser(); + $phpDocNodeTraverser->traverseWithCallable($phpDocInfo->getPhpDocNode(), '', static function (AstNode $astNode) use($paramNames) : ?int { + if (!$astNode instanceof PhpDocTagNode) { + return null; + } + if (!$astNode->value instanceof ParamTagValueNode) { + return null; + } + if (\in_array($astNode->value->parameterName, $paramNames, \true)) { + return PhpDocNodeTraverser::NODE_REMOVE; + } + return null; + }); + } + /** + * @param \PhpParser\Node\Stmt\Expression|\PhpParser\Node\Stmt\Property $node + */ + private function processVarTagNull($node) : ?Node + { + $phpdocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); + $varTagValueNode = $phpdocInfo->getVarTagValueNode(); + if ($varTagValueNode instanceof VarTagValueNode && $this->isNull($varTagValueNode)) { + $phpdocInfo->removeByType(VarTagValueNode::class); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node); + return $node; + } + return null; + } +} diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUselessParamTagRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUselessParamTagRector.php index eb35dda83..0679c1d9f 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUselessParamTagRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUselessParamTagRector.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Function_; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Core\Rector\AbstractRector; @@ -63,10 +64,10 @@ public function foo(string $a, string $b) */ public function getNodeTypes() : array { - return [ClassMethod::class]; + return [ClassMethod::class, Function_::class]; } /** - * @param ClassMethod $node + * @param ClassMethod|Function_ $node */ public function refactor(Node $node) : ?Node { diff --git a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnTagRector.php b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnTagRector.php index ff6e52452..27f46ef80 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnTagRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveUselessReturnTagRector.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Function_; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Comments\NodeDocBlock\DocBlockUpdater; use Rector\Core\Rector\AbstractRector; @@ -69,10 +70,10 @@ public function foo(): stdClass */ public function getNodeTypes() : array { - return [ClassMethod::class]; + return [ClassMethod::class, Function_::class]; } /** - * @param ClassMethod $node + * @param ClassMethod|Function_ $node */ public function refactor(Node $node) : ?Node { diff --git a/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php b/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php index 67231692c..3ea311853 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/If_/RemoveDeadInstanceOfRector.php @@ -5,6 +5,7 @@ use PhpParser\Node; use PhpParser\Node\Expr; +use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\BooleanNot; use PhpParser\Node\Expr\CallLike; use PhpParser\Node\Expr\Instanceof_; @@ -12,6 +13,7 @@ use PhpParser\Node\Expr\StaticPropertyFetch; use PhpParser\Node\Name; use PhpParser\Node\Stmt; +use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; use PhpParser\NodeTraverser; use PHPStan\Type\MixedType; @@ -98,6 +100,10 @@ private function refactorStmtAndInstanceof(If_ $if, Instanceof_ $instanceof) if ($this->shouldSkipFromNotTypedParam($instanceof)) { return null; } + if ($instanceof->expr instanceof Assign) { + $assignExpression = new Expression($instanceof->expr); + return \array_merge([$assignExpression], $if->stmts); + } if ($if->cond !== $instanceof) { return NodeTraverser::REMOVE_NODE; } diff --git a/vendor/rector/rector/rules/DeadCode/Rector/Switch_/RemoveDuplicatedCaseInSwitchRector.php b/vendor/rector/rector/rules/DeadCode/Rector/Switch_/RemoveDuplicatedCaseInSwitchRector.php index 9dcfd2cd4..d42dbe868 100644 --- a/vendor/rector/rector/rules/DeadCode/Rector/Switch_/RemoveDuplicatedCaseInSwitchRector.php +++ b/vendor/rector/rector/rules/DeadCode/Rector/Switch_/RemoveDuplicatedCaseInSwitchRector.php @@ -85,6 +85,9 @@ private function removeDuplicatedCases(Switch_ $switch) : void { $totalKeys = \count($switch->cases); foreach (\array_keys($switch->cases) as $key) { + if (isset($switch->cases[$key - 1]) && $switch->cases[$key - 1]->stmts === []) { + continue; + } $nextCases = []; for ($jumpToKey = $key + 1; $jumpToKey < $totalKeys; ++$jumpToKey) { if (!isset($switch->cases[$jumpToKey])) { diff --git a/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php b/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php index 9c0cc647a..d9ad66b00 100644 --- a/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php +++ b/vendor/rector/rector/rules/DeadCode/SideEffect/SideEffectNodeDetector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\DeadCode\SideEffect; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\ArrayDimFetch; diff --git a/vendor/rector/rector/rules/EarlyReturn/Rector/If_/ChangeAndIfToEarlyReturnRector.php b/vendor/rector/rector/rules/EarlyReturn/Rector/If_/ChangeAndIfToEarlyReturnRector.php index 5b530875a..6394fceab 100644 --- a/vendor/rector/rector/rules/EarlyReturn/Rector/If_/ChangeAndIfToEarlyReturnRector.php +++ b/vendor/rector/rector/rules/EarlyReturn/Rector/If_/ChangeAndIfToEarlyReturnRector.php @@ -7,6 +7,8 @@ use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\BooleanAnd; use PhpParser\Node\Expr\Closure; +use PhpParser\Node\Expr\ConstFetch; +use PhpParser\Node\Scalar; use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\Break_; use PhpParser\Node\Stmt\ClassMethod; @@ -128,6 +130,9 @@ public function refactor(Node $node) : ?Node continue; } $nextStmt = $stmts[$key + 1] ?? null; + if ($this->isComplexReturn($nextStmt)) { + return null; + } if ($this->shouldSkip($stmt, $nextStmt)) { $newStmts[] = $stmt; continue; @@ -222,4 +227,17 @@ private function isLastIfOrBeforeLastReturn(?Stmt $nextStmt) : bool } return $nextStmt instanceof Return_; } + private function isComplexReturn(?Stmt $stmt) : bool + { + if (!$stmt instanceof Return_) { + return \false; + } + if (!$stmt->expr instanceof Expr) { + return \false; + } + if ($stmt->expr instanceof ConstFetch) { + return \false; + } + return !$stmt->expr instanceof Scalar; + } } diff --git a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php index 2571a95e0..f58cd964c 100644 --- a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php +++ b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/InflectorSingularResolver.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Naming\ExpectedNameResolver; -use RectorPrefix202311\Doctrine\Inflector\Inflector; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Doctrine\Inflector\Inflector; +use RectorPrefix202312\Nette\Utils\Strings; use Rector\Core\Util\StringUtils; /** * @see \Rector\Core\Tests\Naming\ExpectedNameResolver\InflectorSingularResolverTest @@ -80,9 +80,10 @@ private function singularizeCamelParts(string $currentName) : string $camelCases = Strings::matchAll($currentName, self::CAMELCASE_REGEX); $resolvedName = ''; foreach ($camelCases as $camelCase) { - $value = $this->inflector->singularize($camelCase[self::CAMELCASE]); - if (\in_array($camelCase[self::CAMELCASE], ['is', 'has'], \true)) { + if (\in_array($camelCase[self::CAMELCASE], ['is', 'has', 'cms', 'this'], \true)) { $value = $camelCase[self::CAMELCASE]; + } else { + $value = $this->inflector->singularize($camelCase[self::CAMELCASE]); } $resolvedName .= $value; } diff --git a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/MatchParamTypeExpectedNameResolver.php b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/MatchParamTypeExpectedNameResolver.php index 207ffc74a..ccb2536bf 100644 --- a/vendor/rector/rector/rules/Naming/ExpectedNameResolver/MatchParamTypeExpectedNameResolver.php +++ b/vendor/rector/rector/rules/Naming/ExpectedNameResolver/MatchParamTypeExpectedNameResolver.php @@ -5,9 +5,9 @@ use PhpParser\Node\Param; use PHPStan\Type\ObjectType; -use PHPStan\Type\Type; use Rector\Naming\Naming\PropertyNaming; use Rector\Naming\ValueObject\ExpectedName; +use Rector\NodeTypeResolver\NodeTypeResolver; use Rector\StaticTypeMapper\StaticTypeMapper; final class MatchParamTypeExpectedNameResolver { @@ -21,10 +21,16 @@ final class MatchParamTypeExpectedNameResolver * @var \Rector\Naming\Naming\PropertyNaming */ private $propertyNaming; - public function __construct(StaticTypeMapper $staticTypeMapper, PropertyNaming $propertyNaming) + /** + * @readonly + * @var \Rector\NodeTypeResolver\NodeTypeResolver + */ + private $nodeTypeResolver; + public function __construct(StaticTypeMapper $staticTypeMapper, PropertyNaming $propertyNaming, NodeTypeResolver $nodeTypeResolver) { $this->staticTypeMapper = $staticTypeMapper; $this->propertyNaming = $propertyNaming; + $this->nodeTypeResolver = $nodeTypeResolver; } public function resolve(Param $param) : ?string { @@ -32,23 +38,16 @@ public function resolve(Param $param) : ?string if ($param->type === null) { return null; } - $staticType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($param->type); // include nullable too // skip date time + date time interface, as should be kept - if ($this->isDateTimeType($staticType)) { + if ($this->nodeTypeResolver->isObjectType($param->type, new ObjectType('DateTimeInterface'))) { return null; } + $staticType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($param->type); $expectedName = $this->propertyNaming->getExpectedNameFromType($staticType); if (!$expectedName instanceof ExpectedName) { return null; } return $expectedName->getName(); } - private function isDateTimeType(Type $type) : bool - { - if ($type->isSuperTypeOf(new ObjectType('DateTimeInterface'))->yes()) { - return \true; - } - return $type->isSuperTypeOf(new ObjectType('DateTime'))->yes(); - } } diff --git a/vendor/rector/rector/rules/Naming/Naming/ExpectedNameResolver.php b/vendor/rector/rector/rules/Naming/Naming/ExpectedNameResolver.php index 2260db565..bdd0076b6 100644 --- a/vendor/rector/rector/rules/Naming/Naming/ExpectedNameResolver.php +++ b/vendor/rector/rector/rules/Naming/Naming/ExpectedNameResolver.php @@ -119,7 +119,7 @@ public function resolveForCall($expr) : ?string return null; } $expectedName = $this->propertyNaming->getExpectedNameFromType($returnedType); - if ($expectedName !== null) { + if ($expectedName instanceof ExpectedName) { return $expectedName->getName(); } // call with args can return different value, so skip there if not sure about the type @@ -127,22 +127,22 @@ public function resolveForCall($expr) : ?string return null; } $expectedNameFromMethodName = $this->propertyNaming->getExpectedNameFromMethodName($name); - if ($expectedNameFromMethodName !== null) { + if ($expectedNameFromMethodName instanceof ExpectedName) { return $expectedNameFromMethodName->getName(); } return null; } public function resolveForForeach(VariableAndCallForeach $variableAndCallForeach) : ?string { - $expr = $variableAndCallForeach->getCall(); - if ($this->isDynamicNameCall($expr)) { + $call = $variableAndCallForeach->getCall(); + if ($this->isDynamicNameCall($call)) { return null; } - $name = $this->nodeNameResolver->getName($expr->name); + $name = $this->nodeNameResolver->getName($call->name); if ($name === null) { return null; } - $returnedType = $this->nodeTypeResolver->getType($expr); + $returnedType = $this->nodeTypeResolver->getType($call); if ($returnedType->isIterable()->no()) { return null; } @@ -168,7 +168,7 @@ public function resolveForForeach(VariableAndCallForeach $variableAndCallForeach } private function isReturnedTypeAnArrayAndExpectedNameFromTypeNotNull(Type $returnedType, ?ExpectedName $expectedName) : bool { - return $returnedType instanceof ArrayType && $expectedName !== null; + return $returnedType instanceof ArrayType && $expectedName instanceof ExpectedName; } /** * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\FuncCall $expr diff --git a/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php b/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php index 30bdc7119..9caf5c356 100644 --- a/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php +++ b/vendor/rector/rector/rules/Naming/Naming/PropertyNaming.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Naming\Naming; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PHPStan\Type\Generic\GenericObjectType; use PHPStan\Type\ObjectType; use PHPStan\Type\StaticType; diff --git a/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php b/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php index 300c425fb..8198a81e2 100644 --- a/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php +++ b/vendor/rector/rector/rules/Naming/Rector/Assign/RenameVariableToMatchMethodCallReturnTypeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Naming\Rector\Assign; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\Closure; diff --git a/vendor/rector/rector/rules/Naming/RectorNamingInflector.php b/vendor/rector/rector/rules/Naming/RectorNamingInflector.php index 5db9d5e39..f429f51a3 100644 --- a/vendor/rector/rector/rules/Naming/RectorNamingInflector.php +++ b/vendor/rector/rector/rules/Naming/RectorNamingInflector.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Naming; -use RectorPrefix202311\Doctrine\Inflector\Inflector; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Doctrine\Inflector\Inflector; +use RectorPrefix202312\Nette\Utils\Strings; final class RectorNamingInflector { /** diff --git a/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php b/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php index d0ee61b69..6c0d14982 100644 --- a/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php +++ b/vendor/rector/rector/rules/Php55/Rector/String_/StringClassNameToClassConstantRector.php @@ -18,7 +18,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/class_name_scalars https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md#form * @@ -31,6 +31,10 @@ final class StringClassNameToClassConstantRector extends AbstractRector implemen * @var \PHPStan\Reflection\ReflectionProvider */ private $reflectionProvider; + /** + * @var string + */ + public const SHOULD_KEEP_PRE_SLASH = 'should_keep_pre_slash'; /** * @var string */ @@ -39,6 +43,10 @@ final class StringClassNameToClassConstantRector extends AbstractRector implemen * @var string[] */ private $classesToSkip = []; + /** + * @var bool + */ + private $shouldKeepPreslash = \false; public function __construct(ReflectionProvider $reflectionProvider) { $this->reflectionProvider = $reflectionProvider; @@ -71,7 +79,7 @@ public function run() } } CODE_SAMPLE -, ['ClassName', 'AnotherClassName'])]); +, ['ClassName', 'AnotherClassName', \Rector\Php55\Rector\String_\StringClassNameToClassConstantRector::SHOULD_KEEP_PRE_SLASH => \false])]); } /** * @return array> @@ -116,7 +124,7 @@ public function refactor(Node $node) return null; } $fullyQualified = new FullyQualified($classLikeName); - if ($classLikeName !== $node->value) { + if ($this->shouldKeepPreslash && $classLikeName !== $node->value) { $preSlashCount = \strlen($node->value) - \strlen($classLikeName); $preSlash = \str_repeat('\\', $preSlashCount); $string = new String_($preSlash); @@ -129,6 +137,10 @@ public function refactor(Node $node) */ public function configure(array $configuration) : void { + if (isset($configuration[self::SHOULD_KEEP_PRE_SLASH]) && \is_bool($configuration[self::SHOULD_KEEP_PRE_SLASH])) { + $this->shouldKeepPreslash = $configuration[self::SHOULD_KEEP_PRE_SLASH]; + unset($configuration[self::SHOULD_KEEP_PRE_SLASH]); + } Assert::allString($configuration); $this->classesToSkip = $configuration; } diff --git a/vendor/rector/rector/rules/Php55/RegexMatcher.php b/vendor/rector/rector/rules/Php55/RegexMatcher.php index f1072d42f..e7f6d0633 100644 --- a/vendor/rector/rector/rules/Php55/RegexMatcher.php +++ b/vendor/rector/rector/rules/Php55/RegexMatcher.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php55; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\String_; diff --git a/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php b/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php index 9ebeeaecd..6e2c08888 100644 --- a/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php +++ b/vendor/rector/rector/rules/Php70/EregToPcreTransformer.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php70; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use Rector\Php70\Exception\InvalidEregException; /** * @changelog https://gist.github.com/lifthrasiir/704754/7e486f43e62fd1c9d3669330c251f8ca4a59a3f8 diff --git a/vendor/rector/rector/rules/Php70/Rector/FuncCall/RandomFunctionRector.php b/vendor/rector/rector/rules/Php70/Rector/FuncCall/RandomFunctionRector.php index fcdabd90f..cd9c2b179 100644 --- a/vendor/rector/rector/rules/Php70/Rector/FuncCall/RandomFunctionRector.php +++ b/vendor/rector/rector/rules/Php70/Rector/FuncCall/RandomFunctionRector.php @@ -21,10 +21,10 @@ final class RandomFunctionRector extends AbstractRector implements MinPhpVersion /** * @var array */ - private const OLD_TO_NEW_FUNCTION_NAMES = ['getrandmax' => 'mt_getrandmax', 'srand' => 'mt_srand', 'mt_rand' => 'random_int', 'rand' => 'random_int']; + private const OLD_TO_NEW_FUNCTION_NAMES = ['getrandmax' => 'mt_getrandmax', 'srand' => 'mt_srand', 'rand' => 'random_int']; public function getRuleDefinition() : RuleDefinition { - return new RuleDefinition('Changes rand, srand, mt_rand and getrandmax to newer alternatives.', [new CodeSample('rand();', 'random_int();')]); + return new RuleDefinition('Changes rand, srand, and getrandmax to newer alternatives', [new CodeSample('rand();', 'random_int();')]); } /** * @return array> diff --git a/vendor/rector/rector/rules/Php71/Rector/Assign/AssignArrayToStringRector.php b/vendor/rector/rector/rules/Php71/Rector/Assign/AssignArrayToStringRector.php index 36e0ee426..2fd96aad2 100644 --- a/vendor/rector/rector/rules/Php71/Rector/Assign/AssignArrayToStringRector.php +++ b/vendor/rector/rector/rules/Php71/Rector/Assign/AssignArrayToStringRector.php @@ -143,10 +143,14 @@ private function findSameNamedVariableAssigns(Variable $variable, $node) : array return []; } $assignedArrayDimFetches = []; - $this->traverseNodesWithCallable($node->stmts, function (Node $node) use($variableName, &$assignedArrayDimFetches) { + $this->traverseNodesWithCallable($node->stmts, function (Node $node) use($variable, $variableName, &$assignedArrayDimFetches) { if (!$node instanceof Assign) { return null; } + if ($this->isReAssignedAsArray($node, $variableName, $variable)) { + $assignedArrayDimFetches = []; + return NodeTraverser::STOP_TRAVERSAL; + } if (!$node->var instanceof ArrayDimFetch) { return null; } @@ -161,6 +165,16 @@ private function findSameNamedVariableAssigns(Variable $variable, $node) : array }); return $assignedArrayDimFetches; } + private function isReAssignedAsArray(Assign $assign, string $variableName, Variable $variable) : bool + { + if ($assign->var instanceof Variable && $this->isName($assign->var, $variableName) && $assign->var->getStartTokenPos() > $variable->getStartTokenPos()) { + $exprType = $this->nodeTypeResolver->getNativeType($assign->expr); + if ($exprType->isArray()->yes()) { + return \true; + } + } + return \false; + } /** * @param \PhpParser\Node\Stmt\Namespace_|\Rector\Core\PhpParser\Node\CustomNode\FileWithoutNamespace|\PhpParser\Node\Stmt\ClassMethod|\PhpParser\Node\Stmt\Function_|\PhpParser\Node\Expr\Closure $node */ diff --git a/vendor/rector/rector/rules/Php71/Rector/FuncCall/CountOnNullRector.php b/vendor/rector/rector/rules/Php71/Rector/FuncCall/CountOnNullRector.php deleted file mode 100644 index 422b2e552..000000000 --- a/vendor/rector/rector/rules/Php71/Rector/FuncCall/CountOnNullRector.php +++ /dev/null @@ -1,51 +0,0 @@ -> - */ - public function getNodeTypes() : array - { - return [FuncCall::class, Ternary::class]; - } - /** - * @param FuncCall|Ternary $node - * @return int|\PhpParser\Node\Expr\Ternary|null|\PhpParser\Node\Expr\FuncCall - */ - public function refactorWithScope(Node $node, Scope $scope) - { - \trigger_error(\sprintf('The "%s" rule is now deprecated as often reports false positives and requires custom refactoring of previous code. Use PHPStan to spot nullable arguments and refactor code to fit your use case.', self::class), \E_USER_ERROR); - } -} diff --git a/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php b/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php index 4b9a8edbc..7e25aea86 100644 --- a/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php +++ b/vendor/rector/rector/rules/Php72/NodeFactory/AnonymousFunctionFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php72\NodeFactory; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\ComplexType; use PhpParser\Node\Expr; @@ -38,13 +38,11 @@ use Rector\Core\PhpParser\Node\NodeFactory; use Rector\Core\PhpParser\Parser\InlineCodeParser; use Rector\Core\PhpParser\Parser\SimplePhpParser; -use Rector\Core\Util\Reflection\PrivatesAccessor; use Rector\NodeNameResolver\NodeNameResolver; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\StaticTypeMapper\StaticTypeMapper; -use ReflectionParameter; final class AnonymousFunctionFactory { /** @@ -82,11 +80,6 @@ final class AnonymousFunctionFactory * @var \Rector\Core\PhpParser\AstResolver */ private $astResolver; - /** - * @readonly - * @var \Rector\Core\Util\Reflection\PrivatesAccessor - */ - private $privatesAccessor; /** * @readonly * @var \Rector\Core\PhpParser\Parser\InlineCodeParser @@ -97,7 +90,7 @@ final class AnonymousFunctionFactory * @see https://regex101.com/r/jkLLlM/2 */ private const DIM_FETCH_REGEX = '#(\\$|\\\\|\\x0)(?\\d+)#'; - public function __construct(NodeNameResolver $nodeNameResolver, BetterNodeFinder $betterNodeFinder, NodeFactory $nodeFactory, StaticTypeMapper $staticTypeMapper, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, SimplePhpParser $simplePhpParser, AstResolver $astResolver, PrivatesAccessor $privatesAccessor, InlineCodeParser $inlineCodeParser) + public function __construct(NodeNameResolver $nodeNameResolver, BetterNodeFinder $betterNodeFinder, NodeFactory $nodeFactory, StaticTypeMapper $staticTypeMapper, SimpleCallableNodeTraverser $simpleCallableNodeTraverser, SimplePhpParser $simplePhpParser, AstResolver $astResolver, InlineCodeParser $inlineCodeParser) { $this->nodeNameResolver = $nodeNameResolver; $this->betterNodeFinder = $betterNodeFinder; @@ -106,7 +99,6 @@ public function __construct(NodeNameResolver $nodeNameResolver, BetterNodeFinder $this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser; $this->simplePhpParser = $simplePhpParser; $this->astResolver = $astResolver; - $this->privatesAccessor = $privatesAccessor; $this->inlineCodeParser = $inlineCodeParser; } /** @@ -245,7 +237,7 @@ private function createParams(PhpMethodReflection $phpMethodReflection, array $p $variable = new Variable($parameterReflection->getName()); $defaultExpr = $this->resolveParamDefaultExpr($parameterReflection, $key, $classMethod); $type = $this->resolveParamType($parameterReflection); - $byRef = $this->isParamByReference($parameterReflection); + $byRef = $parameterReflection->passedByReference()->yes(); $params[] = new Param($variable, $defaultExpr, $type, $byRef); } return $params; @@ -260,12 +252,6 @@ private function resolveParamType(ParameterReflection $parameterReflection) } return $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($parameterReflection->getType(), TypeKind::PARAM); } - private function isParamByReference(ParameterReflection $parameterReflection) : bool - { - /** @var ReflectionParameter $reflection */ - $reflection = $this->privatesAccessor->getPrivateProperty($parameterReflection, 'reflection'); - return $reflection->isPassedByReference(); - } private function resolveParamDefaultExpr(ParameterReflection $parameterReflection, int $key, ClassMethod $classMethod) : ?Expr { if (!$parameterReflection->getDefaultValue() instanceof Type) { diff --git a/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php b/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php index 2b92993c4..bb1863e60 100644 --- a/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php +++ b/vendor/rector/rector/rules/Php73/Rector/FuncCall/RegexDashEscapeRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Php73\Rector\FuncCall; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Scalar\String_; use Rector\Core\Rector\AbstractRector; diff --git a/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php b/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php index d5e0c514a..15260ec08 100644 --- a/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php +++ b/vendor/rector/rector/rules/Php74/Rector/LNumber/AddLiteralSeparatorToNumberRector.php @@ -14,7 +14,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/numeric_literal_separator * @changelog https://github.com/nikic/PHP-Parser/pull/615 @@ -75,7 +75,7 @@ public function run() } } CODE_SAMPLE -, [self::LIMIT_VALUE => 1000000])]); +, [\Rector\Php74\Rector\LNumber\AddLiteralSeparatorToNumberRector::LIMIT_VALUE => 1000000])]); } /** * @return array> diff --git a/vendor/rector/rector/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php b/vendor/rector/rector/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php index fd09b0171..bb84b9594 100644 --- a/vendor/rector/rector/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/ClassMethod/AddParamBasedOnParentClassMethodRector.php @@ -12,11 +12,13 @@ use PhpParser\Node\Name; use PhpParser\Node\Param; use PhpParser\Node\Stmt\ClassMethod; +use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\MethodReflection; use Rector\Core\PhpParser\AstResolver; use Rector\Core\PhpParser\Node\BetterNodeFinder; use Rector\Core\PhpParser\Printer\BetterStandardPrinter; use Rector\Core\Rector\AbstractRector; +use Rector\Core\Reflection\ReflectionResolver; use Rector\Core\ValueObject\MethodName; use Rector\Core\ValueObject\PhpVersionFeature; use Rector\NodeTypeResolver\Node\AttributeKey; @@ -50,12 +52,18 @@ final class AddParamBasedOnParentClassMethodRector extends AbstractRector implem * @var \Rector\Core\PhpParser\Node\BetterNodeFinder */ private $betterNodeFinder; - public function __construct(ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, AstResolver $astResolver, BetterStandardPrinter $betterStandardPrinter, BetterNodeFinder $betterNodeFinder) + /** + * @readonly + * @var \Rector\Core\Reflection\ReflectionResolver + */ + private $reflectionResolver; + public function __construct(ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard, AstResolver $astResolver, BetterStandardPrinter $betterStandardPrinter, BetterNodeFinder $betterNodeFinder, ReflectionResolver $reflectionResolver) { $this->parentClassMethodTypeOverrideGuard = $parentClassMethodTypeOverrideGuard; $this->astResolver = $astResolver; $this->betterStandardPrinter = $betterStandardPrinter; $this->betterNodeFinder = $betterNodeFinder; + $this->reflectionResolver = $reflectionResolver; } public function provideMinPhpVersion() : int { @@ -115,6 +123,13 @@ public function refactor(Node $node) : ?Node if ($parentMethodReflection->isPrivate()) { return null; } + $currentClassReflection = $this->reflectionResolver->resolveClassReflection($node); + $isPDO = $currentClassReflection instanceof ClassReflection && $currentClassReflection->isSubclassOf('PDO'); + // It relies on phpstorm stubs that define 2 kind of query method for both php 7.4 and php 8.0 + // @see https://github.com/JetBrains/phpstorm-stubs/blob/e2e898a29929d2f520fe95bdb2109d8fa895ba4a/PDO/PDO.php#L1096-L1126 + if ($isPDO && $parentMethodReflection->getName() === 'query') { + return null; + } $parentClassMethod = $this->astResolver->resolveClassMethodFromMethodReflection($parentMethodReflection); if (!$parentClassMethod instanceof ClassMethod) { return null; diff --git a/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php b/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php index 26ac71acb..6ebb22c34 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Class_/AnnotationToAttributeRector.php @@ -37,7 +37,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/attributes_v2 * @changelog https://wiki.php.net/rfc/new_in_initializers diff --git a/vendor/rector/rector/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php b/vendor/rector/rector/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php index 376668269..afc419232 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php @@ -144,7 +144,7 @@ public function __construct( } } CODE_SAMPLE -, [self::INLINE_PUBLIC => \false])]); +, [\Rector\Php80\Rector\Class_\ClassPropertyAssignToConstructorPromotionRector::INLINE_PUBLIC => \false])]); } public function configure(array $configuration) : void { diff --git a/vendor/rector/rector/rules/Php80/Rector/NotIdentical/StrContainsRector.php b/vendor/rector/rector/rules/Php80/Rector/NotIdentical/StrContainsRector.php index 4fc36b3b6..a14791031 100644 --- a/vendor/rector/rector/rules/Php80/Rector/NotIdentical/StrContainsRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/NotIdentical/StrContainsRector.php @@ -87,7 +87,7 @@ public function refactor(Node $node) : ?Node } if (isset($funcCall->getArgs()[2])) { $secondArg = $funcCall->getArgs()[2]; - if ($this->isName($funcCall->name, 'strpos') && $this->isPositiveInteger($secondArg->value)) { + if ($this->isName($funcCall->name, 'strpos') && !$this->isIntegerZero($secondArg->value)) { $funcCall->args[0] = new Arg($this->nodeFactory->createFuncCall('substr', [$funcCall->args[0], $secondArg])); } unset($funcCall->args[2]); @@ -127,11 +127,11 @@ private function matchIdenticalOrNotIdenticalToFalse($expr) : ?FuncCall } return null; } - private function isPositiveInteger(Expr $expr) : bool + private function isIntegerZero(Expr $expr) : bool { if (!$expr instanceof LNumber) { return \false; } - return $expr->value > 0; + return $expr->value === 0; } } diff --git a/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php b/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php index c86ad4870..17478d5f2 100644 --- a/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php +++ b/vendor/rector/rector/rules/Php80/Rector/Property/NestedAnnotationToAttributeRector.php @@ -29,7 +29,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Php80\Rector\Property\NestedAnnotationToAttributeRector\NestedAnnotationToAttributeRectorTest * diff --git a/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php b/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php index 65b6b4dbb..1f6e6f80f 100644 --- a/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php +++ b/vendor/rector/rector/rules/Php81/Rector/MethodCall/SpatieEnumMethodCallToEnumConstRector.php @@ -12,7 +12,7 @@ use Rector\Core\Rector\AbstractRector; use Rector\Core\ValueObject\PhpVersionFeature; use Rector\VersionBonding\Contract\MinPhpVersionInterface; -use RectorPrefix202311\Spatie\Enum\Enum; +use RectorPrefix202312\Spatie\Enum\Enum; use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; /** diff --git a/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php b/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php index 7a33d78b4..72c636e9b 100644 --- a/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php +++ b/vendor/rector/rector/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php @@ -15,7 +15,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Php82\Rector\Param\AddSensitiveParameterAttributeRector\AddSensitiveParameterAttributeRectorTest */ @@ -78,7 +78,7 @@ public function run(#[\SensitiveParameter] string $password) } } CODE_SAMPLE -, [self::SENSITIVE_PARAMETERS => ['password']])]); +, [\Rector\Php82\Rector\Param\AddSensitiveParameterAttributeRector::SENSITIVE_PARAMETERS => ['password']])]); } public function provideMinPhpVersion() : int { diff --git a/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php b/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php new file mode 100644 index 000000000..24f7b5970 --- /dev/null +++ b/vendor/rector/rector/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php @@ -0,0 +1,211 @@ +reflectionProvider = $reflectionProvider; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Add const to type', [new CodeSample(<<<'CODE_SAMPLE' +final class SomeClass +{ + public const TYPE = 'some_type'; +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +final class SomeClass +{ + public const string TYPE = 'some_type'; +} +CODE_SAMPLE +)]); + } + public function getNodeTypes() : array + { + return [Class_::class]; + } + /** + * @param Class_ $node + */ + public function refactor(Node $node) : ?\PhpParser\Node\Stmt\Class_ + { + if ($node->isAbstract()) { + return null; + } + $consts = \array_filter($node->stmts, static function (Node $node) : bool { + return $node instanceof ClassConst; + }); + if ($consts === []) { + return null; + } + try { + $parents = $this->getParents($node); + $implementations = $this->getImplementations($node); + $traits = $this->getTraits($node); + } catch (FullyQualifiedNameNotAutoloadedException $exception) { + return null; + } + $changes = \false; + foreach ($consts as $const) { + $valueType = null; + // If a type is set, skip + if ($const->type !== null) { + continue; + } + foreach ($const->consts as $constNode) { + if ($this->shouldSkipDueToInheritance($constNode, $parents, $implementations, $traits)) { + continue; + } + if ($this->canBeInheritied($const, $node)) { + continue; + } + $valueType = $this->findValueType($constNode->value); + } + if (!($valueType ?? null) instanceof Identifier) { + continue; + } + $const->type = $valueType; + $changes = \true; + } + if (!$changes) { + return null; + } + return $node; + } + public function provideMinPhpVersion() : int + { + return PhpVersionFeature::TYPED_CLASS_CONSTANTS; + } + /** + * @param ClassReflection[] $parents + * @param ClassReflection[] $implementations + * @param ClassReflection[] $traits + */ + public function shouldSkipDueToInheritance(Const_ $const, array $parents, array $implementations, array $traits) : bool + { + foreach ([$parents, $implementations, $traits] as $inheritance) { + foreach ($inheritance as $inheritanceItem) { + if ($const->name->name === '') { + continue; + } + try { + $inheritanceItem->getConstant($const->name->name); + return \true; + } catch (MissingConstantFromReflectionException $exception) { + } + } + } + return \false; + } + private function findValueType(Expr $expr) : ?Identifier + { + if ($expr instanceof String_) { + return new Identifier('string'); + } + if ($expr instanceof LNumber) { + return new Identifier('int'); + } + if ($expr instanceof DNumber) { + return new Identifier('float'); + } + if ($expr instanceof ConstFetch && $expr->name->toLowerString() !== 'null') { + return new Identifier('bool'); + } + if ($expr instanceof ConstFetch && $expr->name->toLowerString() === 'null') { + return new Identifier('null'); + } + if ($expr instanceof Array_) { + return new Identifier('array'); + } + return null; + } + /** + * @return ClassReflection[] + */ + private function getParents(Class_ $class) : array + { + $parents = \array_filter([$class->extends]); + return \array_map(function (Name $name) : ClassReflection { + if (!$name instanceof FullyQualified) { + throw new FullyQualifiedNameNotAutoloadedException($name); + } + if ($this->reflectionProvider->hasClass($name->toString())) { + return $this->reflectionProvider->getClass($name->toString()); + } + throw new FullyQualifiedNameNotAutoloadedException($name); + }, $parents); + } + /** + * @return ClassReflection[] + */ + private function getImplementations(Class_ $class) : array + { + return \array_map(function (Name $name) : ClassReflection { + if (!$name instanceof FullyQualified) { + throw new FullyQualifiedNameNotAutoloadedException($name); + } + if ($this->reflectionProvider->hasClass($name->toString())) { + return $this->reflectionProvider->getClass($name->toString()); + } + throw new FullyQualifiedNameNotAutoloadedException($name); + }, $class->implements); + } + /** + * @return ClassReflection[] + */ + private function getTraits(Class_ $class) : array + { + $traits = []; + foreach ($class->getTraitUses() as $traitUse) { + $traits = \array_merge($traits, $traitUse->traits); + } + return \array_map(function (Name $name) : ClassReflection { + if (!$name instanceof FullyQualified) { + throw new FullyQualifiedNameNotAutoloadedException($name); + } + if ($this->reflectionProvider->hasClass($name->toString())) { + return $this->reflectionProvider->getClass($name->toString()); + } + throw new FullyQualifiedNameNotAutoloadedException($name); + }, $traits); + } + private function canBeInheritied(ClassConst $classConst, Class_ $class) : bool + { + return !$class->isFinal() && !$classConst->isPrivate(); + } +} diff --git a/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php b/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php index 53395249e..f2afe5417 100644 --- a/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php +++ b/vendor/rector/rector/rules/Privatization/NodeManipulator/VisibilityManipulator.php @@ -9,7 +9,7 @@ use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Property; use Rector\Core\ValueObject\Visibility; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Privatization\NodeManipulator\VisibilityManipulatorTest */ @@ -116,6 +116,7 @@ public function makeReadonly($node) : void $this->addVisibilityFlag($node, Visibility::READONLY); } /** + * @api * @param \PhpParser\Node\Stmt\Class_|\PhpParser\Node\Stmt\Property|\PhpParser\Node\Param $node */ public function isReadonly($node) : bool diff --git a/vendor/rector/rector/rules/Privatization/Rector/ClassMethod/PrivatizeFinalClassMethodRector.php b/vendor/rector/rector/rules/Privatization/Rector/ClassMethod/PrivatizeFinalClassMethodRector.php index 618b128b5..a7ce859d8 100644 --- a/vendor/rector/rector/rules/Privatization/Rector/ClassMethod/PrivatizeFinalClassMethodRector.php +++ b/vendor/rector/rector/rules/Privatization/Rector/ClassMethod/PrivatizeFinalClassMethodRector.php @@ -4,10 +4,12 @@ namespace Rector\Privatization\Rector\ClassMethod; use PhpParser\Node; +use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; use PHPStan\Analyser\Scope; use PHPStan\Reflection\ClassReflection; +use Rector\Core\PhpParser\Node\BetterNodeFinder; use Rector\Core\Rector\AbstractScopeAwareRector; use Rector\Privatization\Guard\OverrideByParentClassGuard; use Rector\Privatization\NodeManipulator\VisibilityManipulator; @@ -34,11 +36,17 @@ final class PrivatizeFinalClassMethodRector extends AbstractScopeAwareRector * @var \Rector\Privatization\Guard\OverrideByParentClassGuard */ private $overrideByParentClassGuard; - public function __construct(ClassMethodVisibilityGuard $classMethodVisibilityGuard, VisibilityManipulator $visibilityManipulator, OverrideByParentClassGuard $overrideByParentClassGuard) + /** + * @readonly + * @var \Rector\Core\PhpParser\Node\BetterNodeFinder + */ + private $betterNodeFinder; + public function __construct(ClassMethodVisibilityGuard $classMethodVisibilityGuard, VisibilityManipulator $visibilityManipulator, OverrideByParentClassGuard $overrideByParentClassGuard, BetterNodeFinder $betterNodeFinder) { $this->classMethodVisibilityGuard = $classMethodVisibilityGuard; $this->visibilityManipulator = $visibilityManipulator; $this->overrideByParentClassGuard = $overrideByParentClassGuard; + $this->betterNodeFinder = $betterNodeFinder; } public function getRuleDefinition() : RuleDefinition { @@ -109,6 +117,16 @@ private function shouldSkipClassMethod(ClassMethod $classMethod) : bool if (\strncmp($methodName, 'createComponent', \strlen('createComponent')) === 0) { return \true; } - return !$classMethod->isProtected(); + if (!$classMethod->isProtected()) { + return \true; + } + // if has parent call, its probably overriding parent one → skip it + $hasParentCall = (bool) $this->betterNodeFinder->findFirst((array) $classMethod->stmts, function (Node $node) : bool { + if (!$node instanceof StaticCall) { + return \false; + } + return $this->isName($node->class, 'parent'); + }); + return $hasParentCall; } } diff --git a/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php b/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php index 4ed31d173..e080898c3 100644 --- a/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php +++ b/vendor/rector/rector/rules/Privatization/Rector/Class_/FinalizeClassesWithoutChildrenCollectorRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Privatization\Rector\Class_; -use RectorPrefix202311\Nette\Utils\Arrays; +use RectorPrefix202312\Nette\Utils\Arrays; use PhpParser\Node; use PhpParser\Node\Stmt\Class_; use PHPStan\Node\CollectedDataNode; diff --git a/vendor/rector/rector/rules/Privatization/Rector/MethodCall/PrivatizeLocalGetterToPropertyRector.php b/vendor/rector/rector/rules/Privatization/Rector/MethodCall/PrivatizeLocalGetterToPropertyRector.php index 82664a4b7..e4b631f39 100644 --- a/vendor/rector/rector/rules/Privatization/Rector/MethodCall/PrivatizeLocalGetterToPropertyRector.php +++ b/vendor/rector/rector/rules/Privatization/Rector/MethodCall/PrivatizeLocalGetterToPropertyRector.php @@ -68,10 +68,14 @@ public function refactor(Node $node) : ?Node { $class = $node; $hasChanged = \false; - $this->traverseNodesWithCallable($node, function (Node $node) use($class, &$hasChanged) : ?PropertyFetch { + $isFinal = $class->isFinal(); + $this->traverseNodesWithCallable($node, function (Node $node) use($class, &$hasChanged, $isFinal) : ?PropertyFetch { if (!$node instanceof MethodCall) { return null; } + if ($node->isFirstClassCallable()) { + return null; + } if (!$node->var instanceof Variable) { return null; } @@ -86,6 +90,9 @@ public function refactor(Node $node) : ?Node if (!$classMethod instanceof ClassMethod) { return null; } + if (!$classMethod->isPrivate() && !$isFinal) { + return null; + } $propertyFetch = $this->matchLocalPropertyFetchInGetterMethod($classMethod); if (!$propertyFetch instanceof PropertyFetch) { return null; diff --git a/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php b/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php index 37e177d82..083efd92e 100644 --- a/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/ClassMethod/ArgumentRemoverRector.php @@ -15,7 +15,7 @@ use Rector\Removing\ValueObject\ArgumentRemover; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\ClassMethod\ArgumentRemoverRector\ArgumentRemoverRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php index dc299b6af..cd7315e18 100644 --- a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveInterfacesRector.php @@ -9,7 +9,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\Class_\RemoveInterfacesRector\RemoveInterfacesRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php index bf99c163c..9cb502aa7 100644 --- a/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/Class_/RemoveTraitUseRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\Class_\RemoveTraitUseRector\RemoveTraitUseRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php index b0a06cd52..1dbb91ac6 100644 --- a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php @@ -11,7 +11,7 @@ use Rector\Removing\ValueObject\RemoveFuncCallArg; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\FuncCall\RemoveFuncCallArgRector\RemoveFuncCallArgRectorTest */ diff --git a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php index 808bbe427..8a3019e72 100644 --- a/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php +++ b/vendor/rector/rector/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Removing\Rector\FuncCall\RemoveFuncCallRector\RemoveFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/NodeManipulator/ClassRenamer.php b/vendor/rector/rector/rules/Renaming/NodeManipulator/ClassRenamer.php index e52f70275..49ced5528 100644 --- a/vendor/rector/rector/rules/Renaming/NodeManipulator/ClassRenamer.php +++ b/vendor/rector/rector/rules/Renaming/NodeManipulator/ClassRenamer.php @@ -115,7 +115,7 @@ public function __construct(BetterNodeFinder $betterNodeFinder, SimpleCallableNo public function renameNode(Node $node, array $oldToNewClasses, ?Scope $scope) : ?Node { $oldToNewTypes = $this->createOldToNewTypes($oldToNewClasses); - if ($node instanceof Name) { + if ($node instanceof FullyQualified) { return $this->refactorName($node, $oldToNewClasses); } $phpDocInfo = $this->phpDocInfoFactory->createFromNode($node); @@ -153,9 +153,9 @@ private function refactorPhpDoc(Node $node, array $oldToNewTypes, array $oldToNe } return \false; } - private function shouldSkip(string $newName, Name $name) : bool + private function shouldSkip(string $newName, FullyQualified $fullyQualified) : bool { - if ($name->getAttribute(AttributeKey::IS_STATICCALL_CLASS_NAME) === \true && $this->reflectionProvider->hasClass($newName)) { + if ($fullyQualified->getAttribute(AttributeKey::IS_STATICCALL_CLASS_NAME) === \true && $this->reflectionProvider->hasClass($newName)) { $classReflection = $this->reflectionProvider->getClass($newName); return $classReflection->isInterface(); } @@ -164,26 +164,23 @@ private function shouldSkip(string $newName, Name $name) : bool /** * @param array $oldToNewClasses */ - private function refactorName(Name $name, array $oldToNewClasses) : ?Name + private function refactorName(FullyQualified $fullyQualified, array $oldToNewClasses) : ?FullyQualified { - if ($name->getAttribute(AttributeKey::IS_NAMESPACE_NAME) === \true) { - return null; - } - $stringName = $this->nodeNameResolver->getName($name); + $stringName = $fullyQualified->toString(); $newName = $oldToNewClasses[$stringName] ?? null; if ($newName === null) { return null; } - if (!$this->isClassToInterfaceValidChange($name, $newName)) { + if (!$this->isClassToInterfaceValidChange($fullyQualified, $newName)) { return null; } // no need to preslash "use \SomeNamespace" of imported namespace - if ($name->getAttribute(AttributeKey::IS_USEUSE_NAME) === \true) { + if ($fullyQualified->getAttribute(AttributeKey::IS_USEUSE_NAME) === \true) { // no need to rename imports, they will be handled by autoimport and coding standard // also they might cause some rename return null; } - if ($this->shouldSkip($newName, $name)) { + if ($this->shouldSkip($newName, $fullyQualified)) { return null; } $this->renamedNameCollector->add($stringName); @@ -261,18 +258,18 @@ private function refactorClassLike(ClassLike $classLike, array $oldToNewClasses, * - implements SomeInterface * - implements SomeClass */ - private function isClassToInterfaceValidChange(Name $name, string $newClassName) : bool + private function isClassToInterfaceValidChange(FullyQualified $fullyQualified, string $newClassName) : bool { if (!$this->reflectionProvider->hasClass($newClassName)) { return \true; } $classReflection = $this->reflectionProvider->getClass($newClassName); // ensure new is not with interface - if ($name->getAttribute(AttributeKey::IS_NEW_INSTANCE_NAME) !== \true) { - return $this->isValidClassNameChange($name, $classReflection); + if ($fullyQualified->getAttribute(AttributeKey::IS_NEW_INSTANCE_NAME) !== \true) { + return $this->isValidClassNameChange($fullyQualified, $classReflection); } if (!$classReflection->isInterface()) { - return $this->isValidClassNameChange($name, $classReflection); + return $this->isValidClassNameChange($fullyQualified, $classReflection); } return \false; } @@ -327,9 +324,9 @@ private function changeNameToFullyQualifiedName(ClassLike $classLike) : void $node->setAttribute(AttributeKey::ORIGINAL_NODE, null); }); } - private function isValidClassNameChange(Name $name, ClassReflection $classReflection) : bool + private function isValidClassNameChange(FullyQualified $fullyQualified, ClassReflection $classReflection) : bool { - if ($name->getAttribute(AttributeKey::IS_CLASS_EXTENDS) === \true) { + if ($fullyQualified->getAttribute(AttributeKey::IS_CLASS_EXTENDS) === \true) { // is class to interface? if ($classReflection->isInterface()) { return \false; @@ -338,7 +335,7 @@ private function isValidClassNameChange(Name $name, ClassReflection $classReflec return \false; } } - if ($name->getAttribute(AttributeKey::IS_CLASS_IMPLEMENT) === \true) { + if ($fullyQualified->getAttribute(AttributeKey::IS_CLASS_IMPLEMENT) === \true) { // is interface to class? return !$classReflection->isClass(); } diff --git a/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php b/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php index f34b433be..6d15ea7d2 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ClassConstFetch/RenameClassConstFetchRector.php @@ -14,7 +14,7 @@ use Rector\Renaming\ValueObject\RenameClassConstFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ClassConstFetch\RenameClassConstFetchRector\RenameClassConstFetchRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php b/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php index 125277d04..7e1571833 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ClassMethod/RenameAnnotationRector.php @@ -18,7 +18,7 @@ use Rector\Renaming\ValueObject\RenameAnnotationByType; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ClassMethod\RenameAnnotationRector\RenameAnnotationRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php b/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php index 96aca4ebc..f36da3734 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/ConstFetch/RenameConstantRector.php @@ -11,7 +11,7 @@ use Rector\Core\Validation\RectorAssert; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\ConstFetch\RenameConstantRector\RenameConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php b/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php index c09453d11..79259e993 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/FuncCall/RenameFunctionRector.php @@ -12,7 +12,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\FuncCall\RenameFunctionRector\RenameFunctionRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php b/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php index bf9bc3e7e..4cd2a6a9b 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/MethodCall/RenameMethodRector.php @@ -24,7 +24,7 @@ use Rector\Renaming\ValueObject\MethodCallRenameWithArrayKey; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\MethodCall\RenameMethodRector\RenameMethodRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php b/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php index 102a05ef1..ca64923b8 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/Name/RenameClassRector.php @@ -5,20 +5,22 @@ use PhpParser\Node; use PhpParser\Node\FunctionLike; -use PhpParser\Node\Name; +use PhpParser\Node\Name\FullyQualified; use PhpParser\Node\Stmt\ClassLike; +use PhpParser\Node\Stmt\Declare_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\If_; use PhpParser\Node\Stmt\Namespace_; use PhpParser\Node\Stmt\Property; use Rector\Core\Configuration\RenamedClassesDataCollector; use Rector\Core\Contract\Rector\ConfigurableRectorInterface; +use Rector\Core\PhpParser\Node\CustomNode\FileWithoutNamespace; use Rector\Core\Rector\AbstractRector; use Rector\NodeTypeResolver\Node\AttributeKey; use Rector\Renaming\NodeManipulator\ClassRenamer; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\Name\RenameClassRector\RenameClassRectorTest */ @@ -34,11 +36,24 @@ final class RenameClassRector extends AbstractRector implements ConfigurableRect * @var \Rector\Renaming\NodeManipulator\ClassRenamer */ private $classRenamer; + /** + * @var bool + */ + private $isMayRequireRestructureNamespace = \false; public function __construct(RenamedClassesDataCollector $renamedClassesDataCollector, ClassRenamer $classRenamer) { $this->renamedClassesDataCollector = $renamedClassesDataCollector; $this->classRenamer = $classRenamer; } + /** + * @param Node[] $nodes + * @return Node[]|null + */ + public function beforeTraverse(array $nodes) : ?array + { + $this->isMayRequireRestructureNamespace = \false; + return parent::beforeTraverse($nodes); + } public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('Replaces defined classes by new ones.', [new ConfiguredCodeSample(<<<'CODE_SAMPLE' @@ -72,17 +87,21 @@ function someFunction(SomeNewClass $someOldClass): SomeNewClass */ public function getNodeTypes() : array { - return [Name::class, Property::class, FunctionLike::class, Expression::class, ClassLike::class, Namespace_::class, If_::class]; + return [FullyQualified::class, Property::class, FunctionLike::class, Expression::class, ClassLike::class, Namespace_::class, If_::class]; } /** - * @param FunctionLike|Name|ClassLike|Expression|Namespace_|Property|If_ $node + * @param FunctionLike|FullyQualified|ClassLike|Expression|Namespace_|Property|If_ $node */ public function refactor(Node $node) : ?Node { $oldToNewClasses = $this->renamedClassesDataCollector->getOldToNewClasses(); if ($oldToNewClasses !== []) { $scope = $node->getAttribute(AttributeKey::SCOPE); - return $this->classRenamer->renameNode($node, $oldToNewClasses, $scope); + $renameNode = $this->classRenamer->renameNode($node, $oldToNewClasses, $scope); + if ($renameNode instanceof Namespace_) { + $this->isMayRequireRestructureNamespace = \true; + } + return $renameNode; } return null; } @@ -95,4 +114,50 @@ public function configure(array $configuration) : void Assert::allString(\array_keys($configuration)); $this->renamedClassesDataCollector->addOldToNewClasses($configuration); } + /** + * @param Node[] $nodes + * @return null|Node[] + */ + public function afterTraverse(array $nodes) : ?array + { + if (!$this->isMayRequireRestructureNamespace) { + return parent::afterTraverse($nodes); + } + foreach ($nodes as $node) { + if ($node instanceof Namespace_) { + return parent::afterTraverse($nodes); + } + if (!$node instanceof FileWithoutNamespace) { + continue; + } + foreach ($node->stmts as $stmt) { + if ($stmt instanceof Namespace_) { + $this->restructureUnderNamespace($node); + return $node->stmts; + } + } + } + return parent::afterTraverse($nodes); + } + private function restructureUnderNamespace(FileWithoutNamespace $fileWithoutNamespace) : void + { + $stmtsBeforeNamespace = []; + foreach ($fileWithoutNamespace->stmts as $key => $stmt) { + if ($stmt instanceof Namespace_) { + if ($stmtsBeforeNamespace !== []) { + $stmt->stmts = \array_values(\array_merge(\is_array($stmtsBeforeNamespace) ? $stmtsBeforeNamespace : \iterator_to_array($stmtsBeforeNamespace), $stmt->stmts)); + } + break; + } + if ($stmt instanceof Declare_) { + continue; + } + $stmtsBeforeNamespace[] = $stmt; + unset($fileWithoutNamespace->stmts[$key]); + } + if ($stmtsBeforeNamespace === []) { + return; + } + $fileWithoutNamespace->stmts = \array_values($fileWithoutNamespace->stmts); + } } diff --git a/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php b/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php index cca06ed4f..e90381092 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/PropertyFetch/RenamePropertyRector.php @@ -15,7 +15,7 @@ use Rector\Renaming\ValueObject\RenameProperty; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\PropertyFetch\RenamePropertyRector\RenamePropertyRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php b/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php index 51d29a737..618b7ed04 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/StaticCall/RenameStaticMethodRector.php @@ -12,7 +12,7 @@ use Rector\Renaming\ValueObject\RenameStaticMethod; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Renaming\Rector\StaticCall\RenameStaticMethodRector\RenameStaticMethodRectorTest */ diff --git a/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php b/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php index efc0bd882..37090515d 100644 --- a/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php +++ b/vendor/rector/rector/rules/Renaming/Rector/String_/RenameStringRector.php @@ -10,7 +10,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://github.com/symfony/symfony/pull/35858 * diff --git a/vendor/rector/rector/rules/Strict/NodeFactory/ExactCompareFactory.php b/vendor/rector/rector/rules/Strict/NodeFactory/ExactCompareFactory.php index 79f957d98..4a9dcae86 100644 --- a/vendor/rector/rector/rules/Strict/NodeFactory/ExactCompareFactory.php +++ b/vendor/rector/rector/rules/Strict/NodeFactory/ExactCompareFactory.php @@ -34,10 +34,13 @@ public function __construct(NodeFactory $nodeFactory) /** * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BinaryOp\BooleanOr|\PhpParser\Node\Expr\BinaryOp\NotIdentical|\PhpParser\Node\Expr\BooleanNot|\PhpParser\Node\Expr\Instanceof_|\PhpParser\Node\Expr\BinaryOp\BooleanAnd|null */ - public function createIdenticalFalsyCompare(Type $exprType, Expr $expr, bool $treatAsNonEmpty) + public function createIdenticalFalsyCompare(Type $exprType, Expr $expr, bool $treatAsNonEmpty, bool $isOnlyString = \true) { if ($exprType->isString()->yes()) { - return new Identical($expr, new String_('')); + if ($treatAsNonEmpty || !$isOnlyString) { + return new Identical($expr, new String_('')); + } + return new BooleanOr(new Identical($expr, new String_('')), new Identical($expr, new String_('0'))); } if ($exprType->isInteger()->yes()) { return new Identical($expr, new LNumber(0)); @@ -54,15 +57,18 @@ public function createIdenticalFalsyCompare(Type $exprType, Expr $expr, bool $tr if (!$exprType instanceof UnionType) { return null; } - return $this->createTruthyFromUnionType($exprType, $expr, $treatAsNonEmpty); + return $this->createTruthyFromUnionType($exprType, $expr, $treatAsNonEmpty, \false); } /** * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\Instanceof_|\PhpParser\Node\Expr\BinaryOp\BooleanOr|\PhpParser\Node\Expr\BinaryOp\NotIdentical|\PhpParser\Node\Expr\BinaryOp\BooleanAnd|\PhpParser\Node\Expr\BooleanNot|null */ - public function createNotIdenticalFalsyCompare(Type $exprType, Expr $expr, bool $treatAsNotEmpty) + public function createNotIdenticalFalsyCompare(Type $exprType, Expr $expr, bool $treatAsNotEmpty, bool $isOnlyString = \true) { if ($exprType->isString()->yes()) { - return new NotIdentical($expr, new String_('')); + if ($treatAsNotEmpty || !$isOnlyString) { + return new NotIdentical($expr, new String_('')); + } + return new BooleanAnd(new NotIdentical($expr, new String_('')), new NotIdentical($expr, new String_('0'))); } if ($exprType->isInteger()->yes()) { return new NotIdentical($expr, new LNumber(0)); @@ -73,12 +79,12 @@ public function createNotIdenticalFalsyCompare(Type $exprType, Expr $expr, bool if (!$exprType instanceof UnionType) { return null; } - return $this->createFromUnionType($exprType, $expr, $treatAsNotEmpty); + return $this->createFromUnionType($exprType, $expr, $treatAsNotEmpty, \false); } /** * @return \PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\Instanceof_|\PhpParser\Node\Expr\BinaryOp\BooleanOr|\PhpParser\Node\Expr\BinaryOp\NotIdentical|\PhpParser\Node\Expr\BinaryOp\BooleanAnd|\PhpParser\Node\Expr\BooleanNot|null */ - private function createFromUnionType(UnionType $unionType, Expr $expr, bool $treatAsNotEmpty) + private function createFromUnionType(UnionType $unionType, Expr $expr, bool $treatAsNotEmpty, bool $isOnlyString) { $unionType = TypeCombinator::removeNull($unionType); if ($unionType->isBoolean()->yes()) { @@ -92,10 +98,17 @@ private function createFromUnionType(UnionType $unionType, Expr $expr, bool $tre if ($unionType instanceof UnionType) { return $this->resolveFromCleanedNullUnionType($unionType, $expr, $treatAsNotEmpty); } - $compareExpr = $this->createNotIdenticalFalsyCompare($unionType, $expr, $treatAsNotEmpty); + $compareExpr = $this->createNotIdenticalFalsyCompare($unionType, $expr, $treatAsNotEmpty, $isOnlyString); if (!$compareExpr instanceof Expr) { return null; } + if ($treatAsNotEmpty) { + return new BooleanAnd($toNullNotIdentical, $compareExpr); + } + if ($unionType->isString()->yes()) { + $booleanAnd = new BooleanAnd($toNullNotIdentical, $compareExpr); + return new BooleanAnd($booleanAnd, new NotIdentical($expr, new String_('0'))); + } return new BooleanAnd($toNullNotIdentical, $compareExpr); } /** @@ -163,7 +176,7 @@ private function createBooleanAnd(array $compareExprs) /** * @return \PhpParser\Node\Expr\BinaryOp\BooleanOr|\PhpParser\Node\Expr\BinaryOp\NotIdentical|\PhpParser\Node\Expr\BinaryOp\Identical|\PhpParser\Node\Expr\BooleanNot|\PhpParser\Node\Expr\Instanceof_|\PhpParser\Node\Expr\BinaryOp\BooleanAnd|null */ - private function createTruthyFromUnionType(UnionType $unionType, Expr $expr, bool $treatAsNonEmpty) + private function createTruthyFromUnionType(UnionType $unionType, Expr $expr, bool $treatAsNonEmpty, bool $isOnlyString) { $unionType = $this->cleanUpPossibleNullableUnionType($unionType); if ($unionType instanceof UnionType) { @@ -181,10 +194,14 @@ private function createTruthyFromUnionType(UnionType $unionType, Expr $expr, boo return $toNullIdentical; } // assume we have to check empty string, integer and bools - $scalarFalsyIdentical = $this->createIdenticalFalsyCompare($unionType, $expr, $treatAsNonEmpty); + $scalarFalsyIdentical = $this->createIdenticalFalsyCompare($unionType, $expr, $treatAsNonEmpty, $isOnlyString); if (!$scalarFalsyIdentical instanceof Expr) { return null; } + if ($unionType->isString()->yes()) { + $booleanOr = new BooleanOr($toNullIdentical, $scalarFalsyIdentical); + return new BooleanOr($booleanOr, new Identical($expr, new String_('0'))); + } return new BooleanOr($toNullIdentical, $scalarFalsyIdentical); } } diff --git a/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php index b357e7ad8..c87e088a1 100644 --- a/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php +++ b/vendor/rector/rector/rules/Strict/Rector/AbstractFalsyScalarRuleFixerRector.php @@ -5,7 +5,7 @@ use Rector\Core\Contract\Rector\ConfigurableRectorInterface; use Rector\Core\Rector\AbstractScopeAwareRector; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Strict\Rector\BooleanNot\BooleanInBooleanNotRuleFixerRector\BooleanInBooleanNotRuleFixerRectorTest * diff --git a/vendor/rector/rector/rules/Strict/Rector/BooleanNot/BooleanInBooleanNotRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/BooleanNot/BooleanInBooleanNotRuleFixerRector.php index 94c5b8dbb..976c3d7f1 100644 --- a/vendor/rector/rector/rules/Strict/Rector/BooleanNot/BooleanInBooleanNotRuleFixerRector.php +++ b/vendor/rector/rector/rules/Strict/Rector/BooleanNot/BooleanInBooleanNotRuleFixerRector.php @@ -57,7 +57,7 @@ public function run(string|null $name) } } CODE_SAMPLE -, [self::TREAT_AS_NON_EMPTY => \true])]); +, [\Rector\Strict\Rector\BooleanNot\BooleanInBooleanNotRuleFixerRector::TREAT_AS_NON_EMPTY => \true])]); } /** * @return array> diff --git a/vendor/rector/rector/rules/Strict/Rector/Empty_/DisallowedEmptyRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/Empty_/DisallowedEmptyRuleFixerRector.php index ae4d15b5b..65dddb44f 100644 --- a/vendor/rector/rector/rules/Strict/Rector/Empty_/DisallowedEmptyRuleFixerRector.php +++ b/vendor/rector/rector/rules/Strict/Rector/Empty_/DisallowedEmptyRuleFixerRector.php @@ -58,7 +58,7 @@ public function run(array $items) } } CODE_SAMPLE -, [self::TREAT_AS_NON_EMPTY => \false])]); +, [\Rector\Strict\Rector\Empty_\DisallowedEmptyRuleFixerRector::TREAT_AS_NON_EMPTY => \false])]); } /** * @return array> diff --git a/vendor/rector/rector/rules/Strict/Rector/If_/BooleanInIfConditionRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/If_/BooleanInIfConditionRuleFixerRector.php index 054512b63..eb6d904db 100644 --- a/vendor/rector/rector/rules/Strict/Rector/If_/BooleanInIfConditionRuleFixerRector.php +++ b/vendor/rector/rector/rules/Strict/Rector/If_/BooleanInIfConditionRuleFixerRector.php @@ -58,7 +58,7 @@ public function run(string $name) } } CODE_SAMPLE -, [self::TREAT_AS_NON_EMPTY => \false])]); +, [\Rector\Strict\Rector\If_\BooleanInIfConditionRuleFixerRector::TREAT_AS_NON_EMPTY => \false])]); } /** * @return array> diff --git a/vendor/rector/rector/rules/Strict/Rector/Ternary/BooleanInTernaryOperatorRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/Ternary/BooleanInTernaryOperatorRuleFixerRector.php index e665a3951..d042fe867 100644 --- a/vendor/rector/rector/rules/Strict/Rector/Ternary/BooleanInTernaryOperatorRuleFixerRector.php +++ b/vendor/rector/rector/rules/Strict/Rector/Ternary/BooleanInTernaryOperatorRuleFixerRector.php @@ -49,7 +49,7 @@ public function run(array $data) } } CODE_SAMPLE -, [self::TREAT_AS_NON_EMPTY => \false])]); +, [\Rector\Strict\Rector\Ternary\BooleanInTernaryOperatorRuleFixerRector::TREAT_AS_NON_EMPTY => \false])]); } /** * @return array> diff --git a/vendor/rector/rector/rules/Strict/Rector/Ternary/DisallowedShortTernaryRuleFixerRector.php b/vendor/rector/rector/rules/Strict/Rector/Ternary/DisallowedShortTernaryRuleFixerRector.php index 8c62c7153..4c11a3132 100644 --- a/vendor/rector/rector/rules/Strict/Rector/Ternary/DisallowedShortTernaryRuleFixerRector.php +++ b/vendor/rector/rector/rules/Strict/Rector/Ternary/DisallowedShortTernaryRuleFixerRector.php @@ -54,7 +54,7 @@ public function run(array $array) } } CODE_SAMPLE -, [self::TREAT_AS_NON_EMPTY => \false])]); +, [\Rector\Strict\Rector\Ternary\DisallowedShortTernaryRuleFixerRector::TREAT_AS_NON_EMPTY => \false])]); } /** * @return array> diff --git a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php index 8f9fd8f7a..df68f6494 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyAssignToMethodCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\PropertyAssignToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\Assign\PropertyAssignToMethodCallRector\PropertyAssignToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php index 3e56da838..5f2fd780d 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Assign/PropertyFetchToMethodCallRector.php @@ -13,7 +13,7 @@ use Rector\Transform\ValueObject\PropertyFetchToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\Assign\PropertyFetchToMethodCallRector\PropertyFetchToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php index acb8e1dea..27bb18200 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Attribute/AttributeKeyToClassConstFetchRector.php @@ -4,8 +4,10 @@ namespace Rector\Transform\Rector\Attribute; use PhpParser\Node; +use PhpParser\Node\Arg; use PhpParser\Node\AttributeGroup; use PhpParser\Node\Expr\ArrowFunction; +use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Identifier; use PhpParser\Node\Param; @@ -20,7 +22,7 @@ use Rector\Transform\ValueObject\AttributeKeyToClassConstFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://github.com/doctrine/dbal/blob/3.1.x/src/Types/Types.php * @@ -116,16 +118,25 @@ private function processToClassConstFetch(AttributeGroup $attributeGroup, Attrib if (!$this->isName($argName, $attributeKeyToClassConstFetch->getAttributeKey())) { continue; } - $value = $this->valueResolver->getValue($arg->value); - $constName = $attributeKeyToClassConstFetch->getValuesToConstantsMap()[$value] ?? null; - if ($constName === null) { - continue; + if ($this->processArg($arg, $attributeKeyToClassConstFetch)) { + $hasChanged = \true; } - $arg->value = $this->nodeFactory->createClassConstFetch($attributeKeyToClassConstFetch->getConstantClass(), $constName); - $hasChanged = \true; - continue 2; } } return $hasChanged; } + private function processArg(Arg $arg, AttributeKeyToClassConstFetch $attributeKeyToClassConstFetch) : bool + { + $value = $this->valueResolver->getValue($arg->value); + $constName = $attributeKeyToClassConstFetch->getValuesToConstantsMap()[$value] ?? null; + if ($constName === null) { + return \false; + } + $newValue = $this->nodeFactory->createClassConstFetch($attributeKeyToClassConstFetch->getConstantClass(), $constName); + if ($arg->value instanceof ClassConstFetch && $this->getName($arg->value) === $this->getName($newValue)) { + return \false; + } + $arg->value = $newValue; + return \true; + } } diff --git a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php index 082519bbf..99a360dfb 100644 --- a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/ReturnTypeWillChangeRector.php @@ -17,7 +17,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\ClassMethod\ReturnTypeWillChangeRector\ReturnTypeWillChangeRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php index 7ba76d6db..301694a0d 100644 --- a/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/ClassMethod/WrapReturnRector.php @@ -14,7 +14,7 @@ use Rector\Transform\ValueObject\WrapReturn; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\ClassMethod\WrapReturnRector\WrapReturnRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php index a40b570b4..c996479ec 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/AddAllowDynamicPropertiesAttributeRector.php @@ -18,7 +18,7 @@ use Rector\VersionBonding\Contract\MinPhpVersionInterface; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://wiki.php.net/rfc/deprecate_dynamic_properties * diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php index bf05638a7..91f9d17c0 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/AddInterfaceByTraitRector.php @@ -12,7 +12,7 @@ use Rector\Core\Rector\AbstractScopeAwareRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @api used in rector-doctrine * @see \Rector\Tests\Transform\Rector\Class_\AddInterfaceByTraitRector\AddInterfaceByTraitRectorTest diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php index e6779dcf2..361f755b6 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/MergeInterfacesRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * Covers cases like * - https://github.com/FriendsOfPHP/PHP-CS-Fixer/commit/a1cdb4d2dd8f45d731244eed406e1d537218cc66 diff --git a/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php b/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php index 8f4fbda53..5b6f38cf7 100644 --- a/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/Class_/ParentClassToTraitsRector.php @@ -14,7 +14,7 @@ use Rector\Transform\ValueObject\ParentClassToTraits; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * Can handle cases like: * - https://doc.nette.org/en/2.4/migration-2-4#toc-nette-smartobject diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php index 58ff86e12..c18f4adc0 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToConstFetchRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToConstFetchRector\FunctionCallToConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php index 53c8b87ce..7419e2b43 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToMethodCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\FuncCallToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToMethodCallRector\FuncCallToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php index 8e0119e22..36bc50514 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToNewRector.php @@ -11,7 +11,7 @@ use Rector\Core\Rector\AbstractRector; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToNewRector\FuncCallToNewRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php index 098c194f1..8d54d369a 100644 --- a/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/FuncCall/FuncCallToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\FuncCallToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\FuncCall\FuncCallToStaticCallRector\FuncCallToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php index 8d269f70a..3169f29b5 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php @@ -13,7 +13,7 @@ use Rector\Transform\ValueObject\MethodCallToFuncCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToFuncCallRector\MethodCallToFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php index eb27dfddf..c7e48706e 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\MethodCallToPropertyFetch; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToPropertyFetchRector\MethodCallToPropertyFetchRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php index 1d6b68c90..7d08f3270 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\MethodCallToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\MethodCallToStaticCallRector\MethodCallToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php b/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php index ba689a60e..33905fc06 100644 --- a/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/MethodCall/ReplaceParentCallByPropertyCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\ReplaceParentCallByPropertyCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\MethodCall\ReplaceParentCallByPropertyCallRector\ReplaceParentCallByPropertyCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php b/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php index c6ffa63d2..d235568a2 100644 --- a/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/New_/NewToStaticCallRector.php @@ -10,7 +10,7 @@ use Rector\Transform\ValueObject\NewToStaticCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\New_\NewToStaticCallRector\NewToStaticCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php index e08d71058..f9a5efe89 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToFuncCallRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\StaticCallToFuncCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\StaticCall\StaticCallToFuncCallRector\StaticCallToFuncCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php index 205dd6314..fd7c1c854 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToMethodCallRector.php @@ -17,7 +17,7 @@ use Rector\Transform\ValueObject\StaticCallToMethodCall; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\StaticCall\StaticCallToMethodCallRector\StaticCallToMethodCallRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php index 4f88b9964..433c12b7c 100644 --- a/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/StaticCall/StaticCallToNewRector.php @@ -12,7 +12,7 @@ use Rector\Transform\ValueObject\StaticCallToNew; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://github.com/symfony/symfony/pull/35308 * diff --git a/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php b/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php index 4022fc55e..c0f075839 100644 --- a/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php +++ b/vendor/rector/rector/rules/Transform/Rector/String_/StringToClassConstantRector.php @@ -11,7 +11,7 @@ use Rector\Transform\ValueObject\StringToClassConstant; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Transform\Rector\String_\StringToClassConstantRector\StringToClassConstantRectorTest */ diff --git a/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php b/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php index 8822d8692..2520c2c3d 100644 --- a/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php +++ b/vendor/rector/rector/rules/Transform/ValueObject/ParentClassToTraits.php @@ -4,7 +4,7 @@ namespace Rector\Transform\ValueObject; use Rector\Core\Validation\RectorAssert; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; final class ParentClassToTraits { /** diff --git a/vendor/rector/rector/rules/TypeDeclaration/AlreadyAssignDetector/ConstructorAssignDetector.php b/vendor/rector/rector/rules/TypeDeclaration/AlreadyAssignDetector/ConstructorAssignDetector.php index 2f85d3312..5cb298f6f 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/AlreadyAssignDetector/ConstructorAssignDetector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/AlreadyAssignDetector/ConstructorAssignDetector.php @@ -6,9 +6,15 @@ use PhpParser\Node; use PhpParser\Node\Expr; use PhpParser\Node\Expr\Assign; +use PhpParser\Node\Expr\PropertyFetch; +use PhpParser\Node\Identifier; +use PhpParser\Node\Stmt; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Else_; use PhpParser\Node\Stmt\Expression; +use PhpParser\Node\Stmt\If_; +use PhpParser\NodeFinder; use PhpParser\NodeTraverser; use PHPStan\Type\ObjectType; use Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer; @@ -66,12 +72,21 @@ public function isPropertyAssigned(ClassLike $classLike, string $propertyName) : $this->decorateFirstLevelStatementAttribute($initializeClassMethods); foreach ($initializeClassMethods as $initializeClassMethod) { $this->simpleCallableNodeTraverser->traverseNodesWithCallable((array) $initializeClassMethod->stmts, function (Node $node) use($propertyName, &$isAssignedInConstructor) : ?int { + if ($this->isIfElseAssign($node, $propertyName)) { + $isAssignedInConstructor = \true; + return NodeTraverser::STOP_TRAVERSAL; + } $expr = $this->matchAssignExprToPropertyName($node, $propertyName); if (!$expr instanceof Expr) { return null; } /** @var Assign $assign */ $assign = $node; + // is merged in assign? + if ($this->isPropertyUsedInAssign($assign, $propertyName)) { + $isAssignedInConstructor = \false; + return NodeTraverser::STOP_TRAVERSAL; + } $isFirstLevelStatement = $assign->getAttribute(self::IS_FIRST_LEVEL_STATEMENT); // cannot be nested if ($isFirstLevelStatement !== \true) { @@ -86,6 +101,31 @@ public function isPropertyAssigned(ClassLike $classLike, string $propertyName) : } return $isAssignedInConstructor; } + /** + * @param Stmt[] $stmts + */ + private function isAssignedInStmts(array $stmts, string $propertyName) : bool + { + $isAssigned = \false; + foreach ($stmts as $stmt) { + // non Expression can be on next stmt + if (!$stmt instanceof Expression) { + $isAssigned = \false; + break; + } + if ($this->matchAssignExprToPropertyName($stmt->expr, $propertyName) instanceof Expr) { + $isAssigned = \true; + } + } + return $isAssigned; + } + private function isIfElseAssign(Node $node, string $propertyName) : bool + { + if (!$node instanceof If_ || $node->elseifs !== [] || !$node->else instanceof Else_) { + return \false; + } + return $this->isAssignedInStmts($node->stmts, $propertyName) && $this->isAssignedInStmts($node->else->stmts, $propertyName); + } private function matchAssignExprToPropertyName(Node $node, string $propertyName) : ?Expr { if (!$node instanceof Assign) { @@ -136,4 +176,17 @@ private function matchInitializeClassMethod(ClassLike $classLike) : array } return $initializingClassMethods; } + private function isPropertyUsedInAssign(Assign $assign, string $propertyName) : bool + { + $nodeFinder = new NodeFinder(); + return (bool) $nodeFinder->findFirst($assign->expr, static function (Node $node) use($propertyName) : ?bool { + if (!$node instanceof PropertyFetch) { + return null; + } + if (!$node->name instanceof Identifier) { + return null; + } + return $node->name->toString() === $propertyName; + }); + } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php index 968bdf2ad..788b0709b 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/NodeAnalyzer/AutowiredClassMethodOrPropertyAnalyzer.php @@ -8,7 +8,7 @@ use PhpParser\Node\Stmt\Property; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer; -use RectorPrefix202311\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202312\Symfony\Contracts\Service\Attribute\Required; final class AutowiredClassMethodOrPropertyAnalyzer { /** diff --git a/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php b/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php index ffce64a7f..20020ebe5 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php +++ b/vendor/rector/rector/rules/TypeDeclaration/PHPStan/ObjectTypeSpecifier.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\TypeDeclaration\PHPStan; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\GroupUse; diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php index cdac5a39b..569975d17 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeBasedOnPHPUnitDataProviderRector.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\TypeDeclaration\Rector\ClassMethod; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node; use PhpParser\Node\Attribute; use PhpParser\Node\AttributeGroup; diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php index f69687278..57dcb8321 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddParamTypeDeclarationRector.php @@ -21,7 +21,7 @@ use Rector\TypeDeclaration\ValueObject\AddParamTypeDeclaration; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\AddParamTypeDeclarationRector\AddParamTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php index 3d676a724..0837c95a7 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddReturnTypeDeclarationRector.php @@ -20,7 +20,7 @@ use Rector\VendorLocker\ParentClassMethodTypeOverrideGuard; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\ClassMethod\AddReturnTypeDeclarationRector\AddReturnTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php index 0508367ae..2aa06f4b3 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/AddVoidReturnTypeWhereNoReturnRector.php @@ -115,7 +115,7 @@ private function shouldSkipClassMethod($functionLike) : bool if ($functionLike->isProtected()) { return !$this->isInsideFinalClass($functionLike); } - return \false; + return $this->isInsideAbstractClass($functionLike) && $functionLike->getStmts() === []; } private function isInsideFinalClass(ClassMethod $classMethod) : bool { @@ -125,4 +125,12 @@ private function isInsideFinalClass(ClassMethod $classMethod) : bool } return $classReflection->isFinalByKeyword(); } + private function isInsideAbstractClass(ClassMethod $classMethod) : bool + { + $classReflection = $this->reflectionResolver->resolveClassReflection($classMethod); + if (!$classReflection instanceof ClassReflection) { + return \false; + } + return $classReflection->isAbstract(); + } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ParamTypeByMethodCallTypeRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ParamTypeByMethodCallTypeRector.php index 24235b7ca..e040c8885 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ParamTypeByMethodCallTypeRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ParamTypeByMethodCallTypeRector.php @@ -163,13 +163,13 @@ private function mirrorParamType(Param $decoratedParam, $paramType) : void } private function shouldSkipParam(Param $param, ClassMethod $classMethod) : bool { - if (!$this->paramTypeAddGuard->isLegal($param, $classMethod)) { + // already has type, skip + if ($param->type !== null) { return \true; } if ($param->variadic) { return \true; } - // already has type, skip - return $param->type !== null; + return !$this->paramTypeAddGuard->isLegal($param, $classMethod); } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php index 31b486da8..5615d117c 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/ReturnTypeFromStrictNativeCallRector.php @@ -99,7 +99,7 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node foreach ($nativeCallLikes as $nativeCallLike) { $callLikeTypes[] = $this->getType($nativeCallLike); } - $returnType = $this->typeFactory->createMixedPassedOrUnionType($callLikeTypes); + $returnType = $this->typeFactory->createMixedPassedOrUnionTypeAndKeepConstant($callLikeTypes); if ($returnType instanceof MixedType) { return null; } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php index a28a4181a..58beb0a3c 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php @@ -4,9 +4,11 @@ namespace Rector\TypeDeclaration\Rector\ClassMethod; use PhpParser\Node; +use PhpParser\Node\Expr; use PhpParser\Node\Expr\ArrayDimFetch; use PhpParser\Node\Expr\AssignOp\Coalesce as AssignOpCoalesce; use PhpParser\Node\Expr\BinaryOp\Coalesce; +use PhpParser\Node\Expr\Cast\Array_; use PhpParser\Node\Expr\Closure; use PhpParser\Node\Expr\FuncCall; use PhpParser\Node\Expr\MethodCall; @@ -16,6 +18,7 @@ use PhpParser\Node\Param; use PhpParser\Node\Stmt\Class_; use PhpParser\Node\Stmt\ClassMethod; +use PhpParser\Node\Stmt\Echo_; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Function_; use PhpParser\NodeTraverser; @@ -79,6 +82,9 @@ public function refactor(Node $node) : ?Node if ($param->type instanceof Node) { continue; } + if ($param->default instanceof Expr && !$this->getType($param->default)->isArray()->yes()) { + continue; + } if (!$this->isParamAccessedArrayDimFetch($param, $node)) { continue; } @@ -128,6 +134,18 @@ private function isParamAccessedArrayDimFetch(Param $param, $functionLike) : boo }); return $isParamAccessedArrayDimFetch; } + private function isEchoed(Node $node, string $paramName) : bool + { + if (!$node instanceof Echo_) { + return \false; + } + foreach ($node->exprs as $expr) { + if ($expr instanceof Variable && $this->isName($expr, $paramName)) { + return \true; + } + } + return \false; + } private function shouldStop(Node $node, string $paramName) : bool { $nodeToCheck = null; @@ -144,12 +162,29 @@ private function shouldStop(Node $node, string $paramName) : bool if ($node instanceof AssignOpCoalesce) { $nodeToCheck = $node->var; } - if ($nodeToCheck instanceof MethodCall) { - return $nodeToCheck->var instanceof Variable && $this->isName($nodeToCheck->var, $paramName); + if ($this->isMethodCallOrArrayDimFetch($paramName, $nodeToCheck)) { + return \true; + } + if ($nodeToCheck instanceof Variable && $this->isName($nodeToCheck, $paramName)) { + return \true; + } + return $this->isEchoedOrCasted($node, $paramName); + } + private function isEchoedOrCasted(Node $node, string $paramName) : bool + { + if ($this->isEchoed($node, $paramName)) { + return \true; + } + return $node instanceof Array_ && $node->expr instanceof Variable && $node->expr->name === $paramName; + } + private function isMethodCallOrArrayDimFetch(string $paramName, ?Node $node) : bool + { + if ($node instanceof MethodCall) { + return $node->var instanceof Variable && $this->isName($node->var, $paramName); } - if ($nodeToCheck instanceof ArrayDimFetch) { - return $nodeToCheck->var instanceof Variable && $this->isName($nodeToCheck->var, $paramName); + if ($node instanceof ArrayDimFetch) { + return $node->var instanceof Variable && $this->isName($node->var, $paramName); } - return $nodeToCheck instanceof Variable && $this->isName($nodeToCheck, $paramName); + return \false; } } diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/MergeDateTimePropertyTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/MergeDateTimePropertyTypeDeclarationRector.php new file mode 100644 index 000000000..87b76d8e0 --- /dev/null +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Class_/MergeDateTimePropertyTypeDeclarationRector.php @@ -0,0 +1,106 @@ +phpDocInfoFactory = $phpDocInfoFactory; + $this->docBlockUpdater = $docBlockUpdater; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Set DateTime to DateTimeInterface for DateTime property with DateTimeInterface docblock', [new CodeSample(<<<'CODE_SAMPLE' +final class SomeClass +{ + /** + * @var DateTimeInterface + */ + private DateTime $dateTime; +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +final class SomeClass +{ + private DateTimeInterface $dateTime; +} +CODE_SAMPLE +)]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [Class_::class]; + } + /** + * @param Class_ $node + */ + public function refactor(Node $node) : ?Node + { + $hasChanged = \false; + foreach ($node->getProperties() as $property) { + if (!$property->type instanceof Node) { + continue; + } + if (!$property->type instanceof FullyQualified) { + continue; + } + if ($property->type->toString() !== 'DateTime') { + continue; + } + if (!$property->isPrivate()) { + continue; + } + $phpDocInfo = $this->phpDocInfoFactory->createFromNode($property); + if (!$phpDocInfo instanceof PhpDocInfo) { + continue; + } + $varType = $phpDocInfo->getVarType(); + $className = $varType instanceof TypeWithClassName ? $this->nodeTypeResolver->getFullyQualifiedClassName($varType) : null; + if ($className === 'DateTimeInterface') { + $phpDocInfo->removeByType(VarTagValueNode::class); + $this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($property); + $property->type = new FullyQualified('DateTimeInterface'); + $hasChanged = \true; + } + } + if (!$hasChanged) { + return null; + } + return $node; + } + public function provideMinPhpVersion() : int + { + return PhpVersionFeature::TYPED_PROPERTIES; + } +} diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php index 50eaf1a2a..4a13c9a41 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php @@ -106,7 +106,7 @@ public function refactorWithScope(Node $node, Scope $scope) : ?Node return null; } // skip already filled type - if ($node->returnType instanceof Node && $this->isNames($node->returnType, ['Iterator', 'Generator', 'Traversable'])) { + if ($node->returnType instanceof Node && $this->isNames($node->returnType, ['Iterator', 'Generator', 'Traversable', 'iterable'])) { return null; } if ($node instanceof ClassMethod && $this->classMethodReturnTypeOverrideGuard->shouldSkipClassMethod($node, $scope)) { diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Param/ParamTypeFromStrictTypedPropertyRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Param/ParamTypeFromStrictTypedPropertyRector.php deleted file mode 100644 index bad988b21..000000000 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Param/ParamTypeFromStrictTypedPropertyRector.php +++ /dev/null @@ -1,192 +0,0 @@ -reflectionResolver = $reflectionResolver; - $this->parentClassMethodTypeOverrideGuard = $parentClassMethodTypeOverrideGuard; - $this->betterNodeFinder = $betterNodeFinder; - $this->staticTypeMapper = $staticTypeMapper; - } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Add param type from $param set to typed property', [new CodeSample(<<<'CODE_SAMPLE' -final class SomeClass -{ - private int $age; - - public function setAge($age) - { - $this->age = $age; - } -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -final class SomeClass -{ - private int $age; - - public function setAge(int $age) - { - $this->age = $age; - } -} -CODE_SAMPLE -)]); - } - /** - * @return array> - */ - public function getNodeTypes() : array - { - return [ClassMethod::class]; - } - /** - * @param ClassMethod $node - */ - public function refactorWithScope(Node $node, Scope $scope) : ?Node - { - $hasChanged = \false; - foreach ($node->getParams() as $param) { - $changedParam = $this->decorateParamWithType($node, $param, $scope); - if ($changedParam instanceof Param) { - $hasChanged = \true; - } - } - if ($hasChanged) { - return $node; - } - return null; - } - public function provideMinPhpVersion() : int - { - return PhpVersionFeature::TYPED_PROPERTIES; - } - private function decorateParamWithType(ClassMethod $classMethod, Param $param, Scope $scope) : ?Param - { - if ($param->type !== null) { - return null; - } - if ($classMethod->isAbstract()) { - return null; - } - if ($this->parentClassMethodTypeOverrideGuard->hasParentClassMethod($classMethod)) { - return null; - } - $originalParamType = $this->resolveParamOriginalType($param, $scope); - $paramName = $this->getName($param); - /** @var Assign[] $assigns */ - $assigns = $this->betterNodeFinder->findInstanceOf((array) $classMethod->getStmts(), Assign::class); - foreach ($assigns as $assign) { - if (!$assign->var instanceof PropertyFetch) { - continue; - } - if (!$this->nodeComparator->areNodesEqual($assign->expr, $param->var)) { - continue; - } - if ($this->hasTypeChangedBeforeAssign($assign, $paramName, $originalParamType)) { - return null; - } - $singlePropertyTypeNode = $this->matchPropertySingleTypeNode($assign->var); - if (!$singlePropertyTypeNode instanceof Node) { - return null; - } - $param->type = $singlePropertyTypeNode; - return $param; - } - return null; - } - /** - * @return Identifier|Name|ComplexType|null - */ - private function matchPropertySingleTypeNode(PropertyFetch $propertyFetch) : ?Node - { - $phpPropertyReflection = $this->reflectionResolver->resolvePropertyReflectionFromPropertyFetch($propertyFetch); - if (!$phpPropertyReflection instanceof PhpPropertyReflection) { - return null; - } - $propertyType = $phpPropertyReflection->getNativeType(); - if ($propertyType instanceof MixedType) { - return null; - } - if ($propertyType instanceof UnionType) { - return null; - } - if ($propertyType instanceof NullableType) { - return null; - } - return $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($propertyType, TypeKind::PROPERTY); - } - private function hasTypeChangedBeforeAssign(Assign $assign, string $paramName, Type $originalType) : bool - { - $scope = $assign->getAttribute(AttributeKey::SCOPE); - if (!$scope instanceof Scope) { - return \false; - } - if (!$scope->hasVariableType($paramName)->yes()) { - return \false; - } - $currentParamType = $scope->getVariableType($paramName); - return !$currentParamType->equals($originalType); - } - private function resolveParamOriginalType(Param $param, Scope $scope) : Type - { - $paramName = $this->getName($param); - if (!$scope->hasVariableType($paramName)->yes()) { - return new MixedType(); - } - return $scope->getVariableType($paramName); - } -} diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php index 94a634ff6..dca1edc0b 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php @@ -16,7 +16,7 @@ use Rector\TypeDeclaration\ValueObject\AddPropertyTypeDeclaration; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\TypeDeclaration\Rector\Property\AddPropertyTypeDeclarationRector\AddPropertyTypeDeclarationRectorTest */ diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php index 4dff4f5c2..69fdb98af 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php +++ b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php @@ -126,7 +126,7 @@ public function run() } } CODE_SAMPLE -, [self::INLINE_PUBLIC => \false])]); +, [\Rector\TypeDeclaration\Rector\Property\TypedPropertyFromAssignsRector::INLINE_PUBLIC => \false])]); } /** * @return array> diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorReadonlyClassRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorReadonlyClassRector.php deleted file mode 100644 index 0a8325d55..000000000 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorReadonlyClassRector.php +++ /dev/null @@ -1,71 +0,0 @@ -name = $name; - } -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -/** - * @immutable - */ -class SomeObject -{ - public string $name; - - public function __construct(string $name) - { - $this->name = $name; - } -} -CODE_SAMPLE -)]); - } - /** - * @return array> - */ - public function getNodeTypes() : array - { - return [Class_::class]; - } - /** - * @param Class_ $node - */ - public function refactorWithScope(Node $node, Scope $scope) : ?Node - { - \trigger_error(\sprintf('The "%s" rule is deprecated as based on docblock and public elements. Use private properties and property promotion rules instead.', self::class), \E_USER_ERROR); - return null; - } - public function provideMinPhpVersion() : int - { - return PhpVersionFeature::TYPED_PROPERTIES; - } -} diff --git a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php b/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php deleted file mode 100644 index 5335549e5..000000000 --- a/vendor/rector/rector/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php +++ /dev/null @@ -1,207 +0,0 @@ -getterTypeDeclarationPropertyTypeInferer = $getterTypeDeclarationPropertyTypeInferer; - $this->varTagRemover = $varTagRemover; - $this->parentPropertyLookupGuard = $parentPropertyLookupGuard; - $this->reflectionResolver = $reflectionResolver; - $this->constructorAssignDetector = $constructorAssignDetector; - $this->phpDocInfoFactory = $phpDocInfoFactory; - $this->staticTypeMapper = $staticTypeMapper; - } - public function getRuleDefinition() : RuleDefinition - { - return new RuleDefinition('Complete property type based on getter strict types', [new CodeSample(<<<'CODE_SAMPLE' -final class SomeClass -{ - public $name; - - public function getName(): string|null - { - return $this->name; - } -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -final class SomeClass -{ - public ?string $name = null; - - public function getName(): string|null - { - return $this->name; - } -} -CODE_SAMPLE -)]); - } - /** - * @return array> - */ - public function getNodeTypes() : array - { - return [Class_::class]; - } - /** - * @param Class_ $node - */ - public function refactor(Node $node) : ?\PhpParser\Node\Stmt\Class_ - { - $hasChanged = \false; - foreach ($node->getProperties() as $property) { - if ($this->shouldSkipProperty($property, $node)) { - continue; - } - $getterReturnType = $this->getterTypeDeclarationPropertyTypeInferer->inferProperty($property, $node); - if (!$getterReturnType instanceof Type) { - continue; - } - if ($getterReturnType instanceof MixedType) { - continue; - } - $isAssignedInConstructor = $this->constructorAssignDetector->isPropertyAssigned($node, $this->getName($property)); - // if property is public, it should be nullable - if ($property->isPublic() && !TypeCombinator::containsNull($getterReturnType) && !$isAssignedInConstructor) { - $getterReturnType = TypeCombinator::addNull($getterReturnType); - } - $propertyTypeNode = $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($getterReturnType, TypeKind::PROPERTY); - if (!$propertyTypeNode instanceof Node) { - continue; - } - // include fault value in the type - if ($this->isConflictingDefaultExprType($property, $getterReturnType)) { - continue; - } - $property->type = $propertyTypeNode; - $this->decorateDefaultExpr($getterReturnType, $property, $isAssignedInConstructor); - $this->refactorPhpDoc($property); - $hasChanged = \true; - } - if ($hasChanged) { - return $node; - } - return null; - } - public function provideMinPhpVersion() : int - { - return PhpVersionFeature::TYPED_PROPERTIES; - } - private function decorateDefaultExpr(Type $propertyType, Property $property, bool $isAssignedInConstructor) : void - { - if ($isAssignedInConstructor) { - return; - } - $propertyProperty = $property->props[0]; - // already has a default value - if ($propertyProperty->default instanceof Expr) { - return; - } - if (TypeCombinator::containsNull($propertyType)) { - $propertyProperty->default = $this->nodeFactory->createNull(); - return; - } - // set default for string - if ($propertyType instanceof StringType) { - $propertyProperty->default = new String_(''); - } - } - private function isConflictingDefaultExprType(Property $property, Type $getterReturnType) : bool - { - $onlyPropertyProperty = $property->props[0]; - if (!$onlyPropertyProperty->default instanceof Expr) { - return \false; - } - $defaultType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($onlyPropertyProperty->default); - // does default type match the getter one? - return !$defaultType->isSuperTypeOf($getterReturnType)->yes(); - } - private function refactorPhpDoc(Property $property) : void - { - $phpDocInfo = $this->phpDocInfoFactory->createFromNode($property); - if (!$phpDocInfo instanceof PhpDocInfo) { - return; - } - $this->varTagRemover->removeVarTagIfUseless($phpDocInfo, $property); - } - private function shouldSkipProperty(Property $property, Class_ $class) : bool - { - if ($property->type instanceof Node) { - // already has type - return \true; - } - // skip non-single property - if (\count($property->props) !== 1) { - // has too many properties - return \true; - } - $classReflection = $this->reflectionResolver->resolveClassReflection($class); - return !$this->parentPropertyLookupGuard->isLegal($property, $classReflection); - } -} diff --git a/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/PropertyTypeDefaultValueAnalyzer.php b/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/PropertyTypeDefaultValueAnalyzer.php index 9bc017547..861fea028 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/PropertyTypeDefaultValueAnalyzer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/PropertyTypeDefaultValueAnalyzer.php @@ -5,6 +5,7 @@ use PhpParser\Node\Expr; use PhpParser\Node\Stmt\PropertyProperty; +use PHPStan\Type\ArrayType; use PHPStan\Type\Type; use Rector\StaticTypeMapper\StaticTypeMapper; final class PropertyTypeDefaultValueAnalyzer @@ -25,6 +26,9 @@ public function doesConflictWithDefaultValue(PropertyProperty $propertyProperty, } // the defaults can be in conflict $defaultType = $this->staticTypeMapper->mapPhpParserNodePHPStanType($propertyProperty->default); + if ($defaultType instanceof ArrayType && $propertyType instanceof ArrayType) { + return \false; + } // type is not matching, skip it return !$defaultType->isSuperTypeOf($propertyType)->yes(); } diff --git a/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/ReturnStrictTypeAnalyzer.php b/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/ReturnStrictTypeAnalyzer.php index 217c6995e..9b3785890 100644 --- a/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/ReturnStrictTypeAnalyzer.php +++ b/vendor/rector/rector/rules/TypeDeclaration/TypeAnalyzer/ReturnStrictTypeAnalyzer.php @@ -19,11 +19,16 @@ use PhpParser\Node\Scalar\String_; use PhpParser\Node\Stmt\Return_; use PHPStan\Analyser\Scope; +use PHPStan\Reflection\ClassReflection; use PHPStan\Reflection\FunctionVariantWithPhpDocs; use PHPStan\Type\MixedType; +use PHPStan\Type\StaticType; +use PHPStan\Type\Type; +use PHPStan\Type\TypeTraverser; use Rector\Core\Reflection\ReflectionResolver; use Rector\PHPStanStaticTypeMapper\Enum\TypeKind; use Rector\StaticTypeMapper\StaticTypeMapper; +use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType; use Rector\TypeDeclaration\NodeAnalyzer\TypeNodeUnwrapper; final class ReturnStrictTypeAnalyzer { @@ -103,8 +108,23 @@ public function resolveMethodCallReturnNode($call) : ?Node if ($returnType instanceof MixedType) { return null; } + $returnType = $this->normalizeStaticType($call, $returnType); return $this->staticTypeMapper->mapPHPStanTypeToPhpParserNode($returnType, TypeKind::RETURN); } + /** + * @param \PhpParser\Node\Expr\MethodCall|\PhpParser\Node\Expr\StaticCall|\PhpParser\Node\Expr\FuncCall $call + */ + private function normalizeStaticType($call, Type $type) : Type + { + $reflectionClass = $this->reflectionResolver->resolveClassReflection($call); + $currentClassName = $reflectionClass instanceof ClassReflection ? $reflectionClass->getName() : null; + return TypeTraverser::map($type, static function (Type $currentType, callable $traverseCallback) use($currentClassName) : Type { + if ($currentType instanceof StaticType && $currentClassName !== $currentType->getClassName()) { + return new FullyQualifiedObjectType($currentType->getClassName()); + } + return $traverseCallback($currentType); + }); + } /** * @param \PhpParser\Node\Expr\Array_|\PhpParser\Node\Scalar $returnedExpr */ diff --git a/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php b/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php index cf2bc0313..52a2ad581 100644 --- a/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php +++ b/vendor/rector/rector/rules/Visibility/Rector/ClassConst/ChangeConstantVisibilityRector.php @@ -12,7 +12,7 @@ use Rector\Visibility\ValueObject\ChangeConstantVisibility; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Visibility\Rector\ClassConst\ChangeConstantVisibilityRector\ChangeConstantVisibilityRectorTest */ diff --git a/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php b/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php index 10cea3cba..b8ba3cf36 100644 --- a/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php +++ b/vendor/rector/rector/rules/Visibility/Rector/ClassMethod/ChangeMethodVisibilityRector.php @@ -14,7 +14,7 @@ use Rector\Visibility\ValueObject\ChangeMethodVisibility; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Tests\Visibility\Rector\ClassMethod\ChangeMethodVisibilityRector\ChangeMethodVisibilityRectorTest */ diff --git a/vendor/rector/rector/src/Application/ApplicationFileProcessor.php b/vendor/rector/rector/src/Application/ApplicationFileProcessor.php index 7adf4c4f8..ee47d222a 100644 --- a/vendor/rector/rector/src/Application/ApplicationFileProcessor.php +++ b/vendor/rector/rector/src/Application/ApplicationFileProcessor.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\Application; -use RectorPrefix202311\Nette\Utils\FileSystem as UtilsFileSystem; +use RectorPrefix202312\Nette\Utils\FileSystem as UtilsFileSystem; use PHPStan\Collectors\CollectedData; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\Core\Configuration\Option; @@ -19,11 +19,11 @@ use Rector\Core\ValueObjectFactory\Application\FileFactory; use Rector\Parallel\Application\ParallelFileProcessor; use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202311\Symplify\EasyParallel\CpuCoreCountProvider; -use RectorPrefix202311\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; -use RectorPrefix202311\Symplify\EasyParallel\ScheduleFactory; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symplify\EasyParallel\CpuCoreCountProvider; +use RectorPrefix202312\Symplify\EasyParallel\Exception\ParallelShouldNotHappenException; +use RectorPrefix202312\Symplify\EasyParallel\ScheduleFactory; use Throwable; final class ApplicationFileProcessor { diff --git a/vendor/rector/rector/src/Application/FileProcessor.php b/vendor/rector/rector/src/Application/FileProcessor.php index e3ddc3922..c59c3760c 100644 --- a/vendor/rector/rector/src/Application/FileProcessor.php +++ b/vendor/rector/rector/src/Application/FileProcessor.php @@ -22,7 +22,7 @@ use Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator; use Rector\PostRector\Application\PostFileProcessor; use Rector\Testing\PHPUnit\StaticPHPUnitEnvironment; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; use Throwable; final class FileProcessor { diff --git a/vendor/rector/rector/src/Application/VersionResolver.php b/vendor/rector/rector/src/Application/VersionResolver.php index 8daa55f02..3a4a6a5ef 100644 --- a/vendor/rector/rector/src/Application/VersionResolver.php +++ b/vendor/rector/rector/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '0.18.10'; + public const PACKAGE_VERSION = '0.18.13'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-11-17 02:36:50'; + public const RELEASE_DATE = '2023-12-18 19:30:04'; /** * @var int */ diff --git a/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php b/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php index e9b32ca0f..4c9c49013 100644 --- a/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php +++ b/vendor/rector/rector/src/Autoloading/AdditionalAutoloader.php @@ -6,8 +6,8 @@ use Rector\Core\Configuration\Option; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\StaticReflection\DynamicSourceLocatorDecorator; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * Should it pass autoload files/directories to PHPStan analyzer? */ diff --git a/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php b/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php index 4489985a3..de4d2e7a8 100644 --- a/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php +++ b/vendor/rector/rector/src/Autoloading/BootstrapFilesIncluder.php @@ -9,7 +9,7 @@ use RecursiveDirectoryIterator; use RecursiveIteratorIterator; use SplFileInfo; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Core\Tests\Autoloading\BootstrapFilesIncluderTest */ diff --git a/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php b/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php index 30f6eba57..07f767a4d 100644 --- a/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php +++ b/vendor/rector/rector/src/Bootstrap/RectorConfigsResolver.php @@ -4,8 +4,8 @@ namespace Rector\Core\Bootstrap; use Rector\Core\ValueObject\Bootstrap\BootstrapConfigs; -use RectorPrefix202311\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202312\Webmozart\Assert\Assert; final class RectorConfigsResolver { public function provide() : BootstrapConfigs diff --git a/vendor/rector/rector/src/Configuration/ConfigInitializer.php b/vendor/rector/rector/src/Configuration/ConfigInitializer.php index 37c138a0a..4f8fdbd1a 100644 --- a/vendor/rector/rector/src/Configuration/ConfigInitializer.php +++ b/vendor/rector/rector/src/Configuration/ConfigInitializer.php @@ -3,13 +3,13 @@ declare (strict_types=1); namespace Rector\Core\Configuration; -use RectorPrefix202311\Nette\Utils\FileSystem; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\Strings; use Rector\Core\Contract\Rector\RectorInterface; use Rector\Core\FileSystem\InitFilePathsResolver; use Rector\Core\Php\PhpVersionProvider; use Rector\PostRector\Contract\Rector\PostRectorInterface; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; final class ConfigInitializer { /** diff --git a/vendor/rector/rector/src/Configuration/ConfigurationFactory.php b/vendor/rector/rector/src/Configuration/ConfigurationFactory.php index 4bb52738c..317f5bae5 100644 --- a/vendor/rector/rector/src/Configuration/ConfigurationFactory.php +++ b/vendor/rector/rector/src/Configuration/ConfigurationFactory.php @@ -6,8 +6,8 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Core\Configuration\Parameter\SimpleParameterProvider; use Rector\Core\ValueObject\Configuration; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; /** * @see \Rector\Core\Tests\Configuration\ConfigurationFactoryTest */ diff --git a/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php b/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php index 46be9f857..13731cd3a 100644 --- a/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php +++ b/vendor/rector/rector/src/Configuration/Parameter/SimpleParameterProvider.php @@ -5,7 +5,7 @@ use Rector\Core\Configuration\Option; use Rector\Core\Exception\ShouldNotHappenException; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @api */ diff --git a/vendor/rector/rector/src/Console/Command/ListRulesCommand.php b/vendor/rector/rector/src/Console/Command/ListRulesCommand.php index bb1b27843..f29f2c2fb 100644 --- a/vendor/rector/rector/src/Console/Command/ListRulesCommand.php +++ b/vendor/rector/rector/src/Console/Command/ListRulesCommand.php @@ -3,17 +3,17 @@ declare (strict_types=1); namespace Rector\Core\Console\Command; -use RectorPrefix202311\Nette\Utils\Json; +use RectorPrefix202312\Nette\Utils\Json; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Core\Configuration\Option; use Rector\Core\Contract\Rector\RectorInterface; use Rector\PostRector\Contract\Rector\PostRectorInterface; use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; final class ListRulesCommand extends Command { /** diff --git a/vendor/rector/rector/src/Console/Command/ProcessCommand.php b/vendor/rector/rector/src/Console/Command/ProcessCommand.php index d76d7640c..31aab24ca 100644 --- a/vendor/rector/rector/src/Console/Command/ProcessCommand.php +++ b/vendor/rector/rector/src/Console/Command/ProcessCommand.php @@ -18,11 +18,11 @@ use Rector\Core\Util\MemoryLimiter; use Rector\Core\ValueObject\Configuration; use Rector\Core\ValueObject\ProcessResult; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; final class ProcessCommand extends Command { /** diff --git a/vendor/rector/rector/src/Console/Command/SetupCICommand.php b/vendor/rector/rector/src/Console/Command/SetupCICommand.php index 684734953..1ef282885 100644 --- a/vendor/rector/rector/src/Console/Command/SetupCICommand.php +++ b/vendor/rector/rector/src/Console/Command/SetupCICommand.php @@ -3,14 +3,14 @@ declare (strict_types=1); namespace Rector\Core\Console\Command; -use RectorPrefix202311\Nette\Utils\FileSystem; -use RectorPrefix202311\Nette\Utils\Strings; -use RectorPrefix202311\OndraM\CiDetector\CiDetector; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202311\Symfony\Component\Process\Process; +use RectorPrefix202312\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\Strings; +use RectorPrefix202312\OndraM\CiDetector\CiDetector; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Process\Process; use function sprintf; final class SetupCICommand extends Command { diff --git a/vendor/rector/rector/src/Console/Command/WorkerCommand.php b/vendor/rector/rector/src/Console/Command/WorkerCommand.php index ef2c74c2f..9d1993e70 100644 --- a/vendor/rector/rector/src/Console/Command/WorkerCommand.php +++ b/vendor/rector/rector/src/Console/Command/WorkerCommand.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Core\Console\Command; -use RectorPrefix202311\Clue\React\NDJson\Decoder; -use RectorPrefix202311\Clue\React\NDJson\Encoder; +use RectorPrefix202312\Clue\React\NDJson\Decoder; +use RectorPrefix202312\Clue\React\NDJson\Encoder; use PHPStan\Collectors\CollectedData; -use RectorPrefix202311\React\EventLoop\StreamSelectLoop; -use RectorPrefix202311\React\Socket\ConnectionInterface; -use RectorPrefix202311\React\Socket\TcpConnector; +use RectorPrefix202312\React\EventLoop\StreamSelectLoop; +use RectorPrefix202312\React\Socket\ConnectionInterface; +use RectorPrefix202312\React\Socket\TcpConnector; use Rector\Core\Application\ApplicationFileProcessor; use Rector\Core\Configuration\ConfigurationFactory; use Rector\Core\Console\ProcessConfigureDecorator; @@ -17,14 +17,14 @@ use Rector\Core\ValueObject\Configuration; use Rector\Core\ValueObject\Error\SystemError; use Rector\Parallel\ValueObject\Bridge; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symplify\EasyParallel\Enum\Action; -use RectorPrefix202311\Symplify\EasyParallel\Enum\ReactCommand; -use RectorPrefix202311\Symplify\EasyParallel\Enum\ReactEvent; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symplify\EasyParallel\Enum\Action; +use RectorPrefix202312\Symplify\EasyParallel\Enum\ReactCommand; +use RectorPrefix202312\Symplify\EasyParallel\Enum\ReactEvent; use Throwable; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * Inspired at: https://github.com/phpstan/phpstan-src/commit/9124c66dcc55a222e21b1717ba5f60771f7dda92 * https://github.com/phpstan/phpstan-src/blob/c471c7b050e0929daf432288770de673b394a983/src/Command/WorkerCommand.php diff --git a/vendor/rector/rector/src/Console/ConsoleApplication.php b/vendor/rector/rector/src/Console/ConsoleApplication.php index ee8de5774..b1c87b5ce 100644 --- a/vendor/rector/rector/src/Console/ConsoleApplication.php +++ b/vendor/rector/rector/src/Console/ConsoleApplication.php @@ -3,17 +3,17 @@ declare (strict_types=1); namespace Rector\Core\Console; -use RectorPrefix202311\Composer\XdebugHandler\XdebugHandler; +use RectorPrefix202312\Composer\XdebugHandler\XdebugHandler; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Core\Application\VersionResolver; use Rector\Core\Configuration\Option; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Webmozart\Assert\Assert; final class ConsoleApplication extends Application { /** diff --git a/vendor/rector/rector/src/Console/ExitCode.php b/vendor/rector/rector/src/Console/ExitCode.php index 89f19f573..d5723c28b 100644 --- a/vendor/rector/rector/src/Console/ExitCode.php +++ b/vendor/rector/rector/src/Console/ExitCode.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\Console; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; /** * @api */ diff --git a/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php b/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php index 60bbfd189..6b2b0f26e 100644 --- a/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php +++ b/vendor/rector/rector/src/Console/Formatter/ColorConsoleDiffFormatter.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\Console\Formatter; -use RectorPrefix202311\Nette\Utils\Strings; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202312\Nette\Utils\Strings; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatter; /** * Inspired by @see https://github.com/FriendsOfPHP/PHP-CS-Fixer/blob/master/src/Differ/DiffConsoleFormatter.php to be * used as standalone class, without need to require whole package by Dariusz Rumiński diff --git a/vendor/rector/rector/src/Console/Formatter/CompleteUnifiedDiffOutputBuilderFactory.php b/vendor/rector/rector/src/Console/Formatter/CompleteUnifiedDiffOutputBuilderFactory.php index 454a0cc96..e013ec314 100644 --- a/vendor/rector/rector/src/Console/Formatter/CompleteUnifiedDiffOutputBuilderFactory.php +++ b/vendor/rector/rector/src/Console/Formatter/CompleteUnifiedDiffOutputBuilderFactory.php @@ -4,7 +4,7 @@ namespace Rector\Core\Console\Formatter; use Rector\Core\Util\Reflection\PrivatesAccessor; -use RectorPrefix202311\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +use RectorPrefix202312\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; /** * @api * Creates @see UnifiedDiffOutputBuilder with "$contextLines = 1000;" diff --git a/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php b/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php index a3014c1f4..6d2f150de 100644 --- a/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php +++ b/vendor/rector/rector/src/Console/Formatter/ConsoleDiffer.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\Console\Formatter; -use RectorPrefix202311\SebastianBergmann\Diff\Differ; -use RectorPrefix202311\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; +use RectorPrefix202312\SebastianBergmann\Diff\Differ; +use RectorPrefix202312\SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder; final class ConsoleDiffer { /** diff --git a/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php b/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php index d017ae66e..77368f3b1 100644 --- a/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php +++ b/vendor/rector/rector/src/Console/ProcessConfigureDecorator.php @@ -5,9 +5,9 @@ use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Core\Configuration\Option; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; final class ProcessConfigureDecorator { public static function decorate(Command $command) : void diff --git a/vendor/rector/rector/src/Console/Style/RectorStyle.php b/vendor/rector/rector/src/Console/Style/RectorStyle.php index 61c85b889..01e49da01 100644 --- a/vendor/rector/rector/src/Console/Style/RectorStyle.php +++ b/vendor/rector/rector/src/Console/Style/RectorStyle.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Core\Console\Style; -use RectorPrefix202311\OndraM\CiDetector\CiDetector; -use RectorPrefix202311\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202311\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\OndraM\CiDetector\CiDetector; +use RectorPrefix202312\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; final class RectorStyle extends SymfonyStyle { /** diff --git a/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php b/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php index 373dc1afc..9cc9dd2eb 100644 --- a/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php +++ b/vendor/rector/rector/src/Console/Style/SymfonyStyleFactory.php @@ -4,11 +4,11 @@ namespace Rector\Core\Console\Style; use Rector\Core\Util\Reflection\PrivatesAccessor; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleOutput; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutput; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; final class SymfonyStyleFactory { /** diff --git a/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php b/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php index fd561f8e9..0f137786d 100644 --- a/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php +++ b/vendor/rector/rector/src/DependencyInjection/Laravel/ContainerMemento.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\DependencyInjection\Laravel; -use RectorPrefix202311\Illuminate\Container\Container; +use RectorPrefix202312\Illuminate\Container\Container; use Rector\Core\Util\Reflection\PrivatesAccessor; /** * Helper service to modify Laravel container diff --git a/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php b/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php index 36fd606b0..da8b7d7f3 100644 --- a/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php +++ b/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Core\DependencyInjection; -use RectorPrefix202311\Doctrine\Inflector\Inflector; -use RectorPrefix202311\Doctrine\Inflector\Rules\English\InflectorFactory; -use RectorPrefix202311\Illuminate\Container\Container; +use RectorPrefix202312\Doctrine\Inflector\Inflector; +use RectorPrefix202312\Doctrine\Inflector\Rules\English\InflectorFactory; +use RectorPrefix202312\Illuminate\Container\Container; use PhpParser\Lexer; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\ScopeFactory; @@ -179,10 +179,10 @@ use Rector\StaticTypeMapper\StaticTypeMapper; use Rector\Utils\Command\MissingInSetCommand; use Rector\Utils\Command\OutsideAnySetCommand; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Webmozart\Assert\Assert; final class LazyContainerFactory { /** diff --git a/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php b/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php index af4098ced..a87392e14 100644 --- a/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php +++ b/vendor/rector/rector/src/DependencyInjection/RectorContainerFactory.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\DependencyInjection; -use RectorPrefix202311\Illuminate\Container\Container; +use RectorPrefix202312\Illuminate\Container\Container; use Rector\Caching\Detector\ChangedFilesDetector; use Rector\Core\Autoloading\BootstrapFilesIncluder; use Rector\Core\ValueObject\Bootstrap\BootstrapConfigs; diff --git a/vendor/rector/rector/src/Differ/DefaultDiffer.php b/vendor/rector/rector/src/Differ/DefaultDiffer.php index 1c8d1a376..2c2e8450e 100644 --- a/vendor/rector/rector/src/Differ/DefaultDiffer.php +++ b/vendor/rector/rector/src/Differ/DefaultDiffer.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\Differ; -use RectorPrefix202311\SebastianBergmann\Diff\Differ; -use RectorPrefix202311\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; +use RectorPrefix202312\SebastianBergmann\Diff\Differ; +use RectorPrefix202312\SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder; final class DefaultDiffer { /** diff --git a/vendor/rector/rector/src/Exception/FullyQualifiedNameNotAutoloadedException.php b/vendor/rector/rector/src/Exception/FullyQualifiedNameNotAutoloadedException.php new file mode 100644 index 000000000..47cb11d71 --- /dev/null +++ b/vendor/rector/rector/src/Exception/FullyQualifiedNameNotAutoloadedException.php @@ -0,0 +1,19 @@ +name = $name; + parent::__construct(\sprintf('%s was not autoloaded', $name->toString())); + } +} diff --git a/vendor/rector/rector/src/FileSystem/FilePathHelper.php b/vendor/rector/rector/src/FileSystem/FilePathHelper.php index 034898fac..435737f35 100644 --- a/vendor/rector/rector/src/FileSystem/FilePathHelper.php +++ b/vendor/rector/rector/src/FileSystem/FilePathHelper.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Core\FileSystem; -use RectorPrefix202311\Nette\Utils\Strings; -use RectorPrefix202311\Symfony\Component\Filesystem\Filesystem; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Nette\Utils\Strings; +use RectorPrefix202312\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Core\Tests\FileSystem\FilePathHelperTest */ diff --git a/vendor/rector/rector/src/FileSystem/FilesFinder.php b/vendor/rector/rector/src/FileSystem/FilesFinder.php index 543703572..361526c19 100644 --- a/vendor/rector/rector/src/FileSystem/FilesFinder.php +++ b/vendor/rector/rector/src/FileSystem/FilesFinder.php @@ -6,8 +6,8 @@ use Rector\Caching\UnchangedFilesFilter; use Rector\Core\Util\StringUtils; use Rector\Skipper\SkipCriteriaResolver\SkippedPathsResolver; -use RectorPrefix202311\Symfony\Component\Finder\Finder; -use RectorPrefix202311\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202312\Symfony\Component\Finder\Finder; +use RectorPrefix202312\Symfony\Component\Finder\SplFileInfo; /** * @see \Rector\Core\Tests\FileSystem\FilesFinder\FilesFinderTest */ diff --git a/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php b/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php index 907927b65..4307f43be 100644 --- a/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php +++ b/vendor/rector/rector/src/FileSystem/InitFilePathsResolver.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\FileSystem; -use RectorPrefix202311\Symfony\Component\Finder\Finder; -use RectorPrefix202311\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202312\Symfony\Component\Finder\Finder; +use RectorPrefix202312\Symfony\Component\Finder\SplFileInfo; /** * @see \Rector\Core\Tests\FileSystem\InitFilePathsResolver\InitFilePathsResolverTest */ diff --git a/vendor/rector/rector/src/NodeAnalyzer/PropertyFetchAnalyzer.php b/vendor/rector/rector/src/NodeAnalyzer/PropertyFetchAnalyzer.php index 94e99c1b0..839c1f768 100644 --- a/vendor/rector/rector/src/NodeAnalyzer/PropertyFetchAnalyzer.php +++ b/vendor/rector/rector/src/NodeAnalyzer/PropertyFetchAnalyzer.php @@ -4,7 +4,6 @@ namespace Rector\Core\NodeAnalyzer; use PhpParser\Node; -use PhpParser\Node\Expr; use PhpParser\Node\Expr\Assign; use PhpParser\Node\Expr\MethodCall; use PhpParser\Node\Expr\PropertyFetch; @@ -161,17 +160,6 @@ public function isFilledViaMethodCallInConstructStmts(ClassLike $classLike, stri } return \false; } - /** - * @param string[] $propertyNames - */ - public function isLocalPropertyOfNames(Expr $expr, array $propertyNames) : bool - { - if (!$this->isLocalPropertyFetch($expr)) { - return \false; - } - /** @var PropertyFetch $expr */ - return $this->nodeNameResolver->isNames($expr->name, $propertyNames); - } private function isTraitLocalPropertyFetch(Node $node) : bool { if ($node instanceof PropertyFetch) { diff --git a/vendor/rector/rector/src/NodeManipulator/ClassMethodManipulator.php b/vendor/rector/rector/src/NodeManipulator/ClassMethodManipulator.php index dd8a0d71a..91356e82c 100644 --- a/vendor/rector/rector/src/NodeManipulator/ClassMethodManipulator.php +++ b/vendor/rector/rector/src/NodeManipulator/ClassMethodManipulator.php @@ -53,6 +53,9 @@ public function hasParentMethodOrInterfaceMethod(Class_ $class, string $methodNa if ($parentClassReflection->hasMethod($methodName)) { return \true; } + if ($parentClassReflection->hasMethod(MethodName::CALL)) { + return \true; + } } foreach ($classReflection->getInterfaces() as $interfaceReflection) { if ($interfaceReflection->hasMethod($methodName)) { diff --git a/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php b/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php index 4e6b89885..626d8b93c 100644 --- a/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php +++ b/vendor/rector/rector/src/NodeManipulator/PropertyManipulator.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\NodeManipulator; -use RectorPrefix202311\Doctrine\ORM\Mapping\Table; +use RectorPrefix202312\Doctrine\ORM\Mapping\Table; use PhpParser\Node; use PhpParser\Node\Expr\PropertyFetch; use PhpParser\Node\Expr\StaticPropertyFetch; @@ -199,7 +199,10 @@ private function isChangeableContext($propertyFetch) : bool if ($propertyFetch->getAttribute(AttributeKey::INSIDE_ARRAY_DIM_FETCH, \false)) { return \true; } - return $propertyFetch->getAttribute(AttributeKey::IS_USED_AS_ARG_BY_REF_VALUE, \false) === \true; + if ($propertyFetch->getAttribute(AttributeKey::IS_USED_AS_ARG_BY_REF_VALUE, \false) === \true) { + return \true; + } + return $propertyFetch->getAttribute(AttributeKey::IS_INCREMENT_OR_DECREMENT, \false) === \true; } private function hasAllowedNotReadonlyAnnotationOrAttribute(PhpDocInfo $phpDocInfo, Class_ $class) : bool { diff --git a/vendor/rector/rector/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php b/vendor/rector/rector/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php index 0144488a5..daafe8892 100644 --- a/vendor/rector/rector/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php +++ b/vendor/rector/rector/src/PHPStan/NodeVisitor/UnreachableStatementNodeVisitor.php @@ -4,8 +4,10 @@ namespace Rector\Core\PHPStan\NodeVisitor; use PhpParser\Node; +use PhpParser\Node\Expr\Exit_; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\Declare_; +use PhpParser\Node\Stmt\Expression; use PhpParser\NodeVisitorAbstract; use PHPStan\Analyser\MutatingScope; use Rector\Core\Contract\PhpParser\Node\StmtsAwareInterface; @@ -47,6 +49,10 @@ public function enterNode(Node $node) : ?Node $mutatingScope = $node->getAttribute(AttributeKey::SCOPE); $mutatingScope = $mutatingScope instanceof MutatingScope ? $mutatingScope : $this->scopeFactory->createFromFile($this->filePath); foreach ($node->stmts as $stmt) { + if ($stmt instanceof Expression && $stmt->expr instanceof Exit_) { + $isPassedUnreachableStmt = \true; + continue; + } if ($stmt->getAttribute(AttributeKey::IS_UNREACHABLE) === \true) { $isPassedUnreachableStmt = \true; continue; diff --git a/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php b/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php index 4001ad186..7a1bed466 100644 --- a/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php +++ b/vendor/rector/rector/src/Php/PhpVersionResolver/ProjectComposerJsonPhpVersionResolver.php @@ -3,9 +3,9 @@ declare (strict_types=1); namespace Rector\Core\Php\PhpVersionResolver; -use RectorPrefix202311\Composer\Semver\VersionParser; -use RectorPrefix202311\Nette\Utils\FileSystem; -use RectorPrefix202311\Nette\Utils\Json; +use RectorPrefix202312\Composer\Semver\VersionParser; +use RectorPrefix202312\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\Json; use Rector\Core\Util\PhpVersionFactory; /** * @see \Rector\Core\Tests\Php\PhpVersionResolver\ProjectComposerJsonPhpVersionResolver\ProjectComposerJsonPhpVersionResolverTest diff --git a/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php b/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php index e237115fe..7f40508f4 100644 --- a/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php +++ b/vendor/rector/rector/src/PhpParser/Node/BetterNodeFinder.php @@ -16,7 +16,7 @@ use Rector\Core\NodeAnalyzer\ClassAnalyzer; use Rector\NodeNameResolver\NodeNameResolver; use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @see \Rector\Core\Tests\PhpParser\Node\BetterNodeFinder\BetterNodeFinderTest */ diff --git a/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php b/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php index 9a66054b7..3610ae9b1 100644 --- a/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php +++ b/vendor/rector/rector/src/PhpParser/Parser/InlineCodeParser.php @@ -3,8 +3,8 @@ declare (strict_types=1); namespace Rector\Core\PhpParser\Parser; -use RectorPrefix202311\Nette\Utils\FileSystem; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; use PhpParser\Node\Scalar\Encapsed; diff --git a/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php b/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php index 25f8e9107..e54470229 100644 --- a/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php +++ b/vendor/rector/rector/src/PhpParser/Parser/SimplePhpParser.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\PhpParser\Parser; -use RectorPrefix202311\Nette\Utils\FileSystem; +use RectorPrefix202312\Nette\Utils\FileSystem; use PhpParser\Node\Stmt; use PhpParser\NodeTraverser; use PhpParser\Parser; diff --git a/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php b/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php index 740fac894..7235b8f65 100644 --- a/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php +++ b/vendor/rector/rector/src/PhpParser/Printer/BetterStandardPrinter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\PhpParser\Printer; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use PhpParser\Comment; use PhpParser\Node; use PhpParser\Node\Expr; diff --git a/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php b/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php index 2ba0f3001..d4566e395 100644 --- a/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php +++ b/vendor/rector/rector/src/PhpParser/Printer/FormatPerservingPrinter.php @@ -5,7 +5,7 @@ use PhpParser\Node; use Rector\Core\ValueObject\Application\File; -use RectorPrefix202311\Symfony\Component\Filesystem\Filesystem; +use RectorPrefix202312\Symfony\Component\Filesystem\Filesystem; /** * @see \Rector\Core\Tests\PhpParser\Printer\FormatPerservingPrinterTest */ diff --git a/vendor/rector/rector/src/Rector/AbstractCollectorRector.php b/vendor/rector/rector/src/Rector/AbstractCollectorRector.php index f8f9c4c3d..0b513e0c6 100644 --- a/vendor/rector/rector/src/Rector/AbstractCollectorRector.php +++ b/vendor/rector/rector/src/Rector/AbstractCollectorRector.php @@ -6,7 +6,7 @@ use PHPStan\Node\CollectedDataNode; use Rector\Core\Contract\Rector\CollectorRectorInterface; use Rector\Core\Exception\ShouldNotHappenException; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; abstract class AbstractCollectorRector extends \Rector\Core\Rector\AbstractRector implements CollectorRectorInterface { /** diff --git a/vendor/rector/rector/src/Reflection/ClassReflectionAnalyzer.php b/vendor/rector/rector/src/Reflection/ClassReflectionAnalyzer.php index 72dc89036..a0ef1567d 100644 --- a/vendor/rector/rector/src/Reflection/ClassReflectionAnalyzer.php +++ b/vendor/rector/rector/src/Reflection/ClassReflectionAnalyzer.php @@ -3,29 +3,16 @@ declare (strict_types=1); namespace Rector\Core\Reflection; -use PHPStan\BetterReflection\Reflection\ReflectionClass; use PHPStan\Reflection\ClassReflection; -use Rector\Core\Util\Reflection\PrivatesAccessor; use ReflectionEnum; final class ClassReflectionAnalyzer { - /** - * @readonly - * @var \Rector\Core\Util\Reflection\PrivatesAccessor - */ - private $privatesAccessor; - public function __construct(PrivatesAccessor $privatesAccessor) - { - $this->privatesAccessor = $privatesAccessor; - } public function resolveParentClassName(ClassReflection $classReflection) : ?string { $nativeReflection = $classReflection->getNativeReflection(); if ($nativeReflection instanceof ReflectionEnum) { return null; } - $betterReflectionClass = $this->privatesAccessor->getPrivateProperty($nativeReflection, 'betterReflectionClass'); - /** @var ReflectionClass $betterReflectionClass */ - return $betterReflectionClass->getParentClassName(); + return $nativeReflection->getParentClassName(); } } diff --git a/vendor/rector/rector/src/Util/MemoryLimiter.php b/vendor/rector/rector/src/Util/MemoryLimiter.php index 9bdcf2a06..a65e06aca 100644 --- a/vendor/rector/rector/src/Util/MemoryLimiter.php +++ b/vendor/rector/rector/src/Util/MemoryLimiter.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\Util; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use Rector\Core\ValueObject\Configuration; use Rector\RectorGenerator\Exception\ConfigurationException; /** diff --git a/vendor/rector/rector/src/Util/StringUtils.php b/vendor/rector/rector/src/Util/StringUtils.php index c85a660df..3f846a909 100644 --- a/vendor/rector/rector/src/Util/StringUtils.php +++ b/vendor/rector/rector/src/Util/StringUtils.php @@ -3,7 +3,7 @@ declare (strict_types=1); namespace Rector\Core\Util; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; final class StringUtils { public static function isMatch(string $value, string $regex) : bool diff --git a/vendor/rector/rector/src/Validation/RectorAssert.php b/vendor/rector/rector/src/Validation/RectorAssert.php index 0d99a56dc..e96a4f40d 100644 --- a/vendor/rector/rector/src/Validation/RectorAssert.php +++ b/vendor/rector/rector/src/Validation/RectorAssert.php @@ -4,7 +4,7 @@ namespace Rector\Core\Validation; use Rector\Core\Util\StringUtils; -use RectorPrefix202311\Webmozart\Assert\InvalidArgumentException; +use RectorPrefix202312\Webmozart\Assert\InvalidArgumentException; /** * @see \Rector\Core\Tests\Validation\RectorAssertTest */ diff --git a/vendor/rector/rector/src/ValueObject/Configuration.php b/vendor/rector/rector/src/ValueObject/Configuration.php index 4530e5d90..bab7f0222 100644 --- a/vendor/rector/rector/src/ValueObject/Configuration.php +++ b/vendor/rector/rector/src/ValueObject/Configuration.php @@ -5,7 +5,7 @@ use PHPStan\Collectors\CollectedData; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; final class Configuration { /** diff --git a/vendor/rector/rector/src/ValueObject/Error/SystemError.php b/vendor/rector/rector/src/ValueObject/Error/SystemError.php index ec61d5bc0..16033700d 100644 --- a/vendor/rector/rector/src/ValueObject/Error/SystemError.php +++ b/vendor/rector/rector/src/ValueObject/Error/SystemError.php @@ -4,7 +4,7 @@ namespace Rector\Core\ValueObject\Error; use Rector\Parallel\ValueObject\BridgeItem; -use RectorPrefix202311\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202312\Symplify\EasyParallel\Contract\SerializableInterface; final class SystemError implements SerializableInterface { /** @@ -61,7 +61,7 @@ public function jsonSerialize() : array * @param mixed[] $json * @return $this */ - public static function decode(array $json) : \RectorPrefix202311\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202312\Symplify\EasyParallel\Contract\SerializableInterface { return new self($json[BridgeItem::MESSAGE], $json[BridgeItem::RELATIVE_FILE_PATH], $json[BridgeItem::LINE], $json[BridgeItem::RECTOR_CLASS]); } diff --git a/vendor/rector/rector/src/ValueObject/FileProcessResult.php b/vendor/rector/rector/src/ValueObject/FileProcessResult.php index 66ddad1f9..9bf7eb9b3 100644 --- a/vendor/rector/rector/src/ValueObject/FileProcessResult.php +++ b/vendor/rector/rector/src/ValueObject/FileProcessResult.php @@ -6,7 +6,7 @@ use PHPStan\Collectors\CollectedData; use Rector\Core\ValueObject\Error\SystemError; use Rector\Core\ValueObject\Reporting\FileDiff; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; final class FileProcessResult { /** diff --git a/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php b/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php index 7a15d8c02..054169a91 100644 --- a/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php +++ b/vendor/rector/rector/src/ValueObject/PhpVersionFeature.php @@ -527,4 +527,9 @@ final class PhpVersionFeature * @var int */ public const OVERRIDE_ATTRIBUTE = \Rector\Core\ValueObject\PhpVersion::PHP_83; + /** + * @see https://wiki.php.net/rfc/typed_class_constants + * @var int + */ + public const TYPED_CLASS_CONSTANTS = \Rector\Core\ValueObject\PhpVersion::PHP_83; } diff --git a/vendor/rector/rector/src/ValueObject/ProcessResult.php b/vendor/rector/rector/src/ValueObject/ProcessResult.php index 7ba25410b..394ba370c 100644 --- a/vendor/rector/rector/src/ValueObject/ProcessResult.php +++ b/vendor/rector/rector/src/ValueObject/ProcessResult.php @@ -6,7 +6,7 @@ use PHPStan\Collectors\CollectedData; use Rector\Core\ValueObject\Error\SystemError; use Rector\Core\ValueObject\Reporting\FileDiff; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; final class ProcessResult { /** diff --git a/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php b/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php index 0a1b46908..b106ffec3 100644 --- a/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php +++ b/vendor/rector/rector/src/ValueObject/Reporting/FileDiff.php @@ -3,12 +3,12 @@ declare (strict_types=1); namespace Rector\Core\ValueObject\Reporting; -use RectorPrefix202311\Nette\Utils\Strings; +use RectorPrefix202312\Nette\Utils\Strings; use Rector\ChangesReporting\ValueObject\RectorWithLineChange; use Rector\Core\Contract\Rector\RectorInterface; use Rector\Parallel\ValueObject\BridgeItem; -use RectorPrefix202311\Symplify\EasyParallel\Contract\SerializableInterface; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Symplify\EasyParallel\Contract\SerializableInterface; +use RectorPrefix202312\Webmozart\Assert\Assert; final class FileDiff implements SerializableInterface { /** @@ -101,7 +101,7 @@ public function jsonSerialize() : array * @param array $json * @return $this */ - public static function decode(array $json) : \RectorPrefix202311\Symplify\EasyParallel\Contract\SerializableInterface + public static function decode(array $json) : \RectorPrefix202312\Symplify\EasyParallel\Contract\SerializableInterface { $rectorWithLineChanges = []; foreach ($json[BridgeItem::RECTORS_WITH_LINE_CHANGES] as $rectorWithLineChangesJson) { diff --git a/vendor/rector/rector/src/functions/node_helper.php b/vendor/rector/rector/src/functions/node_helper.php index 06f651c59..790979052 100644 --- a/vendor/rector/rector/src/functions/node_helper.php +++ b/vendor/rector/rector/src/functions/node_helper.php @@ -1,7 +1,7 @@ $originalClassName + * + * @psalm-return MockObject&RealInstanceType + */ + protected function createMock(string $originalClassName): MockObject + { + } } } diff --git a/vendor/rector/rector/vendor/autoload.php b/vendor/rector/rector/vendor/autoload.php index 648fa600b..9bb987d0b 100644 --- a/vendor/rector/rector/vendor/autoload.php +++ b/vendor/rector/rector/vendor/autoload.php @@ -22,4 +22,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInita55c41c7fa52abd86138c6f32df1d185::getLoader(); +return ComposerAutoloaderInit8339caf294dd12447c06647e5d0dc118::getLoader(); diff --git a/vendor/rector/rector/vendor/bin/php-parse b/vendor/rector/rector/vendor/bin/php-parse index 1e069f3a9..e4f37b280 100644 --- a/vendor/rector/rector/vendor/bin/php-parse +++ b/vendor/rector/rector/vendor/bin/php-parse @@ -8,12 +8,12 @@ * * @generated */ -namespace RectorPrefix202311\Composer; +namespace RectorPrefix202312\Composer; $GLOBALS['_composer_bin_dir'] = __DIR__; $GLOBALS['_composer_autoload_path'] = __DIR__ . '/..' . '/autoload.php'; if (\PHP_VERSION_ID < 80000) { - if (!\class_exists('RectorPrefix202311\\Composer\\BinProxyWrapper')) { + if (!\class_exists('RectorPrefix202312\\Composer\\BinProxyWrapper')) { /** * @internal */ @@ -87,7 +87,7 @@ if (\PHP_VERSION_ID < 80000) { } } } - if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202311\\Composer\\BinProxyWrapper')) { + if (\function_exists('stream_get_wrappers') && \in_array('phpvfscomposer', \stream_get_wrappers(), \true) || \function_exists('stream_wrapper_register') && \stream_wrapper_register('phpvfscomposer', 'RectorPrefix202312\\Composer\\BinProxyWrapper')) { return include "phpvfscomposer://" . __DIR__ . '/..' . '/nikic/php-parser/bin/php-parse'; } } diff --git a/vendor/rector/rector/vendor/clue/ndjson-react/composer.json b/vendor/rector/rector/vendor/clue/ndjson-react/composer.json index 8e1a6b7a7..5bc27b2bd 100644 --- a/vendor/rector/rector/vendor/clue/ndjson-react/composer.json +++ b/vendor/rector/rector/vendor/clue/ndjson-react/composer.json @@ -27,12 +27,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Clue\\React\\NDJson\\": "src\/" + "RectorPrefix202312\\Clue\\React\\NDJson\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202311\\Clue\\Tests\\React\\NDJson\\": "tests\/" + "RectorPrefix202312\\Clue\\Tests\\React\\NDJson\\": "tests\/" } } } \ No newline at end of file diff --git a/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php b/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php index d5e0a1124..7366b048c 100644 --- a/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php +++ b/vendor/rector/rector/vendor/clue/ndjson-react/src/Decoder.php @@ -1,11 +1,11 @@ $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php', 'PhpParser\\PrettyPrinterAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', 'PhpParser\\PrettyPrinter\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', - 'RectorPrefix202311\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', - 'RectorPrefix202311\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', - 'RectorPrefix202311\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', - 'RectorPrefix202311\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', - 'RectorPrefix202311\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', - 'RectorPrefix202311\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', - 'RectorPrefix202311\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', - 'RectorPrefix202311\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', - 'RectorPrefix202311\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', - 'RectorPrefix202311\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', - 'RectorPrefix202311\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', - 'RectorPrefix202311\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', - 'RectorPrefix202311\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', - 'RectorPrefix202311\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', - 'RectorPrefix202311\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', - 'RectorPrefix202311\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', - 'RectorPrefix202311\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', - 'RectorPrefix202311\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', - 'RectorPrefix202311\\Illuminate\\Container\\BoundMethod' => $vendorDir . '/illuminate/container/BoundMethod.php', - 'RectorPrefix202311\\Illuminate\\Container\\Container' => $vendorDir . '/illuminate/container/Container.php', - 'RectorPrefix202311\\Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/container/ContextualBindingBuilder.php', - 'RectorPrefix202311\\Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/illuminate/container/EntryNotFoundException.php', - 'RectorPrefix202311\\Illuminate\\Container\\RewindableGenerator' => $vendorDir . '/illuminate/container/RewindableGenerator.php', - 'RectorPrefix202311\\Illuminate\\Container\\Util' => $vendorDir . '/illuminate/container/Util.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/illuminate/contracts/Auth/Access/Authorizable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/illuminate/contracts/Auth/Access/Gate.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/illuminate/contracts/Auth/Authenticatable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/illuminate/contracts/Auth/CanResetPassword.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/illuminate/contracts/Auth/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/illuminate/contracts/Auth/Guard.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => $vendorDir . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/illuminate/contracts/Auth/MustVerifyEmail.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/illuminate/contracts/Auth/PasswordBroker.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/illuminate/contracts/Auth/StatefulGuard.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/illuminate/contracts/Auth/SupportsBasicAuth.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/illuminate/contracts/Auth/UserProvider.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/illuminate/contracts/Broadcasting/Broadcaster.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/illuminate/contracts/Broadcasting/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => $vendorDir . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/illuminate/contracts/Bus/Dispatcher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/illuminate/contracts/Bus/QueueingDispatcher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/illuminate/contracts/Cache/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/illuminate/contracts/Cache/Lock.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/illuminate/contracts/Cache/LockProvider.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Cache/LockTimeoutException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/illuminate/contracts/Cache/Repository.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/illuminate/contracts/Cache/Store.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/illuminate/contracts/Config/Repository.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/illuminate/contracts/Console/Application.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Console\\Isolatable' => $vendorDir . '/illuminate/contracts/Console/Isolatable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/illuminate/contracts/Console/Kernel.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => $vendorDir . '/illuminate/contracts/Console/PromptsForMissingInput.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/illuminate/contracts/Container/BindingResolutionException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Container\\CircularDependencyException' => $vendorDir . '/illuminate/contracts/Container/CircularDependencyException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/illuminate/contracts/Container/Container.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/contracts/Container/ContextualBindingBuilder.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/illuminate/contracts/Cookie/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/illuminate/contracts/Cookie/QueueingFactory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Builder.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Castable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => $vendorDir . '/illuminate/contracts/Database/Events/MigrationEvent.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/illuminate/contracts/Database/ModelIdentifier.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Query\\Builder' => $vendorDir . '/illuminate/contracts/Database/Query/Builder.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => $vendorDir . '/illuminate/contracts/Database/Query/ConditionExpression.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Query\\Expression' => $vendorDir . '/illuminate/contracts/Database/Query/Expression.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/illuminate/contracts/Debug/ExceptionHandler.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/illuminate/contracts/Encryption/DecryptException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/illuminate/contracts/Encryption/EncryptException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/illuminate/contracts/Encryption/Encrypter.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/illuminate/contracts/Encryption/StringEncrypter.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/illuminate/contracts/Events/Dispatcher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/illuminate/contracts/Filesystem/Cloud.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/illuminate/contracts/Filesystem/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/illuminate/contracts/Filesystem/FileNotFoundException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/illuminate/contracts/Filesystem/Filesystem.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Filesystem/LockTimeoutException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/illuminate/contracts/Foundation/Application.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => $vendorDir . '/illuminate/contracts/Foundation/CachesConfiguration.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => $vendorDir . '/illuminate/contracts/Foundation/CachesRoutes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => $vendorDir . '/illuminate/contracts/Foundation/ExceptionRenderer.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => $vendorDir . '/illuminate/contracts/Foundation/MaintenanceMode.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/illuminate/contracts/Hashing/Hasher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/illuminate/contracts/Http/Kernel.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\Attachable' => $vendorDir . '/illuminate/contracts/Mail/Attachable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\Factory' => $vendorDir . '/illuminate/contracts/Mail/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/illuminate/contracts/Mail/MailQueue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/illuminate/contracts/Mail/Mailable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/illuminate/contracts/Mail/Mailer.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/illuminate/contracts/Notifications/Dispatcher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/illuminate/contracts/Notifications/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => $vendorDir . '/illuminate/contracts/Pagination/CursorPaginator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/illuminate/contracts/Pagination/Paginator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/illuminate/contracts/Pipeline/Hub.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/illuminate/contracts/Pipeline/Pipeline.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Process\\InvokedProcess' => $vendorDir . '/illuminate/contracts/Process/InvokedProcess.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Process\\ProcessResult' => $vendorDir . '/illuminate/contracts/Process/ProcessResult.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ClearableQueue' => $vendorDir . '/illuminate/contracts/Queue/ClearableQueue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/illuminate/contracts/Queue/EntityNotFoundException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/illuminate/contracts/Queue/EntityResolver.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/illuminate/contracts/Queue/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/illuminate/contracts/Queue/Job.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/illuminate/contracts/Queue/Monitor.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/illuminate/contracts/Queue/Queue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/illuminate/contracts/Queue/QueueableCollection.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/illuminate/contracts/Queue/QueueableEntity.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUnique.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/illuminate/contracts/Redis/Connection.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Redis\\Connector' => $vendorDir . '/illuminate/contracts/Redis/Connector.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/illuminate/contracts/Redis/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/illuminate/contracts/Redis/LimiterTimeoutException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/illuminate/contracts/Routing/BindingRegistrar.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/illuminate/contracts/Routing/Registrar.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/illuminate/contracts/Routing/ResponseFactory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/illuminate/contracts/Routing/UrlGenerator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/illuminate/contracts/Routing/UrlRoutable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => $vendorDir . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/illuminate/contracts/Session/Session.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/illuminate/contracts/Support/Arrayable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => $vendorDir . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\DeferrableProvider' => $vendorDir . '/illuminate/contracts/Support/DeferrableProvider.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => $vendorDir . '/illuminate/contracts/Support/DeferringDisplayableValue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/illuminate/contracts/Support/Htmlable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/illuminate/contracts/Support/Jsonable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/illuminate/contracts/Support/MessageBag.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/illuminate/contracts/Support/MessageProvider.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/illuminate/contracts/Support/Renderable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/illuminate/contracts/Support/Responsable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\ValidatedData' => $vendorDir . '/illuminate/contracts/Support/ValidatedData.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/illuminate/contracts/Translation/HasLocalePreference.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/illuminate/contracts/Translation/Loader.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/illuminate/contracts/Translation/Translator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\DataAwareRule' => $vendorDir . '/illuminate/contracts/Validation/DataAwareRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/illuminate/contracts/Validation/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/illuminate/contracts/Validation/ImplicitRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\InvokableRule' => $vendorDir . '/illuminate/contracts/Validation/InvokableRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/illuminate/contracts/Validation/Rule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => $vendorDir . '/illuminate/contracts/Validation/UncompromisedVerifier.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\ValidationRule' => $vendorDir . '/illuminate/contracts/Validation/ValidationRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/illuminate/contracts/Validation/Validator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => $vendorDir . '/illuminate/contracts/Validation/ValidatorAwareRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/illuminate/contracts/View/Engine.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/illuminate/contracts/View/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\View\\View' => $vendorDir . '/illuminate/contracts/View/View.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\View\\ViewCompilationException' => $vendorDir . '/illuminate/contracts/View/ViewCompilationException.php', - 'RectorPrefix202311\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', - 'RectorPrefix202311\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', - 'RectorPrefix202311\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', - 'RectorPrefix202311\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', - 'RectorPrefix202311\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', - 'RectorPrefix202311\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', - 'RectorPrefix202311\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', - 'RectorPrefix202311\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', - 'RectorPrefix202311\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', - 'RectorPrefix202311\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', - 'RectorPrefix202311\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', - 'RectorPrefix202311\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', - 'RectorPrefix202311\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', - 'RectorPrefix202311\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', - 'RectorPrefix202311\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', - 'RectorPrefix202311\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', - 'RectorPrefix202311\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', - 'RectorPrefix202311\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', - 'RectorPrefix202311\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', - 'RectorPrefix202311\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', - 'RectorPrefix202311\\Nette\\Utils\\ObjectMixin' => $vendorDir . '/nette/utils/src/Utils/ObjectMixin.php', - 'RectorPrefix202311\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', - 'RectorPrefix202311\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', - 'RectorPrefix202311\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', - 'RectorPrefix202311\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', - 'RectorPrefix202311\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', - 'RectorPrefix202311\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202311\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', - 'RectorPrefix202311\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', - 'RectorPrefix202311\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', - 'RectorPrefix202311\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', - 'RectorPrefix202311\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', - 'RectorPrefix202311\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', - 'RectorPrefix202311\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', - 'RectorPrefix202311\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', - 'RectorPrefix202311\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', - 'RectorPrefix202311\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', - 'RectorPrefix202311\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', - 'RectorPrefix202311\\Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', - 'RectorPrefix202311\\Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', - 'RectorPrefix202311\\Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', - 'RectorPrefix202311\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', - 'RectorPrefix202311\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', - 'RectorPrefix202311\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', - 'RectorPrefix202311\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', - 'RectorPrefix202311\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', - 'RectorPrefix202311\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', - 'RectorPrefix202311\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', - 'RectorPrefix202311\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', - 'RectorPrefix202311\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', - 'RectorPrefix202311\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', - 'RectorPrefix202311\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', - 'RectorPrefix202311\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', - 'RectorPrefix202311\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', - 'RectorPrefix202311\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', - 'RectorPrefix202311\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', - 'RectorPrefix202311\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', - 'RectorPrefix202311\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', - 'RectorPrefix202311\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', - 'RectorPrefix202311\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', - 'RectorPrefix202311\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', - 'RectorPrefix202311\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', - 'RectorPrefix202311\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', - 'RectorPrefix202311\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', - 'RectorPrefix202311\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', - 'RectorPrefix202311\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', - 'RectorPrefix202311\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', - 'RectorPrefix202311\\React\\Promise\\CancellablePromiseInterface' => $vendorDir . '/react/promise/src/CancellablePromiseInterface.php', - 'RectorPrefix202311\\React\\Promise\\CancellationQueue' => $vendorDir . '/react/promise/src/CancellationQueue.php', - 'RectorPrefix202311\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', - 'RectorPrefix202311\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', - 'RectorPrefix202311\\React\\Promise\\ExtendedPromiseInterface' => $vendorDir . '/react/promise/src/ExtendedPromiseInterface.php', - 'RectorPrefix202311\\React\\Promise\\FulfilledPromise' => $vendorDir . '/react/promise/src/FulfilledPromise.php', - 'RectorPrefix202311\\React\\Promise\\LazyPromise' => $vendorDir . '/react/promise/src/LazyPromise.php', - 'RectorPrefix202311\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', - 'RectorPrefix202311\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', - 'RectorPrefix202311\\React\\Promise\\PromisorInterface' => $vendorDir . '/react/promise/src/PromisorInterface.php', - 'RectorPrefix202311\\React\\Promise\\RejectedPromise' => $vendorDir . '/react/promise/src/RejectedPromise.php', - 'RectorPrefix202311\\React\\Promise\\UnhandledRejectionException' => $vendorDir . '/react/promise/src/UnhandledRejectionException.php', - 'RectorPrefix202311\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', - 'RectorPrefix202311\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', - 'RectorPrefix202311\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', - 'RectorPrefix202311\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', - 'RectorPrefix202311\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', - 'RectorPrefix202311\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', - 'RectorPrefix202311\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', - 'RectorPrefix202311\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', - 'RectorPrefix202311\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', - 'RectorPrefix202311\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', - 'RectorPrefix202311\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', - 'RectorPrefix202311\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', - 'RectorPrefix202311\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', - 'RectorPrefix202311\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', - 'RectorPrefix202311\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', - 'RectorPrefix202311\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', - 'RectorPrefix202311\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', - 'RectorPrefix202311\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', - 'RectorPrefix202311\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', - 'RectorPrefix202311\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', - 'RectorPrefix202311\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', - 'RectorPrefix202311\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', - 'RectorPrefix202311\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', - 'RectorPrefix202311\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', - 'RectorPrefix202311\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', - 'RectorPrefix202311\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', - 'RectorPrefix202311\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', - 'RectorPrefix202311\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', - 'RectorPrefix202311\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', - 'RectorPrefix202311\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => $vendorDir . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => $vendorDir . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\CpuCoreCountProvider' => $vendorDir . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Enum\\Action' => $vendorDir . '/symplify/easy-parallel/src/Enum/Action.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Enum\\Content' => $vendorDir . '/symplify/easy-parallel/src/Enum/Content.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Enum\\ReactCommand' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactCommand.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Enum\\ReactEvent' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactEvent.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => $vendorDir . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\FileSystem\\FilePathNormalizer' => $vendorDir . '/symplify/easy-parallel/src/FileSystem/FilePathNormalizer.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => $vendorDir . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ScheduleFactory' => $vendorDir . '/symplify/easy-parallel/src/ScheduleFactory.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php', - 'RectorPrefix202311\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', - 'RectorPrefix202311\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', - 'RectorPrefix202311\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', + 'RectorPrefix202312\\Clue\\React\\NDJson\\Decoder' => $vendorDir . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202312\\Clue\\React\\NDJson\\Encoder' => $vendorDir . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchAllResult' => $vendorDir . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchAllStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchAllWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchResult' => $vendorDir . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchStrictGroupsResult' => $vendorDir . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchWithOffsetsResult' => $vendorDir . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\PcreException' => $vendorDir . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202312\\Composer\\Pcre\\Preg' => $vendorDir . '/composer/pcre/src/Preg.php', + 'RectorPrefix202312\\Composer\\Pcre\\Regex' => $vendorDir . '/composer/pcre/src/Regex.php', + 'RectorPrefix202312\\Composer\\Pcre\\ReplaceResult' => $vendorDir . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\UnexpectedNullMatchException' => $vendorDir . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202312\\Composer\\Semver\\Comparator' => $vendorDir . '/composer/semver/src/Comparator.php', + 'RectorPrefix202312\\Composer\\Semver\\CompilingMatcher' => $vendorDir . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\Bound' => $vendorDir . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\Constraint' => $vendorDir . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\ConstraintInterface' => $vendorDir . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\MatchAllConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => $vendorDir . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\MultiConstraint' => $vendorDir . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202312\\Composer\\Semver\\Interval' => $vendorDir . '/composer/semver/src/Interval.php', + 'RectorPrefix202312\\Composer\\Semver\\Intervals' => $vendorDir . '/composer/semver/src/Intervals.php', + 'RectorPrefix202312\\Composer\\Semver\\Semver' => $vendorDir . '/composer/semver/src/Semver.php', + 'RectorPrefix202312\\Composer\\Semver\\VersionParser' => $vendorDir . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202312\\Composer\\XdebugHandler\\PhpConfig' => $vendorDir . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202312\\Composer\\XdebugHandler\\Process' => $vendorDir . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202312\\Composer\\XdebugHandler\\Status' => $vendorDir . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202312\\Composer\\XdebugHandler\\XdebugHandler' => $vendorDir . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\CachedWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Language' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\LanguageInflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\NoopWordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\English\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\French\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Pattern' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Patterns' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Ruleset' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Substitution' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Substitutions' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Transformation' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Transformations' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Word' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\RulesetInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\WordInflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + 'RectorPrefix202312\\Evenement\\EventEmitter' => $vendorDir . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202312\\Evenement\\EventEmitterInterface' => $vendorDir . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202312\\Evenement\\EventEmitterTrait' => $vendorDir . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => $vendorDir . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Diagnoser' => $vendorDir . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => $vendorDir . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => $vendorDir . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => $vendorDir . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202312\\Illuminate\\Container\\BoundMethod' => $vendorDir . '/illuminate/container/BoundMethod.php', + 'RectorPrefix202312\\Illuminate\\Container\\Container' => $vendorDir . '/illuminate/container/Container.php', + 'RectorPrefix202312\\Illuminate\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/container/ContextualBindingBuilder.php', + 'RectorPrefix202312\\Illuminate\\Container\\EntryNotFoundException' => $vendorDir . '/illuminate/container/EntryNotFoundException.php', + 'RectorPrefix202312\\Illuminate\\Container\\RewindableGenerator' => $vendorDir . '/illuminate/container/RewindableGenerator.php', + 'RectorPrefix202312\\Illuminate\\Container\\Util' => $vendorDir . '/illuminate/container/Util.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => $vendorDir . '/illuminate/contracts/Auth/Access/Authorizable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Access\\Gate' => $vendorDir . '/illuminate/contracts/Auth/Access/Gate.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Authenticatable' => $vendorDir . '/illuminate/contracts/Auth/Authenticatable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\CanResetPassword' => $vendorDir . '/illuminate/contracts/Auth/CanResetPassword.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Factory' => $vendorDir . '/illuminate/contracts/Auth/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Guard' => $vendorDir . '/illuminate/contracts/Auth/Guard.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => $vendorDir . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => $vendorDir . '/illuminate/contracts/Auth/MustVerifyEmail.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\PasswordBroker' => $vendorDir . '/illuminate/contracts/Auth/PasswordBroker.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => $vendorDir . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\StatefulGuard' => $vendorDir . '/illuminate/contracts/Auth/StatefulGuard.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => $vendorDir . '/illuminate/contracts/Auth/SupportsBasicAuth.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\UserProvider' => $vendorDir . '/illuminate/contracts/Auth/UserProvider.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => $vendorDir . '/illuminate/contracts/Broadcasting/Broadcaster.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\Factory' => $vendorDir . '/illuminate/contracts/Broadcasting/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => $vendorDir . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => $vendorDir . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Bus\\Dispatcher' => $vendorDir . '/illuminate/contracts/Bus/Dispatcher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => $vendorDir . '/illuminate/contracts/Bus/QueueingDispatcher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\Factory' => $vendorDir . '/illuminate/contracts/Cache/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\Lock' => $vendorDir . '/illuminate/contracts/Cache/Lock.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\LockProvider' => $vendorDir . '/illuminate/contracts/Cache/LockProvider.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Cache/LockTimeoutException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\Repository' => $vendorDir . '/illuminate/contracts/Cache/Repository.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\Store' => $vendorDir . '/illuminate/contracts/Cache/Store.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Config\\Repository' => $vendorDir . '/illuminate/contracts/Config/Repository.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Console\\Application' => $vendorDir . '/illuminate/contracts/Console/Application.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Console\\Isolatable' => $vendorDir . '/illuminate/contracts/Console/Isolatable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Console\\Kernel' => $vendorDir . '/illuminate/contracts/Console/Kernel.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => $vendorDir . '/illuminate/contracts/Console/PromptsForMissingInput.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Container\\BindingResolutionException' => $vendorDir . '/illuminate/contracts/Container/BindingResolutionException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Container\\CircularDependencyException' => $vendorDir . '/illuminate/contracts/Container/CircularDependencyException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Container\\Container' => $vendorDir . '/illuminate/contracts/Container/Container.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => $vendorDir . '/illuminate/contracts/Container/ContextualBindingBuilder.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cookie\\Factory' => $vendorDir . '/illuminate/contracts/Cookie/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => $vendorDir . '/illuminate/contracts/Cookie/QueueingFactory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Builder.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => $vendorDir . '/illuminate/contracts/Database/Eloquent/Castable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => $vendorDir . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => $vendorDir . '/illuminate/contracts/Database/Events/MigrationEvent.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\ModelIdentifier' => $vendorDir . '/illuminate/contracts/Database/ModelIdentifier.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Query\\Builder' => $vendorDir . '/illuminate/contracts/Database/Query/Builder.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => $vendorDir . '/illuminate/contracts/Database/Query/ConditionExpression.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Query\\Expression' => $vendorDir . '/illuminate/contracts/Database/Query/Expression.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => $vendorDir . '/illuminate/contracts/Debug/ExceptionHandler.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Encryption\\DecryptException' => $vendorDir . '/illuminate/contracts/Encryption/DecryptException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Encryption\\EncryptException' => $vendorDir . '/illuminate/contracts/Encryption/EncryptException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Encryption\\Encrypter' => $vendorDir . '/illuminate/contracts/Encryption/Encrypter.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => $vendorDir . '/illuminate/contracts/Encryption/StringEncrypter.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Events\\Dispatcher' => $vendorDir . '/illuminate/contracts/Events/Dispatcher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => $vendorDir . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\Cloud' => $vendorDir . '/illuminate/contracts/Filesystem/Cloud.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\Factory' => $vendorDir . '/illuminate/contracts/Filesystem/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => $vendorDir . '/illuminate/contracts/Filesystem/FileNotFoundException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\Filesystem' => $vendorDir . '/illuminate/contracts/Filesystem/Filesystem.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => $vendorDir . '/illuminate/contracts/Filesystem/LockTimeoutException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\Application' => $vendorDir . '/illuminate/contracts/Foundation/Application.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => $vendorDir . '/illuminate/contracts/Foundation/CachesConfiguration.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => $vendorDir . '/illuminate/contracts/Foundation/CachesRoutes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => $vendorDir . '/illuminate/contracts/Foundation/ExceptionRenderer.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => $vendorDir . '/illuminate/contracts/Foundation/MaintenanceMode.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Hashing\\Hasher' => $vendorDir . '/illuminate/contracts/Hashing/Hasher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Http\\Kernel' => $vendorDir . '/illuminate/contracts/Http/Kernel.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\Attachable' => $vendorDir . '/illuminate/contracts/Mail/Attachable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\Factory' => $vendorDir . '/illuminate/contracts/Mail/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\MailQueue' => $vendorDir . '/illuminate/contracts/Mail/MailQueue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\Mailable' => $vendorDir . '/illuminate/contracts/Mail/Mailable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\Mailer' => $vendorDir . '/illuminate/contracts/Mail/Mailer.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Notifications\\Dispatcher' => $vendorDir . '/illuminate/contracts/Notifications/Dispatcher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Notifications\\Factory' => $vendorDir . '/illuminate/contracts/Notifications/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => $vendorDir . '/illuminate/contracts/Pagination/CursorPaginator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => $vendorDir . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pagination\\Paginator' => $vendorDir . '/illuminate/contracts/Pagination/Paginator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pipeline\\Hub' => $vendorDir . '/illuminate/contracts/Pipeline/Hub.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pipeline\\Pipeline' => $vendorDir . '/illuminate/contracts/Pipeline/Pipeline.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Process\\InvokedProcess' => $vendorDir . '/illuminate/contracts/Process/InvokedProcess.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Process\\ProcessResult' => $vendorDir . '/illuminate/contracts/Process/ProcessResult.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ClearableQueue' => $vendorDir . '/illuminate/contracts/Queue/ClearableQueue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => $vendorDir . '/illuminate/contracts/Queue/EntityNotFoundException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\EntityResolver' => $vendorDir . '/illuminate/contracts/Queue/EntityResolver.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\Factory' => $vendorDir . '/illuminate/contracts/Queue/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\Job' => $vendorDir . '/illuminate/contracts/Queue/Job.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\Monitor' => $vendorDir . '/illuminate/contracts/Queue/Monitor.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\Queue' => $vendorDir . '/illuminate/contracts/Queue/Queue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\QueueableCollection' => $vendorDir . '/illuminate/contracts/Queue/QueueableCollection.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\QueueableEntity' => $vendorDir . '/illuminate/contracts/Queue/QueueableEntity.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUnique.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => $vendorDir . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldQueue' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => $vendorDir . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Redis\\Connection' => $vendorDir . '/illuminate/contracts/Redis/Connection.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Redis\\Connector' => $vendorDir . '/illuminate/contracts/Redis/Connector.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Redis\\Factory' => $vendorDir . '/illuminate/contracts/Redis/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => $vendorDir . '/illuminate/contracts/Redis/LimiterTimeoutException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => $vendorDir . '/illuminate/contracts/Routing/BindingRegistrar.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\Registrar' => $vendorDir . '/illuminate/contracts/Routing/Registrar.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\ResponseFactory' => $vendorDir . '/illuminate/contracts/Routing/ResponseFactory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\UrlGenerator' => $vendorDir . '/illuminate/contracts/Routing/UrlGenerator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\UrlRoutable' => $vendorDir . '/illuminate/contracts/Routing/UrlRoutable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => $vendorDir . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Session\\Session' => $vendorDir . '/illuminate/contracts/Session/Session.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Arrayable' => $vendorDir . '/illuminate/contracts/Support/Arrayable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => $vendorDir . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\DeferrableProvider' => $vendorDir . '/illuminate/contracts/Support/DeferrableProvider.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => $vendorDir . '/illuminate/contracts/Support/DeferringDisplayableValue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Htmlable' => $vendorDir . '/illuminate/contracts/Support/Htmlable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Jsonable' => $vendorDir . '/illuminate/contracts/Support/Jsonable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\MessageBag' => $vendorDir . '/illuminate/contracts/Support/MessageBag.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\MessageProvider' => $vendorDir . '/illuminate/contracts/Support/MessageProvider.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Renderable' => $vendorDir . '/illuminate/contracts/Support/Renderable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Responsable' => $vendorDir . '/illuminate/contracts/Support/Responsable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\ValidatedData' => $vendorDir . '/illuminate/contracts/Support/ValidatedData.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => $vendorDir . '/illuminate/contracts/Translation/HasLocalePreference.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Translation\\Loader' => $vendorDir . '/illuminate/contracts/Translation/Loader.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Translation\\Translator' => $vendorDir . '/illuminate/contracts/Translation/Translator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\DataAwareRule' => $vendorDir . '/illuminate/contracts/Validation/DataAwareRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\Factory' => $vendorDir . '/illuminate/contracts/Validation/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\ImplicitRule' => $vendorDir . '/illuminate/contracts/Validation/ImplicitRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\InvokableRule' => $vendorDir . '/illuminate/contracts/Validation/InvokableRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\Rule' => $vendorDir . '/illuminate/contracts/Validation/Rule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => $vendorDir . '/illuminate/contracts/Validation/UncompromisedVerifier.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => $vendorDir . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\ValidationRule' => $vendorDir . '/illuminate/contracts/Validation/ValidationRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\Validator' => $vendorDir . '/illuminate/contracts/Validation/Validator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => $vendorDir . '/illuminate/contracts/Validation/ValidatorAwareRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\View\\Engine' => $vendorDir . '/illuminate/contracts/View/Engine.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\View\\Factory' => $vendorDir . '/illuminate/contracts/View/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\View\\View' => $vendorDir . '/illuminate/contracts/View/View.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\View\\ViewCompilationException' => $vendorDir . '/illuminate/contracts/View/ViewCompilationException.php', + 'RectorPrefix202312\\Nette\\ArgumentOutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\DeprecatedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\DirectoryNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\FileNotFoundException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\HtmlStringable' => $vendorDir . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202312\\Nette\\IOException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\InvalidArgumentException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\InvalidStateException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\Iterators\\CachingIterator' => $vendorDir . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202312\\Nette\\Iterators\\Mapper' => $vendorDir . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202312\\Nette\\Localization\\ITranslator' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202312\\Nette\\Localization\\Translator' => $vendorDir . '/nette/utils/src/Translator.php', + 'RectorPrefix202312\\Nette\\MemberAccessException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\NotImplementedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\NotSupportedException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\OutOfRangeException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\SmartObject' => $vendorDir . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202312\\Nette\\StaticClass' => $vendorDir . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202312\\Nette\\UnexpectedValueException' => $vendorDir . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\ArrayHash' => $vendorDir . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202312\\Nette\\Utils\\ArrayList' => $vendorDir . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202312\\Nette\\Utils\\Arrays' => $vendorDir . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202312\\Nette\\Utils\\AssertionException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\Callback' => $vendorDir . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202312\\Nette\\Utils\\DateTime' => $vendorDir . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202312\\Nette\\Utils\\FileSystem' => $vendorDir . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202312\\Nette\\Utils\\Floats' => $vendorDir . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202312\\Nette\\Utils\\Helpers' => $vendorDir . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202312\\Nette\\Utils\\Html' => $vendorDir . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202312\\Nette\\Utils\\IHtmlString' => $vendorDir . '/nette/utils/src/compatibility.php', + 'RectorPrefix202312\\Nette\\Utils\\Image' => $vendorDir . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202312\\Nette\\Utils\\ImageException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\Json' => $vendorDir . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202312\\Nette\\Utils\\JsonException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\ObjectHelpers' => $vendorDir . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202312\\Nette\\Utils\\ObjectMixin' => $vendorDir . '/nette/utils/src/Utils/ObjectMixin.php', + 'RectorPrefix202312\\Nette\\Utils\\Paginator' => $vendorDir . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202312\\Nette\\Utils\\Random' => $vendorDir . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202312\\Nette\\Utils\\Reflection' => $vendorDir . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202312\\Nette\\Utils\\RegexpException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\Strings' => $vendorDir . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202312\\Nette\\Utils\\Type' => $vendorDir . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202312\\Nette\\Utils\\UnknownImageFileException' => $vendorDir . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\Validators' => $vendorDir . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\CiDetector' => $vendorDir . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\CiDetectorInterface' => $vendorDir . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\AbstractCi' => $vendorDir . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\AppVeyor' => $vendorDir . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => $vendorDir . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\AzurePipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Bamboo' => $vendorDir . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => $vendorDir . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Buddy' => $vendorDir . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\CiInterface' => $vendorDir . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Circle' => $vendorDir . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Codeship' => $vendorDir . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Continuousphp' => $vendorDir . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Drone' => $vendorDir . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\GitHubActions' => $vendorDir . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\GitLab' => $vendorDir . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Jenkins' => $vendorDir . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\SourceHut' => $vendorDir . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\TeamCity' => $vendorDir . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Travis' => $vendorDir . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Wercker' => $vendorDir . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Env' => $vendorDir . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => $vendorDir . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\TrinaryLogic' => $vendorDir . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202312\\Psr\\Container\\ContainerExceptionInterface' => $vendorDir . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202312\\Psr\\Container\\ContainerInterface' => $vendorDir . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202312\\Psr\\Container\\NotFoundExceptionInterface' => $vendorDir . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202312\\Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202312\\Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202312\\Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/src/LogLevel.php', + 'RectorPrefix202312\\Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202312\\Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202312\\Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202312\\Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202312\\Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/src/NullLogger.php', + 'RectorPrefix202312\\Psr\\SimpleCache\\CacheException' => $vendorDir . '/psr/simple-cache/src/CacheException.php', + 'RectorPrefix202312\\Psr\\SimpleCache\\CacheInterface' => $vendorDir . '/psr/simple-cache/src/CacheInterface.php', + 'RectorPrefix202312\\Psr\\SimpleCache\\InvalidArgumentException' => $vendorDir . '/psr/simple-cache/src/InvalidArgumentException.php', + 'RectorPrefix202312\\React\\Cache\\ArrayCache' => $vendorDir . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202312\\React\\Cache\\CacheInterface' => $vendorDir . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202312\\React\\ChildProcess\\Process' => $vendorDir . '/react/child-process/src/Process.php', + 'RectorPrefix202312\\React\\Dns\\BadServerException' => $vendorDir . '/react/dns/src/BadServerException.php', + 'RectorPrefix202312\\React\\Dns\\Config\\Config' => $vendorDir . '/react/dns/src/Config/Config.php', + 'RectorPrefix202312\\React\\Dns\\Config\\HostsFile' => $vendorDir . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202312\\React\\Dns\\Model\\Message' => $vendorDir . '/react/dns/src/Model/Message.php', + 'RectorPrefix202312\\React\\Dns\\Model\\Record' => $vendorDir . '/react/dns/src/Model/Record.php', + 'RectorPrefix202312\\React\\Dns\\Protocol\\BinaryDumper' => $vendorDir . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202312\\React\\Dns\\Protocol\\Parser' => $vendorDir . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202312\\React\\Dns\\Query\\CachingExecutor' => $vendorDir . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\CancellationException' => $vendorDir . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202312\\React\\Dns\\Query\\CoopExecutor' => $vendorDir . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\ExecutorInterface' => $vendorDir . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202312\\React\\Dns\\Query\\FallbackExecutor' => $vendorDir . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\HostsFileExecutor' => $vendorDir . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\Query' => $vendorDir . '/react/dns/src/Query/Query.php', + 'RectorPrefix202312\\React\\Dns\\Query\\RetryExecutor' => $vendorDir . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\SelectiveTransportExecutor' => $vendorDir . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\TcpTransportExecutor' => $vendorDir . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\TimeoutException' => $vendorDir . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202312\\React\\Dns\\Query\\TimeoutExecutor' => $vendorDir . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\UdpTransportExecutor' => $vendorDir . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202312\\React\\Dns\\RecordNotFoundException' => $vendorDir . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202312\\React\\Dns\\Resolver\\Factory' => $vendorDir . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202312\\React\\Dns\\Resolver\\Resolver' => $vendorDir . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202312\\React\\Dns\\Resolver\\ResolverInterface' => $vendorDir . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtEvLoop' => $vendorDir . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtEventLoop' => $vendorDir . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtLibevLoop' => $vendorDir . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtLibeventLoop' => $vendorDir . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtUvLoop' => $vendorDir . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\Factory' => $vendorDir . '/react/event-loop/src/Factory.php', + 'RectorPrefix202312\\React\\EventLoop\\Loop' => $vendorDir . '/react/event-loop/src/Loop.php', + 'RectorPrefix202312\\React\\EventLoop\\LoopInterface' => $vendorDir . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202312\\React\\EventLoop\\SignalsHandler' => $vendorDir . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202312\\React\\EventLoop\\StreamSelectLoop' => $vendorDir . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\Tick\\FutureTickQueue' => $vendorDir . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202312\\React\\EventLoop\\TimerInterface' => $vendorDir . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202312\\React\\EventLoop\\Timer\\Timer' => $vendorDir . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202312\\React\\EventLoop\\Timer\\Timers' => $vendorDir . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202312\\React\\Promise\\CancellablePromiseInterface' => $vendorDir . '/react/promise/src/CancellablePromiseInterface.php', + 'RectorPrefix202312\\React\\Promise\\CancellationQueue' => $vendorDir . '/react/promise/src/CancellationQueue.php', + 'RectorPrefix202312\\React\\Promise\\Deferred' => $vendorDir . '/react/promise/src/Deferred.php', + 'RectorPrefix202312\\React\\Promise\\Exception\\LengthException' => $vendorDir . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202312\\React\\Promise\\ExtendedPromiseInterface' => $vendorDir . '/react/promise/src/ExtendedPromiseInterface.php', + 'RectorPrefix202312\\React\\Promise\\FulfilledPromise' => $vendorDir . '/react/promise/src/FulfilledPromise.php', + 'RectorPrefix202312\\React\\Promise\\LazyPromise' => $vendorDir . '/react/promise/src/LazyPromise.php', + 'RectorPrefix202312\\React\\Promise\\Promise' => $vendorDir . '/react/promise/src/Promise.php', + 'RectorPrefix202312\\React\\Promise\\PromiseInterface' => $vendorDir . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202312\\React\\Promise\\PromisorInterface' => $vendorDir . '/react/promise/src/PromisorInterface.php', + 'RectorPrefix202312\\React\\Promise\\RejectedPromise' => $vendorDir . '/react/promise/src/RejectedPromise.php', + 'RectorPrefix202312\\React\\Promise\\UnhandledRejectionException' => $vendorDir . '/react/promise/src/UnhandledRejectionException.php', + 'RectorPrefix202312\\React\\Socket\\Connection' => $vendorDir . '/react/socket/src/Connection.php', + 'RectorPrefix202312\\React\\Socket\\ConnectionInterface' => $vendorDir . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202312\\React\\Socket\\Connector' => $vendorDir . '/react/socket/src/Connector.php', + 'RectorPrefix202312\\React\\Socket\\ConnectorInterface' => $vendorDir . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202312\\React\\Socket\\DnsConnector' => $vendorDir . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202312\\React\\Socket\\FdServer' => $vendorDir . '/react/socket/src/FdServer.php', + 'RectorPrefix202312\\React\\Socket\\FixedUriConnector' => $vendorDir . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202312\\React\\Socket\\HappyEyeBallsConnectionBuilder' => $vendorDir . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202312\\React\\Socket\\HappyEyeBallsConnector' => $vendorDir . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202312\\React\\Socket\\LimitingServer' => $vendorDir . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202312\\React\\Socket\\SecureConnector' => $vendorDir . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202312\\React\\Socket\\SecureServer' => $vendorDir . '/react/socket/src/SecureServer.php', + 'RectorPrefix202312\\React\\Socket\\Server' => $vendorDir . '/react/socket/src/Server.php', + 'RectorPrefix202312\\React\\Socket\\ServerInterface' => $vendorDir . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202312\\React\\Socket\\SocketServer' => $vendorDir . '/react/socket/src/SocketServer.php', + 'RectorPrefix202312\\React\\Socket\\StreamEncryption' => $vendorDir . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202312\\React\\Socket\\TcpConnector' => $vendorDir . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202312\\React\\Socket\\TcpServer' => $vendorDir . '/react/socket/src/TcpServer.php', + 'RectorPrefix202312\\React\\Socket\\TimeoutConnector' => $vendorDir . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202312\\React\\Socket\\UnixConnector' => $vendorDir . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202312\\React\\Socket\\UnixServer' => $vendorDir . '/react/socket/src/UnixServer.php', + 'RectorPrefix202312\\React\\Stream\\CompositeStream' => $vendorDir . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202312\\React\\Stream\\DuplexResourceStream' => $vendorDir . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202312\\React\\Stream\\DuplexStreamInterface' => $vendorDir . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202312\\React\\Stream\\ReadableResourceStream' => $vendorDir . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202312\\React\\Stream\\ReadableStreamInterface' => $vendorDir . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202312\\React\\Stream\\ThroughStream' => $vendorDir . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202312\\React\\Stream\\Util' => $vendorDir . '/react/stream/src/Util.php', + 'RectorPrefix202312\\React\\Stream\\WritableResourceStream' => $vendorDir . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202312\\React\\Stream\\WritableStreamInterface' => $vendorDir . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Attribute\\AsCommand' => $vendorDir . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => $vendorDir . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Color' => $vendorDir . '/symfony/console/Color.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => $vendorDir . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\Command' => $vendorDir . '/symfony/console/Command/Command.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\CompleteCommand' => $vendorDir . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => $vendorDir . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\HelpCommand' => $vendorDir . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\LazyCommand' => $vendorDir . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\ListCommand' => $vendorDir . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\LockableTrait' => $vendorDir . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => $vendorDir . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\TraceableCommand' => $vendorDir . '/symfony/console/Command/TraceableCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\CompletionInput' => $vendorDir . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => $vendorDir . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => $vendorDir . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => $vendorDir . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Suggestion' => $vendorDir . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\ConsoleEvents' => $vendorDir . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Cursor' => $vendorDir . '/symfony/console/Cursor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => $vendorDir . '/symfony/console/DataCollector/CommandDataCollector.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Debug\\CliRequest' => $vendorDir . '/symfony/console/Debug/CliRequest.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => $vendorDir . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => $vendorDir . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => $vendorDir . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => $vendorDir . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => $vendorDir . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => $vendorDir . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => $vendorDir . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => $vendorDir . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => $vendorDir . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => $vendorDir . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => $vendorDir . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\LogicException' => $vendorDir . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\MissingInputException' => $vendorDir . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => $vendorDir . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => $vendorDir . '/symfony/console/Exception/RunCommandFailedException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\RuntimeException' => $vendorDir . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => $vendorDir . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => $vendorDir . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => $vendorDir . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => $vendorDir . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => $vendorDir . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\Dumper' => $vendorDir . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => $vendorDir . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\Helper' => $vendorDir . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\HelperInterface' => $vendorDir . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\HelperSet' => $vendorDir . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => $vendorDir . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => $vendorDir . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => $vendorDir . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\ProgressBar' => $vendorDir . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => $vendorDir . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => $vendorDir . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => $vendorDir . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\Table' => $vendorDir . '/symfony/console/Helper/Table.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableCell' => $vendorDir . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => $vendorDir . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableRows' => $vendorDir . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableSeparator' => $vendorDir . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableStyle' => $vendorDir . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\ArgvInput' => $vendorDir . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\ArrayInput' => $vendorDir . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\Input' => $vendorDir . '/symfony/console/Input/Input.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputArgument' => $vendorDir . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => $vendorDir . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputDefinition' => $vendorDir . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputInterface' => $vendorDir . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputOption' => $vendorDir . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => $vendorDir . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\StringInput' => $vendorDir . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => $vendorDir . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => $vendorDir . '/symfony/console/Messenger/RunCommandContext.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => $vendorDir . '/symfony/console/Messenger/RunCommandMessage.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => $vendorDir . '/symfony/console/Messenger/RunCommandMessageHandler.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => $vendorDir . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\BufferedOutput' => $vendorDir . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => $vendorDir . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => $vendorDir . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => $vendorDir . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\NullOutput' => $vendorDir . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\Output' => $vendorDir . '/symfony/console/Output/Output.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\OutputInterface' => $vendorDir . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\StreamOutput' => $vendorDir . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => $vendorDir . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => $vendorDir . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => $vendorDir . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Question\\Question' => $vendorDir . '/symfony/console/Question/Question.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => $vendorDir . '/symfony/console/SignalRegistry/SignalMap.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => $vendorDir . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\SingleCommandApplication' => $vendorDir . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Style\\OutputStyle' => $vendorDir . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Style\\StyleInterface' => $vendorDir . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => $vendorDir . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Terminal' => $vendorDir . '/symfony/console/Terminal.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => $vendorDir . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\IOException' => $vendorDir . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => $vendorDir . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => $vendorDir . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Filesystem' => $vendorDir . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Path' => $vendorDir . '/symfony/filesystem/Path.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Comparator\\Comparator' => $vendorDir . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => $vendorDir . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => $vendorDir . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => $vendorDir . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => $vendorDir . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Finder' => $vendorDir . '/symfony/finder/Finder.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Gitignore' => $vendorDir . '/symfony/finder/Gitignore.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Glob' => $vendorDir . '/symfony/finder/Glob.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => $vendorDir . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => $vendorDir . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => $vendorDir . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => $vendorDir . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => $vendorDir . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => $vendorDir . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => $vendorDir . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => $vendorDir . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => $vendorDir . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => $vendorDir . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\SplFileInfo' => $vendorDir . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => $vendorDir . '/symfony/process/Exception/ExceptionInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => $vendorDir . '/symfony/process/Exception/InvalidArgumentException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\LogicException' => $vendorDir . '/symfony/process/Exception/LogicException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => $vendorDir . '/symfony/process/Exception/ProcessFailedException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => $vendorDir . '/symfony/process/Exception/ProcessSignaledException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => $vendorDir . '/symfony/process/Exception/ProcessTimedOutException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => $vendorDir . '/symfony/process/Exception/RunProcessFailedException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\RuntimeException' => $vendorDir . '/symfony/process/Exception/RuntimeException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\ExecutableFinder' => $vendorDir . '/symfony/process/ExecutableFinder.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\InputStream' => $vendorDir . '/symfony/process/InputStream.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => $vendorDir . '/symfony/process/Messenger/RunProcessContext.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => $vendorDir . '/symfony/process/Messenger/RunProcessMessage.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => $vendorDir . '/symfony/process/Messenger/RunProcessMessageHandler.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\PhpExecutableFinder' => $vendorDir . '/symfony/process/PhpExecutableFinder.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\PhpProcess' => $vendorDir . '/symfony/process/PhpProcess.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\PhpSubprocess' => $vendorDir . '/symfony/process/PhpSubprocess.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => $vendorDir . '/symfony/process/Pipes/AbstractPipes.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => $vendorDir . '/symfony/process/Pipes/PipesInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => $vendorDir . '/symfony/process/Pipes/UnixPipes.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => $vendorDir . '/symfony/process/Pipes/WindowsPipes.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Process' => $vendorDir . '/symfony/process/Process.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\ProcessUtils' => $vendorDir . '/symfony/process/ProcessUtils.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\Attribute\\Required' => $vendorDir . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => $vendorDir . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ResetInterface' => $vendorDir . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => $vendorDir . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => $vendorDir . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => $vendorDir . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => $vendorDir . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => $vendorDir . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\CpuCoreCountProvider' => $vendorDir . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Enum\\Action' => $vendorDir . '/symplify/easy-parallel/src/Enum/Action.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Enum\\Content' => $vendorDir . '/symplify/easy-parallel/src/Enum/Content.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Enum\\ReactCommand' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactCommand.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Enum\\ReactEvent' => $vendorDir . '/symplify/easy-parallel/src/Enum/ReactEvent.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => $vendorDir . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\FileSystem\\FilePathNormalizer' => $vendorDir . '/symplify/easy-parallel/src/FileSystem/FilePathNormalizer.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => $vendorDir . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ScheduleFactory' => $vendorDir . '/symplify/easy-parallel/src/ScheduleFactory.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ValueObject\\Schedule' => $vendorDir . '/symplify/easy-parallel/src/ValueObject/Schedule.php', + 'RectorPrefix202312\\Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202312\\Webmozart\\Assert\\InvalidArgumentException' => $vendorDir . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202312\\Webmozart\\Assert\\Mixin' => $vendorDir . '/webmozart/assert/src/Mixin.php', 'Rector\\Arguments\\ArgumentDefaultValueReplacer' => $baseDir . '/rules/Arguments/ArgumentDefaultValueReplacer.php', 'Rector\\Arguments\\Contract\\ReplaceArgumentDefaultValueInterface' => $baseDir . '/rules/Arguments/Contract/ReplaceArgumentDefaultValueInterface.php', 'Rector\\Arguments\\NodeAnalyzer\\ArgumentAddingScope' => $baseDir . '/rules/Arguments/NodeAnalyzer/ArgumentAddingScope.php', @@ -1021,6 +1034,7 @@ 'Rector\\CodeQuality\\NodeManipulator\\ExprBoolCaster' => $baseDir . '/rules/CodeQuality/NodeManipulator/ExprBoolCaster.php', 'Rector\\CodeQuality\\Rector\\Array_\\CallableThisArrayToAnonymousFunctionRector' => $baseDir . '/rules/CodeQuality/Rector/Array_/CallableThisArrayToAnonymousFunctionRector.php', 'Rector\\CodeQuality\\Rector\\Assign\\CombinedAssignRector' => $baseDir . '/rules/CodeQuality/Rector/Assign/CombinedAssignRector.php', + 'Rector\\CodeQuality\\Rector\\BooleanAnd\\RemoveUselessIsObjectCheckRector' => $baseDir . '/rules/CodeQuality/Rector/BooleanAnd/RemoveUselessIsObjectCheckRector.php', 'Rector\\CodeQuality\\Rector\\BooleanAnd\\SimplifyEmptyArrayCheckRector' => $baseDir . '/rules/CodeQuality/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector.php', 'Rector\\CodeQuality\\Rector\\BooleanNot\\ReplaceMultipleBooleanNotRector' => $baseDir . '/rules/CodeQuality/Rector/BooleanNot/ReplaceMultipleBooleanNotRector.php', 'Rector\\CodeQuality\\Rector\\BooleanNot\\SimplifyDeMorganBinaryRector' => $baseDir . '/rules/CodeQuality/Rector/BooleanNot/SimplifyDeMorganBinaryRector.php', @@ -1120,7 +1134,6 @@ 'Rector\\CodingStyle\\Rector\\ClassMethod\\FuncGetArgsToVariadicParamRector' => $baseDir . '/rules/CodingStyle/Rector/ClassMethod/FuncGetArgsToVariadicParamRector.php', 'Rector\\CodingStyle\\Rector\\ClassMethod\\MakeInheritedMethodVisibilitySameAsParentRector' => $baseDir . '/rules/CodingStyle/Rector/ClassMethod/MakeInheritedMethodVisibilitySameAsParentRector.php', 'Rector\\CodingStyle\\Rector\\ClassMethod\\NewlineBeforeNewAssignSetRector' => $baseDir . '/rules/CodingStyle/Rector/ClassMethod/NewlineBeforeNewAssignSetRector.php', - 'Rector\\CodingStyle\\Rector\\Class_\\AddArrayDefaultToArrayPropertyRector' => $baseDir . '/rules/CodingStyle/Rector/Class_/AddArrayDefaultToArrayPropertyRector.php', 'Rector\\CodingStyle\\Rector\\Closure\\StaticClosureRector' => $baseDir . '/rules/CodingStyle/Rector/Closure/StaticClosureRector.php', 'Rector\\CodingStyle\\Rector\\Encapsed\\EncapsedStringsToSprintfRector' => $baseDir . '/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php', 'Rector\\CodingStyle\\Rector\\Encapsed\\WrapEncapsedVariableInCurlyBracesRector' => $baseDir . '/rules/CodingStyle/Rector/Encapsed/WrapEncapsedVariableInCurlyBracesRector.php', @@ -1138,11 +1151,9 @@ 'Rector\\CodingStyle\\Rector\\Stmt\\NewlineAfterStatementRector' => $baseDir . '/rules/CodingStyle/Rector/Stmt/NewlineAfterStatementRector.php', 'Rector\\CodingStyle\\Rector\\String_\\SymplifyQuoteEscapeRector' => $baseDir . '/rules/CodingStyle/Rector/String_/SymplifyQuoteEscapeRector.php', 'Rector\\CodingStyle\\Rector\\String_\\UseClassKeywordForClassNameResolutionRector' => $baseDir . '/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php', - 'Rector\\CodingStyle\\Rector\\Switch_\\BinarySwitchToIfElseRector' => $baseDir . '/rules/CodingStyle/Rector/Switch_/BinarySwitchToIfElseRector.php', 'Rector\\CodingStyle\\Rector\\Ternary\\TernaryConditionVariableAssignmentRector' => $baseDir . '/rules/CodingStyle/Rector/Ternary/TernaryConditionVariableAssignmentRector.php', 'Rector\\CodingStyle\\Rector\\Use_\\SeparateMultiUseImportsRector' => $baseDir . '/rules/CodingStyle/Rector/Use_/SeparateMultiUseImportsRector.php', 'Rector\\CodingStyle\\Reflection\\VendorLocationDetector' => $baseDir . '/rules/CodingStyle/Reflection/VendorLocationDetector.php', - 'Rector\\CodingStyle\\TypeAnalyzer\\IterableTypeAnalyzer' => $baseDir . '/rules/CodingStyle/TypeAnalyzer/IterableTypeAnalyzer.php', 'Rector\\CodingStyle\\ValueObject\\ObjectMagicMethods' => $baseDir . '/rules/CodingStyle/ValueObject/ObjectMagicMethods.php', 'Rector\\Comments\\CommentRemover' => $baseDir . '/packages/Comments/CommentRemover.php', 'Rector\\Comments\\NodeDocBlock\\DocBlockUpdater' => $baseDir . '/packages/Comments/NodeDocBlock/DocBlockUpdater.php', @@ -1193,6 +1204,7 @@ 'Rector\\Core\\Error\\ExceptionCorrector' => $baseDir . '/src/Error/ExceptionCorrector.php', 'Rector\\Core\\Exception\\Cache\\CachingException' => $baseDir . '/src/Exception/Cache/CachingException.php', 'Rector\\Core\\Exception\\Configuration\\InvalidConfigurationException' => $baseDir . '/src/Exception/Configuration/InvalidConfigurationException.php', + 'Rector\\Core\\Exception\\FullyQualifiedNameNotAutoloadedException' => $baseDir . '/src/Exception/FullyQualifiedNameNotAutoloadedException.php', 'Rector\\Core\\Exception\\NotImplementedYetException' => $baseDir . '/src/Exception/NotImplementedYetException.php', 'Rector\\Core\\Exception\\Reflection\\MissingPrivatePropertyException' => $baseDir . '/src/Exception/Reflection/MissingPrivatePropertyException.php', 'Rector\\Core\\Exception\\ShouldNotHappenException' => $baseDir . '/src/Exception/ShouldNotHappenException.php', @@ -1320,6 +1332,7 @@ 'Rector\\DeadCode\\Rector\\ClassConst\\RemoveUnusedPrivateClassConstantRector' => $baseDir . '/rules/DeadCode/Rector/ClassConst/RemoveUnusedPrivateClassConstantRector.php', 'Rector\\DeadCode\\Rector\\ClassLike\\RemoveAnnotationRector' => $baseDir . '/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php', 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveEmptyClassMethodRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveEmptyClassMethodRector.php', + 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveNullTagValueNodeRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveNullTagValueNodeRector.php', 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedConstructorParamRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedConstructorParamRector.php', 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPrivateMethodParameterRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodParameterRector.php', 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPrivateMethodRector' => $baseDir . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodRector.php', @@ -1487,6 +1500,7 @@ 'Rector\\DowngradePhp81\\Rector\\Property\\DowngradeReadonlyPropertyRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Property/DowngradeReadonlyPropertyRector.php', 'Rector\\DowngradePhp81\\Rector\\StmtsAwareInterface\\DowngradeSetAccessibleReflectionPropertyRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php', 'Rector\\DowngradePhp82\\Rector\\Class_\\DowngradeReadonlyClassRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/Class_/DowngradeReadonlyClassRector.php', + 'Rector\\DowngradePhp82\\Rector\\FunctionLike\\DowngradeStandaloneNullTrueFalseReturnTypeRector' => $vendorDir . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php', 'Rector\\EarlyReturn\\NodeAnalyzer\\IfAndAnalyzer' => $baseDir . '/rules/EarlyReturn/NodeAnalyzer/IfAndAnalyzer.php', 'Rector\\EarlyReturn\\NodeAnalyzer\\SimpleScalarAnalyzer' => $baseDir . '/rules/EarlyReturn/NodeAnalyzer/SimpleScalarAnalyzer.php', 'Rector\\EarlyReturn\\NodeFactory\\InvertedIfFactory' => $baseDir . '/rules/EarlyReturn/NodeFactory/InvertedIfFactory.php', @@ -1796,7 +1810,6 @@ 'Rector\\Php71\\Rector\\BinaryOp\\BinaryOpBetweenNumberAndStringRector' => $baseDir . '/rules/Php71/Rector/BinaryOp/BinaryOpBetweenNumberAndStringRector.php', 'Rector\\Php71\\Rector\\BooleanOr\\IsIterableRector' => $baseDir . '/rules/Php71/Rector/BooleanOr/IsIterableRector.php', 'Rector\\Php71\\Rector\\ClassConst\\PublicConstantVisibilityRector' => $baseDir . '/rules/Php71/Rector/ClassConst/PublicConstantVisibilityRector.php', - 'Rector\\Php71\\Rector\\FuncCall\\CountOnNullRector' => $baseDir . '/rules/Php71/Rector/FuncCall/CountOnNullRector.php', 'Rector\\Php71\\Rector\\FuncCall\\RemoveExtraParametersRector' => $baseDir . '/rules/Php71/Rector/FuncCall/RemoveExtraParametersRector.php', 'Rector\\Php71\\Rector\\List_\\ListToArrayDestructRector' => $baseDir . '/rules/Php71/Rector/List_/ListToArrayDestructRector.php', 'Rector\\Php71\\Rector\\TryCatch\\MultiExceptionCatchRector' => $baseDir . '/rules/Php71/Rector/TryCatch/MultiExceptionCatchRector.php', @@ -1903,6 +1916,7 @@ 'Rector\\Php82\\Rector\\FuncCall\\Utf8DecodeEncodeToMbConvertEncodingRector' => $baseDir . '/rules/Php82/Rector/FuncCall/Utf8DecodeEncodeToMbConvertEncodingRector.php', 'Rector\\Php82\\Rector\\New_\\FilesystemIteratorSkipDotsRector' => $baseDir . '/rules/Php82/Rector/New_/FilesystemIteratorSkipDotsRector.php', 'Rector\\Php82\\Rector\\Param\\AddSensitiveParameterAttributeRector' => $baseDir . '/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php', + 'Rector\\Php83\\Rector\\ClassConst\\AddTypeToConstRector' => $baseDir . '/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php', 'Rector\\Php83\\Rector\\ClassMethod\\AddOverrideAttributeToOverriddenMethodsRector' => $baseDir . '/rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper' => $baseDir . '/packages/PhpAttribute/AnnotationToAttributeMapper.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper\\ArrayAnnotationToAttributeMapper' => $baseDir . '/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php', @@ -2119,10 +2133,13 @@ 'Rector\\Symfony\\Set\\FOSRestSetList' => $vendorDir . '/rector/rector-symfony/src/Set/FOSRestSetList.php', 'Rector\\Symfony\\Set\\JMSSetList' => $vendorDir . '/rector/rector-symfony/src/Set/JMSSetList.php', 'Rector\\Symfony\\Set\\SensiolabsSetList' => $vendorDir . '/rector/rector-symfony/src/Set/SensiolabsSetList.php', + 'Rector\\Symfony\\Set\\SwiftMailerSetList' => $vendorDir . '/rector/rector-symfony/src/Set/SwiftMailerSetList.php', 'Rector\\Symfony\\Set\\SymfonyLevelSetList' => $vendorDir . '/rector/rector-symfony/src/Set/SymfonyLevelSetList.php', 'Rector\\Symfony\\Set\\SymfonySetList' => $vendorDir . '/rector/rector-symfony/src/Set/SymfonySetList.php', 'Rector\\Symfony\\Set\\TwigLevelSetList' => $vendorDir . '/rector/rector-symfony/src/Set/TwigLevelSetList.php', 'Rector\\Symfony\\Set\\TwigSetList' => $vendorDir . '/rector/rector-symfony/src/Set/TwigSetList.php', + 'Rector\\Symfony\\SwiftMailer\\Rector\\MethodCall\\SwiftCreateMessageToNewEmailRector' => $vendorDir . '/rector/rector-symfony/rules/SwiftMailer/Rector/MethodCall/SwiftCreateMessageToNewEmailRector.php', + 'Rector\\Symfony\\SwiftMailer\\Rector\\MethodCall\\SwiftSetBodyToHtmlPlainMethodCallRector' => $vendorDir . '/rector/rector-symfony/rules/SwiftMailer/Rector/MethodCall/SwiftSetBodyToHtmlPlainMethodCallRector.php', 'Rector\\Symfony\\Symfony25\\Rector\\MethodCall\\AddViolationToBuildViolationRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony25/Rector/MethodCall/AddViolationToBuildViolationRector.php', 'Rector\\Symfony\\Symfony25\\Rector\\MethodCall\\MaxLengthSymfonyFormOptionToAttrRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony25/Rector/MethodCall/MaxLengthSymfonyFormOptionToAttrRector.php', 'Rector\\Symfony\\Symfony26\\Rector\\MethodCall\\RedirectToRouteRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php', @@ -2173,8 +2190,6 @@ 'Rector\\Symfony\\Symfony52\\Rector\\New_\\PropertyPathMapperToDataMapperRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony52/Rector/New_/PropertyPathMapperToDataMapperRector.php', 'Rector\\Symfony\\Symfony52\\Rector\\StaticCall\\BinaryFileResponseCreateToNewInstanceRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony52/Rector/StaticCall/BinaryFileResponseCreateToNewInstanceRector.php', 'Rector\\Symfony\\Symfony53\\Rector\\Class_\\CommandDescriptionToPropertyRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony53/Rector/Class_/CommandDescriptionToPropertyRector.php', - 'Rector\\Symfony\\Symfony53\\Rector\\MethodCall\\SwiftCreateMessageToNewEmailRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony53/Rector/MethodCall/SwiftCreateMessageToNewEmailRector.php', - 'Rector\\Symfony\\Symfony53\\Rector\\MethodCall\\SwiftSetBodyToHtmlPlainMethodCallRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony53/Rector/MethodCall/SwiftSetBodyToHtmlPlainMethodCallRector.php', 'Rector\\Symfony\\Symfony53\\Rector\\StaticPropertyFetch\\KernelTestCaseContainerPropertyDeprecationRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony53/Rector/StaticPropertyFetch/KernelTestCaseContainerPropertyDeprecationRector.php', 'Rector\\Symfony\\Symfony60\\Rector\\FuncCall\\ReplaceServiceArgumentRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php', 'Rector\\Symfony\\Symfony60\\Rector\\MethodCall\\GetHelperControllerToServiceRector' => $vendorDir . '/rector/rector-symfony/rules/Symfony60/Rector/MethodCall/GetHelperControllerToServiceRector.php', @@ -2319,17 +2334,15 @@ 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnUnionTypeRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictArrayParamDimFetchRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictStringParamConcatRector' => $baseDir . '/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php', + 'Rector\\TypeDeclaration\\Rector\\Class_\\MergeDateTimePropertyTypeDeclarationRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/MergeDateTimePropertyTypeDeclarationRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\PropertyTypeFromStrictSetterGetterRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/PropertyTypeFromStrictSetterGetterRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\ReturnTypeFromStrictTernaryRector' => $baseDir . '/rules/TypeDeclaration/Rector/Class_/ReturnTypeFromStrictTernaryRector.php', 'Rector\\TypeDeclaration\\Rector\\Empty_\\EmptyOnNullableObjectToInstanceOfRector' => $baseDir . '/rules/TypeDeclaration/Rector/Empty_/EmptyOnNullableObjectToInstanceOfRector.php', 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddParamTypeSplFixedArrayRector' => $baseDir . '/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeSplFixedArrayRector.php', 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddReturnTypeDeclarationFromYieldsRector' => $baseDir . '/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php', - 'Rector\\TypeDeclaration\\Rector\\Param\\ParamTypeFromStrictTypedPropertyRector' => $baseDir . '/rules/TypeDeclaration/Rector/Param/ParamTypeFromStrictTypedPropertyRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\AddPropertyTypeDeclarationRector' => $baseDir . '/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromAssignsRector' => $baseDir . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php', - 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictConstructorReadonlyClassRector' => $baseDir . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorReadonlyClassRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictConstructorRector' => $baseDir . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorRector.php', - 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictGetterMethodReturnTypeRector' => $baseDir . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictSetUpRector' => $baseDir . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictSetUpRector.php', 'Rector\\TypeDeclaration\\Rector\\StmtsAwareInterface\\DeclareStrictTypesRector' => $baseDir . '/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php', 'Rector\\TypeDeclaration\\Rector\\While_\\WhileNullableToInstanceofRector' => $baseDir . '/rules/TypeDeclaration/Rector/While_/WhileNullableToInstanceofRector.php', diff --git a/vendor/rector/rector/vendor/composer/autoload_psr4.php b/vendor/rector/rector/vendor/composer/autoload_psr4.php index d0c507db0..940f23842 100644 --- a/vendor/rector/rector/vendor/composer/autoload_psr4.php +++ b/vendor/rector/rector/vendor/composer/autoload_psr4.php @@ -15,33 +15,33 @@ 'Rector\\Doctrine\\' => array($vendorDir . '/rector/rector-doctrine/src', $vendorDir . '/rector/rector-doctrine/rules'), 'Rector\\Core\\' => array($baseDir . '/src'), 'Rector\\' => array($baseDir . '/packages', $baseDir . '/rules', $vendorDir . '/rector/rector-downgrade-php/src', $vendorDir . '/rector/rector-downgrade-php/rules'), - 'RectorPrefix202311\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), - 'RectorPrefix202311\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), - 'RectorPrefix202311\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), - 'RectorPrefix202311\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), - 'RectorPrefix202311\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), - 'RectorPrefix202311\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), - 'RectorPrefix202311\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), - 'RectorPrefix202311\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), - 'RectorPrefix202311\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), - 'RectorPrefix202311\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), - 'RectorPrefix202311\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), - 'RectorPrefix202311\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), - 'RectorPrefix202311\\Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), - 'RectorPrefix202311\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), - 'RectorPrefix202311\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), - 'RectorPrefix202311\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), - 'RectorPrefix202311\\Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), - 'RectorPrefix202311\\Illuminate\\Container\\' => array($vendorDir . '/illuminate/container'), - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), - 'RectorPrefix202311\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), - 'RectorPrefix202311\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), - 'RectorPrefix202311\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), - 'RectorPrefix202311\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), - 'RectorPrefix202311\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), - 'RectorPrefix202311\\Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'), + 'RectorPrefix202312\\Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), + 'RectorPrefix202312\\Symplify\\EasyParallel\\' => array($vendorDir . '/symplify/easy-parallel/src'), + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'), + 'RectorPrefix202312\\Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'), + 'RectorPrefix202312\\Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'), + 'RectorPrefix202312\\Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'), + 'RectorPrefix202312\\React\\Stream\\' => array($vendorDir . '/react/stream/src'), + 'RectorPrefix202312\\React\\Socket\\' => array($vendorDir . '/react/socket/src'), + 'RectorPrefix202312\\React\\Promise\\' => array($vendorDir . '/react/promise/src'), + 'RectorPrefix202312\\React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'), + 'RectorPrefix202312\\React\\Dns\\' => array($vendorDir . '/react/dns/src'), + 'RectorPrefix202312\\React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'), + 'RectorPrefix202312\\React\\Cache\\' => array($vendorDir . '/react/cache/src'), + 'RectorPrefix202312\\Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), + 'RectorPrefix202312\\Psr\\Log\\' => array($vendorDir . '/psr/log/src'), + 'RectorPrefix202312\\Psr\\Container\\' => array($vendorDir . '/psr/container/src'), + 'RectorPrefix202312\\OndraM\\CiDetector\\' => array($vendorDir . '/ondram/ci-detector/src'), + 'RectorPrefix202312\\Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'), + 'RectorPrefix202312\\Illuminate\\Container\\' => array($vendorDir . '/illuminate/container'), + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'), + 'RectorPrefix202312\\Evenement\\' => array($vendorDir . '/evenement/evenement/src'), + 'RectorPrefix202312\\Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'), + 'RectorPrefix202312\\Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'), + 'RectorPrefix202312\\Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'), + 'RectorPrefix202312\\Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'), + 'RectorPrefix202312\\Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'), 'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'), 'PHPStan\\PhpDocParser\\' => array($vendorDir . '/phpstan/phpdoc-parser/src'), ); diff --git a/vendor/rector/rector/vendor/composer/autoload_real.php b/vendor/rector/rector/vendor/composer/autoload_real.php index a2ec0c911..9a64c831b 100644 --- a/vendor/rector/rector/vendor/composer/autoload_real.php +++ b/vendor/rector/rector/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInita55c41c7fa52abd86138c6f32df1d185 +class ComposerAutoloaderInit8339caf294dd12447c06647e5d0dc118 { private static $loader; @@ -22,17 +22,17 @@ public static function getLoader() return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInita55c41c7fa52abd86138c6f32df1d185', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit8339caf294dd12447c06647e5d0dc118', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInita55c41c7fa52abd86138c6f32df1d185', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit8339caf294dd12447c06647e5d0dc118', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInita55c41c7fa52abd86138c6f32df1d185::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit8339caf294dd12447c06647e5d0dc118::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInita55c41c7fa52abd86138c6f32df1d185::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit8339caf294dd12447c06647e5d0dc118::$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/rector/rector/vendor/composer/autoload_static.php b/vendor/rector/rector/vendor/composer/autoload_static.php index 1a716931b..812298ac3 100644 --- a/vendor/rector/rector/vendor/composer/autoload_static.php +++ b/vendor/rector/rector/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 +class ComposerStaticInit8339caf294dd12447c06647e5d0dc118 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -27,33 +27,33 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\Doctrine\\' => 16, 'Rector\\Core\\' => 12, 'Rector\\' => 7, - 'RectorPrefix202311\\Webmozart\\Assert\\' => 36, - 'RectorPrefix202311\\Symplify\\EasyParallel\\' => 41, - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\' => 45, - 'RectorPrefix202311\\Symfony\\Component\\Process\\' => 45, - 'RectorPrefix202311\\Symfony\\Component\\Finder\\' => 44, - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\' => 48, - 'RectorPrefix202311\\Symfony\\Component\\Console\\' => 45, - 'RectorPrefix202311\\React\\Stream\\' => 32, - 'RectorPrefix202311\\React\\Socket\\' => 32, - 'RectorPrefix202311\\React\\Promise\\' => 33, - 'RectorPrefix202311\\React\\EventLoop\\' => 35, - 'RectorPrefix202311\\React\\Dns\\' => 29, - 'RectorPrefix202311\\React\\ChildProcess\\' => 38, - 'RectorPrefix202311\\React\\Cache\\' => 31, - 'RectorPrefix202311\\Psr\\SimpleCache\\' => 35, - 'RectorPrefix202311\\Psr\\Log\\' => 27, - 'RectorPrefix202311\\Psr\\Container\\' => 33, - 'RectorPrefix202311\\OndraM\\CiDetector\\' => 37, - 'RectorPrefix202311\\Illuminate\\Contracts\\' => 40, - 'RectorPrefix202311\\Illuminate\\Container\\' => 40, - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\' => 40, - 'RectorPrefix202311\\Evenement\\' => 29, - 'RectorPrefix202311\\Doctrine\\Inflector\\' => 38, - 'RectorPrefix202311\\Composer\\XdebugHandler\\' => 42, - 'RectorPrefix202311\\Composer\\Semver\\' => 35, - 'RectorPrefix202311\\Composer\\Pcre\\' => 33, - 'RectorPrefix202311\\Clue\\React\\NDJson\\' => 37, + 'RectorPrefix202312\\Webmozart\\Assert\\' => 36, + 'RectorPrefix202312\\Symplify\\EasyParallel\\' => 41, + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\' => 45, + 'RectorPrefix202312\\Symfony\\Component\\Process\\' => 45, + 'RectorPrefix202312\\Symfony\\Component\\Finder\\' => 44, + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\' => 48, + 'RectorPrefix202312\\Symfony\\Component\\Console\\' => 45, + 'RectorPrefix202312\\React\\Stream\\' => 32, + 'RectorPrefix202312\\React\\Socket\\' => 32, + 'RectorPrefix202312\\React\\Promise\\' => 33, + 'RectorPrefix202312\\React\\EventLoop\\' => 35, + 'RectorPrefix202312\\React\\Dns\\' => 29, + 'RectorPrefix202312\\React\\ChildProcess\\' => 38, + 'RectorPrefix202312\\React\\Cache\\' => 31, + 'RectorPrefix202312\\Psr\\SimpleCache\\' => 35, + 'RectorPrefix202312\\Psr\\Log\\' => 27, + 'RectorPrefix202312\\Psr\\Container\\' => 33, + 'RectorPrefix202312\\OndraM\\CiDetector\\' => 37, + 'RectorPrefix202312\\Illuminate\\Contracts\\' => 40, + 'RectorPrefix202312\\Illuminate\\Container\\' => 40, + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\' => 40, + 'RectorPrefix202312\\Evenement\\' => 29, + 'RectorPrefix202312\\Doctrine\\Inflector\\' => 38, + 'RectorPrefix202312\\Composer\\XdebugHandler\\' => 42, + 'RectorPrefix202312\\Composer\\Semver\\' => 35, + 'RectorPrefix202312\\Composer\\Pcre\\' => 33, + 'RectorPrefix202312\\Clue\\React\\NDJson\\' => 37, ), 'P' => array ( @@ -105,111 +105,111 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 2 => __DIR__ . '/..' . '/rector/rector-downgrade-php/src', 3 => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules', ), - 'RectorPrefix202311\\Webmozart\\Assert\\' => + 'RectorPrefix202312\\Webmozart\\Assert\\' => array ( 0 => __DIR__ . '/..' . '/webmozart/assert/src', ), - 'RectorPrefix202311\\Symplify\\EasyParallel\\' => + 'RectorPrefix202312\\Symplify\\EasyParallel\\' => array ( 0 => __DIR__ . '/..' . '/symplify/easy-parallel/src', ), - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\' => + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\' => array ( 0 => __DIR__ . '/..' . '/symfony/service-contracts', ), - 'RectorPrefix202311\\Symfony\\Component\\Process\\' => + 'RectorPrefix202312\\Symfony\\Component\\Process\\' => array ( 0 => __DIR__ . '/..' . '/symfony/process', ), - 'RectorPrefix202311\\Symfony\\Component\\Finder\\' => + 'RectorPrefix202312\\Symfony\\Component\\Finder\\' => array ( 0 => __DIR__ . '/..' . '/symfony/finder', ), - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\' => + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\' => array ( 0 => __DIR__ . '/..' . '/symfony/filesystem', ), - 'RectorPrefix202311\\Symfony\\Component\\Console\\' => + 'RectorPrefix202312\\Symfony\\Component\\Console\\' => array ( 0 => __DIR__ . '/..' . '/symfony/console', ), - 'RectorPrefix202311\\React\\Stream\\' => + 'RectorPrefix202312\\React\\Stream\\' => array ( 0 => __DIR__ . '/..' . '/react/stream/src', ), - 'RectorPrefix202311\\React\\Socket\\' => + 'RectorPrefix202312\\React\\Socket\\' => array ( 0 => __DIR__ . '/..' . '/react/socket/src', ), - 'RectorPrefix202311\\React\\Promise\\' => + 'RectorPrefix202312\\React\\Promise\\' => array ( 0 => __DIR__ . '/..' . '/react/promise/src', ), - 'RectorPrefix202311\\React\\EventLoop\\' => + 'RectorPrefix202312\\React\\EventLoop\\' => array ( 0 => __DIR__ . '/..' . '/react/event-loop/src', ), - 'RectorPrefix202311\\React\\Dns\\' => + 'RectorPrefix202312\\React\\Dns\\' => array ( 0 => __DIR__ . '/..' . '/react/dns/src', ), - 'RectorPrefix202311\\React\\ChildProcess\\' => + 'RectorPrefix202312\\React\\ChildProcess\\' => array ( 0 => __DIR__ . '/..' . '/react/child-process/src', ), - 'RectorPrefix202311\\React\\Cache\\' => + 'RectorPrefix202312\\React\\Cache\\' => array ( 0 => __DIR__ . '/..' . '/react/cache/src', ), - 'RectorPrefix202311\\Psr\\SimpleCache\\' => + 'RectorPrefix202312\\Psr\\SimpleCache\\' => array ( 0 => __DIR__ . '/..' . '/psr/simple-cache/src', ), - 'RectorPrefix202311\\Psr\\Log\\' => + 'RectorPrefix202312\\Psr\\Log\\' => array ( 0 => __DIR__ . '/..' . '/psr/log/src', ), - 'RectorPrefix202311\\Psr\\Container\\' => + 'RectorPrefix202312\\Psr\\Container\\' => array ( 0 => __DIR__ . '/..' . '/psr/container/src', ), - 'RectorPrefix202311\\OndraM\\CiDetector\\' => + 'RectorPrefix202312\\OndraM\\CiDetector\\' => array ( 0 => __DIR__ . '/..' . '/ondram/ci-detector/src', ), - 'RectorPrefix202311\\Illuminate\\Contracts\\' => + 'RectorPrefix202312\\Illuminate\\Contracts\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/contracts', ), - 'RectorPrefix202311\\Illuminate\\Container\\' => + 'RectorPrefix202312\\Illuminate\\Container\\' => array ( 0 => __DIR__ . '/..' . '/illuminate/container', ), - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\' => + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\' => array ( 0 => __DIR__ . '/..' . '/fidry/cpu-core-counter/src', ), - 'RectorPrefix202311\\Evenement\\' => + 'RectorPrefix202312\\Evenement\\' => array ( 0 => __DIR__ . '/..' . '/evenement/evenement/src', ), - 'RectorPrefix202311\\Doctrine\\Inflector\\' => + 'RectorPrefix202312\\Doctrine\\Inflector\\' => array ( 0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector', ), - 'RectorPrefix202311\\Composer\\XdebugHandler\\' => + 'RectorPrefix202312\\Composer\\XdebugHandler\\' => array ( 0 => __DIR__ . '/..' . '/composer/xdebug-handler/src', ), - 'RectorPrefix202311\\Composer\\Semver\\' => + 'RectorPrefix202312\\Composer\\Semver\\' => array ( 0 => __DIR__ . '/..' . '/composer/semver/src', ), - 'RectorPrefix202311\\Composer\\Pcre\\' => + 'RectorPrefix202312\\Composer\\Pcre\\' => array ( 0 => __DIR__ . '/..' . '/composer/pcre/src', ), - 'RectorPrefix202311\\Clue\\React\\NDJson\\' => + 'RectorPrefix202312\\Clue\\React\\NDJson\\' => array ( 0 => __DIR__ . '/..' . '/clue/ndjson-react/src', ), @@ -556,597 +556,610 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'PhpParser\\Parser\\Tokens' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php', 'PhpParser\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php', 'PhpParser\\PrettyPrinter\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php', - 'RectorPrefix202311\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', - 'RectorPrefix202311\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', - 'RectorPrefix202311\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', - 'RectorPrefix202311\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', - 'RectorPrefix202311\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', - 'RectorPrefix202311\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', - 'RectorPrefix202311\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', - 'RectorPrefix202311\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', - 'RectorPrefix202311\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', - 'RectorPrefix202311\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', - 'RectorPrefix202311\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', - 'RectorPrefix202311\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', - 'RectorPrefix202311\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', - 'RectorPrefix202311\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', - 'RectorPrefix202311\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', - 'RectorPrefix202311\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', - 'RectorPrefix202311\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', - 'RectorPrefix202311\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', - 'RectorPrefix202311\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', - 'RectorPrefix202311\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', - 'RectorPrefix202311\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', - 'RectorPrefix202311\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', - 'RectorPrefix202311\\Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/illuminate/container/BoundMethod.php', - 'RectorPrefix202311\\Illuminate\\Container\\Container' => __DIR__ . '/..' . '/illuminate/container/Container.php', - 'RectorPrefix202311\\Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/container/ContextualBindingBuilder.php', - 'RectorPrefix202311\\Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/illuminate/container/EntryNotFoundException.php', - 'RectorPrefix202311\\Illuminate\\Container\\RewindableGenerator' => __DIR__ . '/..' . '/illuminate/container/RewindableGenerator.php', - 'RectorPrefix202311\\Illuminate\\Container\\Util' => __DIR__ . '/..' . '/illuminate/container/Util.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Authorizable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Gate.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Authenticatable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/illuminate/contracts/Auth/CanResetPassword.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Guard.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/illuminate/contracts/Auth/MustVerifyEmail.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBroker.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/StatefulGuard.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/illuminate/contracts/Auth/SupportsBasicAuth.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/illuminate/contracts/Auth/UserProvider.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Broadcaster.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/Dispatcher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/QueueingDispatcher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Lock.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockProvider.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockTimeoutException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Repository.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Store.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Config/Repository.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Console/Application.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Console\\Isolatable' => __DIR__ . '/..' . '/illuminate/contracts/Console/Isolatable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Console/Kernel.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => __DIR__ . '/..' . '/illuminate/contracts/Console/PromptsForMissingInput.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/illuminate/contracts/Container/BindingResolutionException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Container\\CircularDependencyException' => __DIR__ . '/..' . '/illuminate/contracts/Container/CircularDependencyException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/illuminate/contracts/Container/Container.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualBindingBuilder.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/QueueingFactory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Builder.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Castable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => __DIR__ . '/..' . '/illuminate/contracts/Database/Events/MigrationEvent.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/illuminate/contracts/Database/ModelIdentifier.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Query\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Builder.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/ConditionExpression.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Database\\Query\\Expression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Expression.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ExceptionHandler.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/DecryptException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/EncryptException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/Encrypter.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/StringEncrypter.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Events/Dispatcher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Cloud.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/FileNotFoundException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Filesystem.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/LockTimeoutException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/Application.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesConfiguration.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesRoutes.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/ExceptionRenderer.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/MaintenanceMode.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/illuminate/contracts/Hashing/Hasher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Http/Kernel.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\Attachable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Attachable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/illuminate/contracts/Mail/MailQueue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailer.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Dispatcher.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/CursorPaginator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/Paginator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Hub.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Pipeline.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Process\\InvokedProcess' => __DIR__ . '/..' . '/illuminate/contracts/Process/InvokedProcess.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Process\\ProcessResult' => __DIR__ . '/..' . '/illuminate/contracts/Process/ProcessResult.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ClearableQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ClearableQueue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityNotFoundException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityResolver.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Job.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Monitor.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Queue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableCollection.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableEntity.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUnique.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connection.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Redis\\Connector' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connector.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Redis/LimiterTimeoutException.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/BindingRegistrar.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/Registrar.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/illuminate/contracts/Routing/ResponseFactory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlGenerator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlRoutable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => __DIR__ . '/..' . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/illuminate/contracts/Session/Session.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Arrayable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => __DIR__ . '/..' . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\DeferrableProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferrableProvider.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferringDisplayableValue.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Htmlable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Jsonable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageBag.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageProvider.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Renderable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Responsable.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Support\\ValidatedData' => __DIR__ . '/..' . '/illuminate/contracts/Support/ValidatedData.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/illuminate/contracts/Translation/HasLocalePreference.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Loader.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Translator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\DataAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/DataAwareRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ImplicitRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\InvokableRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/InvokableRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Rule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => __DIR__ . '/..' . '/illuminate/contracts/Validation/UncompromisedVerifier.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\ValidationRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidationRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Validator.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatorAwareRule.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/illuminate/contracts/View/Engine.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/View/Factory.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/illuminate/contracts/View/View.php', - 'RectorPrefix202311\\Illuminate\\Contracts\\View\\ViewCompilationException' => __DIR__ . '/..' . '/illuminate/contracts/View/ViewCompilationException.php', - 'RectorPrefix202311\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', - 'RectorPrefix202311\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', - 'RectorPrefix202311\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', - 'RectorPrefix202311\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', - 'RectorPrefix202311\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', - 'RectorPrefix202311\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', - 'RectorPrefix202311\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', - 'RectorPrefix202311\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', - 'RectorPrefix202311\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', - 'RectorPrefix202311\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', - 'RectorPrefix202311\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', - 'RectorPrefix202311\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', - 'RectorPrefix202311\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', - 'RectorPrefix202311\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', - 'RectorPrefix202311\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', - 'RectorPrefix202311\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', - 'RectorPrefix202311\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', - 'RectorPrefix202311\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', - 'RectorPrefix202311\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', - 'RectorPrefix202311\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', - 'RectorPrefix202311\\Nette\\Utils\\ObjectMixin' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectMixin.php', - 'RectorPrefix202311\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', - 'RectorPrefix202311\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', - 'RectorPrefix202311\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', - 'RectorPrefix202311\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', - 'RectorPrefix202311\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', - 'RectorPrefix202311\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', - 'RectorPrefix202311\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', - 'RectorPrefix202311\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', - 'RectorPrefix202311\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', - 'RectorPrefix202311\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', - 'RectorPrefix202311\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', - 'RectorPrefix202311\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', - 'RectorPrefix202311\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', - 'RectorPrefix202311\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', - 'RectorPrefix202311\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', - 'RectorPrefix202311\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', - 'RectorPrefix202311\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', - 'RectorPrefix202311\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', - 'RectorPrefix202311\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', - 'RectorPrefix202311\\Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', - 'RectorPrefix202311\\Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', - 'RectorPrefix202311\\Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', - 'RectorPrefix202311\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', - 'RectorPrefix202311\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', - 'RectorPrefix202311\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', - 'RectorPrefix202311\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', - 'RectorPrefix202311\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', - 'RectorPrefix202311\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', - 'RectorPrefix202311\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', - 'RectorPrefix202311\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', - 'RectorPrefix202311\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', - 'RectorPrefix202311\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', - 'RectorPrefix202311\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', - 'RectorPrefix202311\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', - 'RectorPrefix202311\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', - 'RectorPrefix202311\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', - 'RectorPrefix202311\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', - 'RectorPrefix202311\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', - 'RectorPrefix202311\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', - 'RectorPrefix202311\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', - 'RectorPrefix202311\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', - 'RectorPrefix202311\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', - 'RectorPrefix202311\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', - 'RectorPrefix202311\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', - 'RectorPrefix202311\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', - 'RectorPrefix202311\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', - 'RectorPrefix202311\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', - 'RectorPrefix202311\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', - 'RectorPrefix202311\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', - 'RectorPrefix202311\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', - 'RectorPrefix202311\\React\\Promise\\CancellablePromiseInterface' => __DIR__ . '/..' . '/react/promise/src/CancellablePromiseInterface.php', - 'RectorPrefix202311\\React\\Promise\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/CancellationQueue.php', - 'RectorPrefix202311\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', - 'RectorPrefix202311\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', - 'RectorPrefix202311\\React\\Promise\\ExtendedPromiseInterface' => __DIR__ . '/..' . '/react/promise/src/ExtendedPromiseInterface.php', - 'RectorPrefix202311\\React\\Promise\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/FulfilledPromise.php', - 'RectorPrefix202311\\React\\Promise\\LazyPromise' => __DIR__ . '/..' . '/react/promise/src/LazyPromise.php', - 'RectorPrefix202311\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', - 'RectorPrefix202311\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', - 'RectorPrefix202311\\React\\Promise\\PromisorInterface' => __DIR__ . '/..' . '/react/promise/src/PromisorInterface.php', - 'RectorPrefix202311\\React\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/RejectedPromise.php', - 'RectorPrefix202311\\React\\Promise\\UnhandledRejectionException' => __DIR__ . '/..' . '/react/promise/src/UnhandledRejectionException.php', - 'RectorPrefix202311\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', - 'RectorPrefix202311\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', - 'RectorPrefix202311\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', - 'RectorPrefix202311\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', - 'RectorPrefix202311\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', - 'RectorPrefix202311\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', - 'RectorPrefix202311\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', - 'RectorPrefix202311\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', - 'RectorPrefix202311\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', - 'RectorPrefix202311\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', - 'RectorPrefix202311\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', - 'RectorPrefix202311\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', - 'RectorPrefix202311\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', - 'RectorPrefix202311\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', - 'RectorPrefix202311\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', - 'RectorPrefix202311\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', - 'RectorPrefix202311\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', - 'RectorPrefix202311\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', - 'RectorPrefix202311\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', - 'RectorPrefix202311\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', - 'RectorPrefix202311\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', - 'RectorPrefix202311\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', - 'RectorPrefix202311\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', - 'RectorPrefix202311\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', - 'RectorPrefix202311\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', - 'RectorPrefix202311\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', - 'RectorPrefix202311\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', - 'RectorPrefix202311\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', - 'RectorPrefix202311\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', - 'RectorPrefix202311\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', - 'RectorPrefix202311\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', - 'RectorPrefix202311\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', - 'RectorPrefix202311\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', - 'RectorPrefix202311\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', - 'RectorPrefix202311\\Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', - 'RectorPrefix202311\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\CpuCoreCountProvider' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Enum\\Action' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Action.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Enum\\Content' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Content.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Enum\\ReactCommand' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactCommand.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Enum\\ReactEvent' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactEvent.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\FileSystem\\FilePathNormalizer' => __DIR__ . '/..' . '/symplify/easy-parallel/src/FileSystem/FilePathNormalizer.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ScheduleFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ScheduleFactory.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', - 'RectorPrefix202311\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php', - 'RectorPrefix202311\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', - 'RectorPrefix202311\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', - 'RectorPrefix202311\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', + 'RectorPrefix202312\\Clue\\React\\NDJson\\Decoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Decoder.php', + 'RectorPrefix202312\\Clue\\React\\NDJson\\Encoder' => __DIR__ . '/..' . '/clue/ndjson-react/src/Encoder.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchAllResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchAllStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllStrictGroupsResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchAllWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchAllWithOffsetsResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchStrictGroupsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchStrictGroupsResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\MatchWithOffsetsResult' => __DIR__ . '/..' . '/composer/pcre/src/MatchWithOffsetsResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\PcreException' => __DIR__ . '/..' . '/composer/pcre/src/PcreException.php', + 'RectorPrefix202312\\Composer\\Pcre\\Preg' => __DIR__ . '/..' . '/composer/pcre/src/Preg.php', + 'RectorPrefix202312\\Composer\\Pcre\\Regex' => __DIR__ . '/..' . '/composer/pcre/src/Regex.php', + 'RectorPrefix202312\\Composer\\Pcre\\ReplaceResult' => __DIR__ . '/..' . '/composer/pcre/src/ReplaceResult.php', + 'RectorPrefix202312\\Composer\\Pcre\\UnexpectedNullMatchException' => __DIR__ . '/..' . '/composer/pcre/src/UnexpectedNullMatchException.php', + 'RectorPrefix202312\\Composer\\Semver\\Comparator' => __DIR__ . '/..' . '/composer/semver/src/Comparator.php', + 'RectorPrefix202312\\Composer\\Semver\\CompilingMatcher' => __DIR__ . '/..' . '/composer/semver/src/CompilingMatcher.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\Bound' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Bound.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\Constraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/Constraint.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\ConstraintInterface' => __DIR__ . '/..' . '/composer/semver/src/Constraint/ConstraintInterface.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\MatchAllConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchAllConstraint.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\MatchNoneConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MatchNoneConstraint.php', + 'RectorPrefix202312\\Composer\\Semver\\Constraint\\MultiConstraint' => __DIR__ . '/..' . '/composer/semver/src/Constraint/MultiConstraint.php', + 'RectorPrefix202312\\Composer\\Semver\\Interval' => __DIR__ . '/..' . '/composer/semver/src/Interval.php', + 'RectorPrefix202312\\Composer\\Semver\\Intervals' => __DIR__ . '/..' . '/composer/semver/src/Intervals.php', + 'RectorPrefix202312\\Composer\\Semver\\Semver' => __DIR__ . '/..' . '/composer/semver/src/Semver.php', + 'RectorPrefix202312\\Composer\\Semver\\VersionParser' => __DIR__ . '/..' . '/composer/semver/src/VersionParser.php', + 'RectorPrefix202312\\Composer\\XdebugHandler\\PhpConfig' => __DIR__ . '/..' . '/composer/xdebug-handler/src/PhpConfig.php', + 'RectorPrefix202312\\Composer\\XdebugHandler\\Process' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Process.php', + 'RectorPrefix202312\\Composer\\XdebugHandler\\Status' => __DIR__ . '/..' . '/composer/xdebug-handler/src/Status.php', + 'RectorPrefix202312\\Composer\\XdebugHandler\\XdebugHandler' => __DIR__ . '/..' . '/composer/xdebug-handler/src/XdebugHandler.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\CachedWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\GenericLanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/GenericLanguageInflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Inflector.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Language' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Language.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\LanguageInflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/LanguageInflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\NoopWordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/NoopWordInflector.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\English\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\English\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\English\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\English\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/English/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\French\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\French\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\French\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\French\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/French/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\NorwegianBokmal\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/NorwegianBokmal/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Pattern' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Pattern.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Patterns' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Patterns.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Portuguese\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Portuguese\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Portuguese\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Portuguese\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Portuguese/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Ruleset' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Ruleset.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Spanish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Spanish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Spanish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Spanish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Spanish/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Substitution' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitution.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Substitutions' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Substitutions.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Transformation' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformation.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Transformations' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Transformations.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Turkish\\Inflectible' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Inflectible.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Turkish\\InflectorFactory' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/InflectorFactory.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Turkish\\Rules' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Rules.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Turkish\\Uninflected' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Turkish/Uninflected.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\Rules\\Word' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/Rules/Word.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\RulesetInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/RulesetInflector.php', + 'RectorPrefix202312\\Doctrine\\Inflector\\WordInflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Inflector/WordInflector.php', + 'RectorPrefix202312\\Evenement\\EventEmitter' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitter.php', + 'RectorPrefix202312\\Evenement\\EventEmitterInterface' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterInterface.php', + 'RectorPrefix202312\\Evenement\\EventEmitterTrait' => __DIR__ . '/..' . '/evenement/evenement/src/EventEmitterTrait.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\CpuCoreCounter' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/CpuCoreCounter.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Diagnoser' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Diagnoser.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Executor\\ProcOpenExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcOpenExecutor.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Executor\\ProcessExecutor' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Executor/ProcessExecutor.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\CpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuCoreFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\CpuInfoFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/CpuInfoFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\DummyCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/DummyCpuCoreFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\FinderRegistry' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/FinderRegistry.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\HwLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwLogicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\HwPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/HwPhysicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\LscpuLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuLogicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\LscpuPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/LscpuPhysicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\NProcFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NProcessorFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\NullCpuCoreFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/NullCpuCoreFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\OnlyOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/OnlyOnOSFamilyFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\ProcOpenBasedFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/ProcOpenBasedFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\SkipOnOSFamilyFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/SkipOnOSFamilyFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\WmicLogicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicLogicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\WmicPhysicalFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/WmicPhysicalFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\Finder\\_NProcessorFinder' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/Finder/_NProcessorFinder.php', + 'RectorPrefix202312\\Fidry\\CpuCoreCounter\\NumberOfCpuCoreNotFound' => __DIR__ . '/..' . '/fidry/cpu-core-counter/src/NumberOfCpuCoreNotFound.php', + 'RectorPrefix202312\\Illuminate\\Container\\BoundMethod' => __DIR__ . '/..' . '/illuminate/container/BoundMethod.php', + 'RectorPrefix202312\\Illuminate\\Container\\Container' => __DIR__ . '/..' . '/illuminate/container/Container.php', + 'RectorPrefix202312\\Illuminate\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/container/ContextualBindingBuilder.php', + 'RectorPrefix202312\\Illuminate\\Container\\EntryNotFoundException' => __DIR__ . '/..' . '/illuminate/container/EntryNotFoundException.php', + 'RectorPrefix202312\\Illuminate\\Container\\RewindableGenerator' => __DIR__ . '/..' . '/illuminate/container/RewindableGenerator.php', + 'RectorPrefix202312\\Illuminate\\Container\\Util' => __DIR__ . '/..' . '/illuminate/container/Util.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Access\\Authorizable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Authorizable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Access\\Gate' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Access/Gate.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Authenticatable' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Authenticatable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\CanResetPassword' => __DIR__ . '/..' . '/illuminate/contracts/Auth/CanResetPassword.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Guard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Guard.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\Middleware\\AuthenticatesRequests' => __DIR__ . '/..' . '/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\MustVerifyEmail' => __DIR__ . '/..' . '/illuminate/contracts/Auth/MustVerifyEmail.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\PasswordBroker' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBroker.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\PasswordBrokerFactory' => __DIR__ . '/..' . '/illuminate/contracts/Auth/PasswordBrokerFactory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\StatefulGuard' => __DIR__ . '/..' . '/illuminate/contracts/Auth/StatefulGuard.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\SupportsBasicAuth' => __DIR__ . '/..' . '/illuminate/contracts/Auth/SupportsBasicAuth.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Auth\\UserProvider' => __DIR__ . '/..' . '/illuminate/contracts/Auth/UserProvider.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\Broadcaster' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Broadcaster.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\HasBroadcastChannel' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/HasBroadcastChannel.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBeUnique.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcast' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcast.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Broadcasting\\ShouldBroadcastNow' => __DIR__ . '/..' . '/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Bus\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/Dispatcher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Bus\\QueueingDispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Bus/QueueingDispatcher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\Lock' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Lock.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\LockProvider' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockProvider.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Cache/LockTimeoutException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Repository.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cache\\Store' => __DIR__ . '/..' . '/illuminate/contracts/Cache/Store.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Config\\Repository' => __DIR__ . '/..' . '/illuminate/contracts/Config/Repository.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Console\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Console/Application.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Console\\Isolatable' => __DIR__ . '/..' . '/illuminate/contracts/Console/Isolatable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Console\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Console/Kernel.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Console\\PromptsForMissingInput' => __DIR__ . '/..' . '/illuminate/contracts/Console/PromptsForMissingInput.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Container\\BindingResolutionException' => __DIR__ . '/..' . '/illuminate/contracts/Container/BindingResolutionException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Container\\CircularDependencyException' => __DIR__ . '/..' . '/illuminate/contracts/Container/CircularDependencyException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Container\\Container' => __DIR__ . '/..' . '/illuminate/contracts/Container/Container.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Container\\ContextualBindingBuilder' => __DIR__ . '/..' . '/illuminate/contracts/Container/ContextualBindingBuilder.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cookie\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Cookie\\QueueingFactory' => __DIR__ . '/..' . '/illuminate/contracts/Cookie/QueueingFactory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Builder.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\Castable' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/Castable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\CastsAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsAttributes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\CastsInboundAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\DeviatesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\SerializesCastableAttributes' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Eloquent\\SupportsPartialRelations' => __DIR__ . '/..' . '/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Events\\MigrationEvent' => __DIR__ . '/..' . '/illuminate/contracts/Database/Events/MigrationEvent.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\ModelIdentifier' => __DIR__ . '/..' . '/illuminate/contracts/Database/ModelIdentifier.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Query\\Builder' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Builder.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Query\\ConditionExpression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/ConditionExpression.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Database\\Query\\Expression' => __DIR__ . '/..' . '/illuminate/contracts/Database/Query/Expression.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Debug\\ExceptionHandler' => __DIR__ . '/..' . '/illuminate/contracts/Debug/ExceptionHandler.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Encryption\\DecryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/DecryptException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Encryption\\EncryptException' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/EncryptException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Encryption\\Encrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/Encrypter.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Encryption\\StringEncrypter' => __DIR__ . '/..' . '/illuminate/contracts/Encryption/StringEncrypter.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Events\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Events/Dispatcher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Events\\ShouldDispatchAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldDispatchAfterCommit.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Events\\ShouldHandleEventsAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\Cloud' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Cloud.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\FileNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/FileNotFoundException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/Filesystem.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Filesystem\\LockTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Filesystem/LockTimeoutException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\Application' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/Application.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\CachesConfiguration' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesConfiguration.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\CachesRoutes' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/CachesRoutes.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\ExceptionRenderer' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/ExceptionRenderer.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Foundation\\MaintenanceMode' => __DIR__ . '/..' . '/illuminate/contracts/Foundation/MaintenanceMode.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Hashing\\Hasher' => __DIR__ . '/..' . '/illuminate/contracts/Hashing/Hasher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Http\\Kernel' => __DIR__ . '/..' . '/illuminate/contracts/Http/Kernel.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\Attachable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Attachable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\MailQueue' => __DIR__ . '/..' . '/illuminate/contracts/Mail/MailQueue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\Mailable' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Mail\\Mailer' => __DIR__ . '/..' . '/illuminate/contracts/Mail/Mailer.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Notifications\\Dispatcher' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Dispatcher.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Notifications\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Notifications/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pagination\\CursorPaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/CursorPaginator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pagination\\LengthAwarePaginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/LengthAwarePaginator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pagination\\Paginator' => __DIR__ . '/..' . '/illuminate/contracts/Pagination/Paginator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pipeline\\Hub' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Hub.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Pipeline\\Pipeline' => __DIR__ . '/..' . '/illuminate/contracts/Pipeline/Pipeline.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Process\\InvokedProcess' => __DIR__ . '/..' . '/illuminate/contracts/Process/InvokedProcess.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Process\\ProcessResult' => __DIR__ . '/..' . '/illuminate/contracts/Process/ProcessResult.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ClearableQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ClearableQueue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\EntityNotFoundException' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityNotFoundException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\EntityResolver' => __DIR__ . '/..' . '/illuminate/contracts/Queue/EntityResolver.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\Job' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Job.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\Monitor' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Monitor.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\Queue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/Queue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\QueueableCollection' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableCollection.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\QueueableEntity' => __DIR__ . '/..' . '/illuminate/contracts/Queue/QueueableEntity.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldBeEncrypted' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeEncrypted.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldBeUnique' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUnique.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldBeUniqueUntilProcessing' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldQueue' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Queue\\ShouldQueueAfterCommit' => __DIR__ . '/..' . '/illuminate/contracts/Queue/ShouldQueueAfterCommit.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Redis\\Connection' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connection.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Redis\\Connector' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Connector.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Redis\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Redis/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Redis\\LimiterTimeoutException' => __DIR__ . '/..' . '/illuminate/contracts/Redis/LimiterTimeoutException.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\BindingRegistrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/BindingRegistrar.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\Registrar' => __DIR__ . '/..' . '/illuminate/contracts/Routing/Registrar.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\ResponseFactory' => __DIR__ . '/..' . '/illuminate/contracts/Routing/ResponseFactory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\UrlGenerator' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlGenerator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Routing\\UrlRoutable' => __DIR__ . '/..' . '/illuminate/contracts/Routing/UrlRoutable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Session\\Middleware\\AuthenticatesSessions' => __DIR__ . '/..' . '/illuminate/contracts/Session/Middleware/AuthenticatesSessions.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Session\\Session' => __DIR__ . '/..' . '/illuminate/contracts/Session/Session.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Arrayable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Arrayable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\CanBeEscapedWhenCastToString' => __DIR__ . '/..' . '/illuminate/contracts/Support/CanBeEscapedWhenCastToString.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\DeferrableProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferrableProvider.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\DeferringDisplayableValue' => __DIR__ . '/..' . '/illuminate/contracts/Support/DeferringDisplayableValue.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Htmlable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Htmlable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Jsonable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Jsonable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\MessageBag' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageBag.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\MessageProvider' => __DIR__ . '/..' . '/illuminate/contracts/Support/MessageProvider.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Renderable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Renderable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\Responsable' => __DIR__ . '/..' . '/illuminate/contracts/Support/Responsable.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Support\\ValidatedData' => __DIR__ . '/..' . '/illuminate/contracts/Support/ValidatedData.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Translation\\HasLocalePreference' => __DIR__ . '/..' . '/illuminate/contracts/Translation/HasLocalePreference.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Translation\\Loader' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Loader.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Translation\\Translator' => __DIR__ . '/..' . '/illuminate/contracts/Translation/Translator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\DataAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/DataAwareRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\ImplicitRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ImplicitRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\InvokableRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/InvokableRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\Rule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Rule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\UncompromisedVerifier' => __DIR__ . '/..' . '/illuminate/contracts/Validation/UncompromisedVerifier.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\ValidatesWhenResolved' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatesWhenResolved.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\ValidationRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidationRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\Validator' => __DIR__ . '/..' . '/illuminate/contracts/Validation/Validator.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\Validation\\ValidatorAwareRule' => __DIR__ . '/..' . '/illuminate/contracts/Validation/ValidatorAwareRule.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\View\\Engine' => __DIR__ . '/..' . '/illuminate/contracts/View/Engine.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\View\\Factory' => __DIR__ . '/..' . '/illuminate/contracts/View/Factory.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\View\\View' => __DIR__ . '/..' . '/illuminate/contracts/View/View.php', + 'RectorPrefix202312\\Illuminate\\Contracts\\View\\ViewCompilationException' => __DIR__ . '/..' . '/illuminate/contracts/View/ViewCompilationException.php', + 'RectorPrefix202312\\Nette\\ArgumentOutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\DeprecatedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\DirectoryNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\FileNotFoundException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\HtmlStringable' => __DIR__ . '/..' . '/nette/utils/src/HtmlStringable.php', + 'RectorPrefix202312\\Nette\\IOException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\InvalidArgumentException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\InvalidStateException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\Iterators\\CachingIterator' => __DIR__ . '/..' . '/nette/utils/src/Iterators/CachingIterator.php', + 'RectorPrefix202312\\Nette\\Iterators\\Mapper' => __DIR__ . '/..' . '/nette/utils/src/Iterators/Mapper.php', + 'RectorPrefix202312\\Nette\\Localization\\ITranslator' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202312\\Nette\\Localization\\Translator' => __DIR__ . '/..' . '/nette/utils/src/Translator.php', + 'RectorPrefix202312\\Nette\\MemberAccessException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\NotImplementedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\NotSupportedException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\OutOfRangeException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\SmartObject' => __DIR__ . '/..' . '/nette/utils/src/SmartObject.php', + 'RectorPrefix202312\\Nette\\StaticClass' => __DIR__ . '/..' . '/nette/utils/src/StaticClass.php', + 'RectorPrefix202312\\Nette\\UnexpectedValueException' => __DIR__ . '/..' . '/nette/utils/src/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\ArrayHash' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayHash.php', + 'RectorPrefix202312\\Nette\\Utils\\ArrayList' => __DIR__ . '/..' . '/nette/utils/src/Utils/ArrayList.php', + 'RectorPrefix202312\\Nette\\Utils\\Arrays' => __DIR__ . '/..' . '/nette/utils/src/Utils/Arrays.php', + 'RectorPrefix202312\\Nette\\Utils\\AssertionException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\Callback' => __DIR__ . '/..' . '/nette/utils/src/Utils/Callback.php', + 'RectorPrefix202312\\Nette\\Utils\\DateTime' => __DIR__ . '/..' . '/nette/utils/src/Utils/DateTime.php', + 'RectorPrefix202312\\Nette\\Utils\\FileSystem' => __DIR__ . '/..' . '/nette/utils/src/Utils/FileSystem.php', + 'RectorPrefix202312\\Nette\\Utils\\Floats' => __DIR__ . '/..' . '/nette/utils/src/Utils/Floats.php', + 'RectorPrefix202312\\Nette\\Utils\\Helpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/Helpers.php', + 'RectorPrefix202312\\Nette\\Utils\\Html' => __DIR__ . '/..' . '/nette/utils/src/Utils/Html.php', + 'RectorPrefix202312\\Nette\\Utils\\IHtmlString' => __DIR__ . '/..' . '/nette/utils/src/compatibility.php', + 'RectorPrefix202312\\Nette\\Utils\\Image' => __DIR__ . '/..' . '/nette/utils/src/Utils/Image.php', + 'RectorPrefix202312\\Nette\\Utils\\ImageException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\Json' => __DIR__ . '/..' . '/nette/utils/src/Utils/Json.php', + 'RectorPrefix202312\\Nette\\Utils\\JsonException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\ObjectHelpers' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectHelpers.php', + 'RectorPrefix202312\\Nette\\Utils\\ObjectMixin' => __DIR__ . '/..' . '/nette/utils/src/Utils/ObjectMixin.php', + 'RectorPrefix202312\\Nette\\Utils\\Paginator' => __DIR__ . '/..' . '/nette/utils/src/Utils/Paginator.php', + 'RectorPrefix202312\\Nette\\Utils\\Random' => __DIR__ . '/..' . '/nette/utils/src/Utils/Random.php', + 'RectorPrefix202312\\Nette\\Utils\\Reflection' => __DIR__ . '/..' . '/nette/utils/src/Utils/Reflection.php', + 'RectorPrefix202312\\Nette\\Utils\\RegexpException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\Strings' => __DIR__ . '/..' . '/nette/utils/src/Utils/Strings.php', + 'RectorPrefix202312\\Nette\\Utils\\Type' => __DIR__ . '/..' . '/nette/utils/src/Utils/Type.php', + 'RectorPrefix202312\\Nette\\Utils\\UnknownImageFileException' => __DIR__ . '/..' . '/nette/utils/src/Utils/exceptions.php', + 'RectorPrefix202312\\Nette\\Utils\\Validators' => __DIR__ . '/..' . '/nette/utils/src/Utils/Validators.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\CiDetector' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetector.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\CiDetectorInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/CiDetectorInterface.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\AbstractCi' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AbstractCi.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\AppVeyor' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AppVeyor.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\AwsCodeBuild' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AwsCodeBuild.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\AzurePipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/AzurePipelines.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Bamboo' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Bamboo.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\BitbucketPipelines' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/BitbucketPipelines.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Buddy' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Buddy.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\CiInterface' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/CiInterface.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Circle' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Circle.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Codeship' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Codeship.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Continuousphp' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Continuousphp.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Drone' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Drone.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\GitHubActions' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitHubActions.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\GitLab' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/GitLab.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Jenkins' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Jenkins.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\SourceHut' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/SourceHut.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\TeamCity' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/TeamCity.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Travis' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Travis.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Ci\\Wercker' => __DIR__ . '/..' . '/ondram/ci-detector/src/Ci/Wercker.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Env' => __DIR__ . '/..' . '/ondram/ci-detector/src/Env.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\Exception\\CiNotDetectedException' => __DIR__ . '/..' . '/ondram/ci-detector/src/Exception/CiNotDetectedException.php', + 'RectorPrefix202312\\OndraM\\CiDetector\\TrinaryLogic' => __DIR__ . '/..' . '/ondram/ci-detector/src/TrinaryLogic.php', + 'RectorPrefix202312\\Psr\\Container\\ContainerExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerExceptionInterface.php', + 'RectorPrefix202312\\Psr\\Container\\ContainerInterface' => __DIR__ . '/..' . '/psr/container/src/ContainerInterface.php', + 'RectorPrefix202312\\Psr\\Container\\NotFoundExceptionInterface' => __DIR__ . '/..' . '/psr/container/src/NotFoundExceptionInterface.php', + 'RectorPrefix202312\\Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/src/AbstractLogger.php', + 'RectorPrefix202312\\Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/src/InvalidArgumentException.php', + 'RectorPrefix202312\\Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/src/LogLevel.php', + 'RectorPrefix202312\\Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareInterface.php', + 'RectorPrefix202312\\Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerAwareTrait.php', + 'RectorPrefix202312\\Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/src/LoggerInterface.php', + 'RectorPrefix202312\\Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/src/LoggerTrait.php', + 'RectorPrefix202312\\Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/src/NullLogger.php', + 'RectorPrefix202312\\Psr\\SimpleCache\\CacheException' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheException.php', + 'RectorPrefix202312\\Psr\\SimpleCache\\CacheInterface' => __DIR__ . '/..' . '/psr/simple-cache/src/CacheInterface.php', + 'RectorPrefix202312\\Psr\\SimpleCache\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/simple-cache/src/InvalidArgumentException.php', + 'RectorPrefix202312\\React\\Cache\\ArrayCache' => __DIR__ . '/..' . '/react/cache/src/ArrayCache.php', + 'RectorPrefix202312\\React\\Cache\\CacheInterface' => __DIR__ . '/..' . '/react/cache/src/CacheInterface.php', + 'RectorPrefix202312\\React\\ChildProcess\\Process' => __DIR__ . '/..' . '/react/child-process/src/Process.php', + 'RectorPrefix202312\\React\\Dns\\BadServerException' => __DIR__ . '/..' . '/react/dns/src/BadServerException.php', + 'RectorPrefix202312\\React\\Dns\\Config\\Config' => __DIR__ . '/..' . '/react/dns/src/Config/Config.php', + 'RectorPrefix202312\\React\\Dns\\Config\\HostsFile' => __DIR__ . '/..' . '/react/dns/src/Config/HostsFile.php', + 'RectorPrefix202312\\React\\Dns\\Model\\Message' => __DIR__ . '/..' . '/react/dns/src/Model/Message.php', + 'RectorPrefix202312\\React\\Dns\\Model\\Record' => __DIR__ . '/..' . '/react/dns/src/Model/Record.php', + 'RectorPrefix202312\\React\\Dns\\Protocol\\BinaryDumper' => __DIR__ . '/..' . '/react/dns/src/Protocol/BinaryDumper.php', + 'RectorPrefix202312\\React\\Dns\\Protocol\\Parser' => __DIR__ . '/..' . '/react/dns/src/Protocol/Parser.php', + 'RectorPrefix202312\\React\\Dns\\Query\\CachingExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CachingExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\CancellationException' => __DIR__ . '/..' . '/react/dns/src/Query/CancellationException.php', + 'RectorPrefix202312\\React\\Dns\\Query\\CoopExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/CoopExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\ExecutorInterface' => __DIR__ . '/..' . '/react/dns/src/Query/ExecutorInterface.php', + 'RectorPrefix202312\\React\\Dns\\Query\\FallbackExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/FallbackExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\HostsFileExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/HostsFileExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\Query' => __DIR__ . '/..' . '/react/dns/src/Query/Query.php', + 'RectorPrefix202312\\React\\Dns\\Query\\RetryExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/RetryExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\SelectiveTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/SelectiveTransportExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\TcpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TcpTransportExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\TimeoutException' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutException.php', + 'RectorPrefix202312\\React\\Dns\\Query\\TimeoutExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/TimeoutExecutor.php', + 'RectorPrefix202312\\React\\Dns\\Query\\UdpTransportExecutor' => __DIR__ . '/..' . '/react/dns/src/Query/UdpTransportExecutor.php', + 'RectorPrefix202312\\React\\Dns\\RecordNotFoundException' => __DIR__ . '/..' . '/react/dns/src/RecordNotFoundException.php', + 'RectorPrefix202312\\React\\Dns\\Resolver\\Factory' => __DIR__ . '/..' . '/react/dns/src/Resolver/Factory.php', + 'RectorPrefix202312\\React\\Dns\\Resolver\\Resolver' => __DIR__ . '/..' . '/react/dns/src/Resolver/Resolver.php', + 'RectorPrefix202312\\React\\Dns\\Resolver\\ResolverInterface' => __DIR__ . '/..' . '/react/dns/src/Resolver/ResolverInterface.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtEvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEvLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtEventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtEventLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtLibevLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibevLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtLibeventLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtLibeventLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\ExtUvLoop' => __DIR__ . '/..' . '/react/event-loop/src/ExtUvLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\Factory' => __DIR__ . '/..' . '/react/event-loop/src/Factory.php', + 'RectorPrefix202312\\React\\EventLoop\\Loop' => __DIR__ . '/..' . '/react/event-loop/src/Loop.php', + 'RectorPrefix202312\\React\\EventLoop\\LoopInterface' => __DIR__ . '/..' . '/react/event-loop/src/LoopInterface.php', + 'RectorPrefix202312\\React\\EventLoop\\SignalsHandler' => __DIR__ . '/..' . '/react/event-loop/src/SignalsHandler.php', + 'RectorPrefix202312\\React\\EventLoop\\StreamSelectLoop' => __DIR__ . '/..' . '/react/event-loop/src/StreamSelectLoop.php', + 'RectorPrefix202312\\React\\EventLoop\\Tick\\FutureTickQueue' => __DIR__ . '/..' . '/react/event-loop/src/Tick/FutureTickQueue.php', + 'RectorPrefix202312\\React\\EventLoop\\TimerInterface' => __DIR__ . '/..' . '/react/event-loop/src/TimerInterface.php', + 'RectorPrefix202312\\React\\EventLoop\\Timer\\Timer' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timer.php', + 'RectorPrefix202312\\React\\EventLoop\\Timer\\Timers' => __DIR__ . '/..' . '/react/event-loop/src/Timer/Timers.php', + 'RectorPrefix202312\\React\\Promise\\CancellablePromiseInterface' => __DIR__ . '/..' . '/react/promise/src/CancellablePromiseInterface.php', + 'RectorPrefix202312\\React\\Promise\\CancellationQueue' => __DIR__ . '/..' . '/react/promise/src/CancellationQueue.php', + 'RectorPrefix202312\\React\\Promise\\Deferred' => __DIR__ . '/..' . '/react/promise/src/Deferred.php', + 'RectorPrefix202312\\React\\Promise\\Exception\\LengthException' => __DIR__ . '/..' . '/react/promise/src/Exception/LengthException.php', + 'RectorPrefix202312\\React\\Promise\\ExtendedPromiseInterface' => __DIR__ . '/..' . '/react/promise/src/ExtendedPromiseInterface.php', + 'RectorPrefix202312\\React\\Promise\\FulfilledPromise' => __DIR__ . '/..' . '/react/promise/src/FulfilledPromise.php', + 'RectorPrefix202312\\React\\Promise\\LazyPromise' => __DIR__ . '/..' . '/react/promise/src/LazyPromise.php', + 'RectorPrefix202312\\React\\Promise\\Promise' => __DIR__ . '/..' . '/react/promise/src/Promise.php', + 'RectorPrefix202312\\React\\Promise\\PromiseInterface' => __DIR__ . '/..' . '/react/promise/src/PromiseInterface.php', + 'RectorPrefix202312\\React\\Promise\\PromisorInterface' => __DIR__ . '/..' . '/react/promise/src/PromisorInterface.php', + 'RectorPrefix202312\\React\\Promise\\RejectedPromise' => __DIR__ . '/..' . '/react/promise/src/RejectedPromise.php', + 'RectorPrefix202312\\React\\Promise\\UnhandledRejectionException' => __DIR__ . '/..' . '/react/promise/src/UnhandledRejectionException.php', + 'RectorPrefix202312\\React\\Socket\\Connection' => __DIR__ . '/..' . '/react/socket/src/Connection.php', + 'RectorPrefix202312\\React\\Socket\\ConnectionInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectionInterface.php', + 'RectorPrefix202312\\React\\Socket\\Connector' => __DIR__ . '/..' . '/react/socket/src/Connector.php', + 'RectorPrefix202312\\React\\Socket\\ConnectorInterface' => __DIR__ . '/..' . '/react/socket/src/ConnectorInterface.php', + 'RectorPrefix202312\\React\\Socket\\DnsConnector' => __DIR__ . '/..' . '/react/socket/src/DnsConnector.php', + 'RectorPrefix202312\\React\\Socket\\FdServer' => __DIR__ . '/..' . '/react/socket/src/FdServer.php', + 'RectorPrefix202312\\React\\Socket\\FixedUriConnector' => __DIR__ . '/..' . '/react/socket/src/FixedUriConnector.php', + 'RectorPrefix202312\\React\\Socket\\HappyEyeBallsConnectionBuilder' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnectionBuilder.php', + 'RectorPrefix202312\\React\\Socket\\HappyEyeBallsConnector' => __DIR__ . '/..' . '/react/socket/src/HappyEyeBallsConnector.php', + 'RectorPrefix202312\\React\\Socket\\LimitingServer' => __DIR__ . '/..' . '/react/socket/src/LimitingServer.php', + 'RectorPrefix202312\\React\\Socket\\SecureConnector' => __DIR__ . '/..' . '/react/socket/src/SecureConnector.php', + 'RectorPrefix202312\\React\\Socket\\SecureServer' => __DIR__ . '/..' . '/react/socket/src/SecureServer.php', + 'RectorPrefix202312\\React\\Socket\\Server' => __DIR__ . '/..' . '/react/socket/src/Server.php', + 'RectorPrefix202312\\React\\Socket\\ServerInterface' => __DIR__ . '/..' . '/react/socket/src/ServerInterface.php', + 'RectorPrefix202312\\React\\Socket\\SocketServer' => __DIR__ . '/..' . '/react/socket/src/SocketServer.php', + 'RectorPrefix202312\\React\\Socket\\StreamEncryption' => __DIR__ . '/..' . '/react/socket/src/StreamEncryption.php', + 'RectorPrefix202312\\React\\Socket\\TcpConnector' => __DIR__ . '/..' . '/react/socket/src/TcpConnector.php', + 'RectorPrefix202312\\React\\Socket\\TcpServer' => __DIR__ . '/..' . '/react/socket/src/TcpServer.php', + 'RectorPrefix202312\\React\\Socket\\TimeoutConnector' => __DIR__ . '/..' . '/react/socket/src/TimeoutConnector.php', + 'RectorPrefix202312\\React\\Socket\\UnixConnector' => __DIR__ . '/..' . '/react/socket/src/UnixConnector.php', + 'RectorPrefix202312\\React\\Socket\\UnixServer' => __DIR__ . '/..' . '/react/socket/src/UnixServer.php', + 'RectorPrefix202312\\React\\Stream\\CompositeStream' => __DIR__ . '/..' . '/react/stream/src/CompositeStream.php', + 'RectorPrefix202312\\React\\Stream\\DuplexResourceStream' => __DIR__ . '/..' . '/react/stream/src/DuplexResourceStream.php', + 'RectorPrefix202312\\React\\Stream\\DuplexStreamInterface' => __DIR__ . '/..' . '/react/stream/src/DuplexStreamInterface.php', + 'RectorPrefix202312\\React\\Stream\\ReadableResourceStream' => __DIR__ . '/..' . '/react/stream/src/ReadableResourceStream.php', + 'RectorPrefix202312\\React\\Stream\\ReadableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/ReadableStreamInterface.php', + 'RectorPrefix202312\\React\\Stream\\ThroughStream' => __DIR__ . '/..' . '/react/stream/src/ThroughStream.php', + 'RectorPrefix202312\\React\\Stream\\Util' => __DIR__ . '/..' . '/react/stream/src/Util.php', + 'RectorPrefix202312\\React\\Stream\\WritableResourceStream' => __DIR__ . '/..' . '/react/stream/src/WritableResourceStream.php', + 'RectorPrefix202312\\React\\Stream\\WritableStreamInterface' => __DIR__ . '/..' . '/react/stream/src/WritableStreamInterface.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', + 'RectorPrefix202312\\SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Attribute\\AsCommand' => __DIR__ . '/..' . '/symfony/console/Attribute/AsCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\CI\\GithubActionReporter' => __DIR__ . '/..' . '/symfony/console/CI/GithubActionReporter.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Color' => __DIR__ . '/..' . '/symfony/console/Color.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\CommandLoader\\ContainerCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/ContainerCommandLoader.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\CommandLoader\\FactoryCommandLoader' => __DIR__ . '/..' . '/symfony/console/CommandLoader/FactoryCommandLoader.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\Command' => __DIR__ . '/..' . '/symfony/console/Command/Command.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\CompleteCommand' => __DIR__ . '/..' . '/symfony/console/Command/CompleteCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\DumpCompletionCommand' => __DIR__ . '/..' . '/symfony/console/Command/DumpCompletionCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\HelpCommand' => __DIR__ . '/..' . '/symfony/console/Command/HelpCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\LazyCommand' => __DIR__ . '/..' . '/symfony/console/Command/LazyCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\ListCommand' => __DIR__ . '/..' . '/symfony/console/Command/ListCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\LockableTrait' => __DIR__ . '/..' . '/symfony/console/Command/LockableTrait.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\SignalableCommandInterface' => __DIR__ . '/..' . '/symfony/console/Command/SignalableCommandInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Command\\TraceableCommand' => __DIR__ . '/..' . '/symfony/console/Command/TraceableCommand.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\CompletionInput' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionInput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\CompletionSuggestions' => __DIR__ . '/..' . '/symfony/console/Completion/CompletionSuggestions.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Output\\BashCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/BashCompletionOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Output\\CompletionOutputInterface' => __DIR__ . '/..' . '/symfony/console/Completion/Output/CompletionOutputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Output\\FishCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/FishCompletionOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Output\\ZshCompletionOutput' => __DIR__ . '/..' . '/symfony/console/Completion/Output/ZshCompletionOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Completion\\Suggestion' => __DIR__ . '/..' . '/symfony/console/Completion/Suggestion.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\ConsoleEvents' => __DIR__ . '/..' . '/symfony/console/ConsoleEvents.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Cursor' => __DIR__ . '/..' . '/symfony/console/Cursor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\DataCollector\\CommandDataCollector' => __DIR__ . '/..' . '/symfony/console/DataCollector/CommandDataCollector.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Debug\\CliRequest' => __DIR__ . '/..' . '/symfony/console/Debug/CliRequest.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\DependencyInjection\\AddConsoleCommandPass' => __DIR__ . '/..' . '/symfony/console/DependencyInjection/AddConsoleCommandPass.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\ApplicationDescription' => __DIR__ . '/..' . '/symfony/console/Descriptor/ApplicationDescription.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\Descriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/Descriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\DescriptorInterface' => __DIR__ . '/..' . '/symfony/console/Descriptor/DescriptorInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\JsonDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/JsonDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\MarkdownDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/MarkdownDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\ReStructuredTextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/ReStructuredTextDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\TextDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/TextDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Descriptor\\XmlDescriptor' => __DIR__ . '/..' . '/symfony/console/Descriptor/XmlDescriptor.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\CommandNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/CommandNotFoundException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/console/Exception/ExceptionInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidArgumentException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\InvalidOptionException' => __DIR__ . '/..' . '/symfony/console/Exception/InvalidOptionException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/console/Exception/LogicException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\MissingInputException' => __DIR__ . '/..' . '/symfony/console/Exception/MissingInputException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\NamespaceNotFoundException' => __DIR__ . '/..' . '/symfony/console/Exception/NamespaceNotFoundException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\RunCommandFailedException' => __DIR__ . '/..' . '/symfony/console/Exception/RunCommandFailedException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/console/Exception/RuntimeException.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatter.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\NullOutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/NullOutputFormatterStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatter' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatter.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyle' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\OutputFormatterStyleStack' => __DIR__ . '/..' . '/symfony/console/Formatter/OutputFormatterStyleStack.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Formatter\\WrappableOutputFormatterInterface' => __DIR__ . '/..' . '/symfony/console/Formatter/WrappableOutputFormatterInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\DebugFormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DebugFormatterHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\DescriptorHelper' => __DIR__ . '/..' . '/symfony/console/Helper/DescriptorHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\Dumper' => __DIR__ . '/..' . '/symfony/console/Helper/Dumper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\FormatterHelper' => __DIR__ . '/..' . '/symfony/console/Helper/FormatterHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\Helper' => __DIR__ . '/..' . '/symfony/console/Helper/Helper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\HelperInterface' => __DIR__ . '/..' . '/symfony/console/Helper/HelperInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\HelperSet' => __DIR__ . '/..' . '/symfony/console/Helper/HelperSet.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\InputAwareHelper' => __DIR__ . '/..' . '/symfony/console/Helper/InputAwareHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\OutputWrapper' => __DIR__ . '/..' . '/symfony/console/Helper/OutputWrapper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\ProcessHelper' => __DIR__ . '/..' . '/symfony/console/Helper/ProcessHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\ProgressBar' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressBar.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\ProgressIndicator' => __DIR__ . '/..' . '/symfony/console/Helper/ProgressIndicator.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\QuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/QuestionHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\SymfonyQuestionHelper' => __DIR__ . '/..' . '/symfony/console/Helper/SymfonyQuestionHelper.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\Table' => __DIR__ . '/..' . '/symfony/console/Helper/Table.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableCell' => __DIR__ . '/..' . '/symfony/console/Helper/TableCell.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableCellStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableCellStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableRows' => __DIR__ . '/..' . '/symfony/console/Helper/TableRows.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableSeparator' => __DIR__ . '/..' . '/symfony/console/Helper/TableSeparator.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Helper\\TableStyle' => __DIR__ . '/..' . '/symfony/console/Helper/TableStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\ArgvInput' => __DIR__ . '/..' . '/symfony/console/Input/ArgvInput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\ArrayInput' => __DIR__ . '/..' . '/symfony/console/Input/ArrayInput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\Input' => __DIR__ . '/..' . '/symfony/console/Input/Input.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputArgument' => __DIR__ . '/..' . '/symfony/console/Input/InputArgument.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputAwareInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputAwareInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputDefinition' => __DIR__ . '/..' . '/symfony/console/Input/InputDefinition.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputInterface' => __DIR__ . '/..' . '/symfony/console/Input/InputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\InputOption' => __DIR__ . '/..' . '/symfony/console/Input/InputOption.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\StreamableInputInterface' => __DIR__ . '/..' . '/symfony/console/Input/StreamableInputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Input\\StringInput' => __DIR__ . '/..' . '/symfony/console/Input/StringInput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Logger\\ConsoleLogger' => __DIR__ . '/..' . '/symfony/console/Logger/ConsoleLogger.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Messenger\\RunCommandContext' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandContext.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Messenger\\RunCommandMessage' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessage.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Messenger\\RunCommandMessageHandler' => __DIR__ . '/..' . '/symfony/console/Messenger/RunCommandMessageHandler.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\AnsiColorMode' => __DIR__ . '/..' . '/symfony/console/Output/AnsiColorMode.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\BufferedOutput' => __DIR__ . '/..' . '/symfony/console/Output/BufferedOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\ConsoleOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\ConsoleOutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleOutputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\ConsoleSectionOutput' => __DIR__ . '/..' . '/symfony/console/Output/ConsoleSectionOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\NullOutput' => __DIR__ . '/..' . '/symfony/console/Output/NullOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\Output' => __DIR__ . '/..' . '/symfony/console/Output/Output.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\OutputInterface' => __DIR__ . '/..' . '/symfony/console/Output/OutputInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\StreamOutput' => __DIR__ . '/..' . '/symfony/console/Output/StreamOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Output\\TrimmedBufferOutput' => __DIR__ . '/..' . '/symfony/console/Output/TrimmedBufferOutput.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Question\\ChoiceQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ChoiceQuestion.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Question\\ConfirmationQuestion' => __DIR__ . '/..' . '/symfony/console/Question/ConfirmationQuestion.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Question\\Question' => __DIR__ . '/..' . '/symfony/console/Question/Question.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\SignalRegistry\\SignalMap' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalMap.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\SignalRegistry\\SignalRegistry' => __DIR__ . '/..' . '/symfony/console/SignalRegistry/SignalRegistry.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\SingleCommandApplication' => __DIR__ . '/..' . '/symfony/console/SingleCommandApplication.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Style\\OutputStyle' => __DIR__ . '/..' . '/symfony/console/Style/OutputStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Style\\StyleInterface' => __DIR__ . '/..' . '/symfony/console/Style/StyleInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Style\\SymfonyStyle' => __DIR__ . '/..' . '/symfony/console/Style/SymfonyStyle.php', + 'RectorPrefix202312\\Symfony\\Component\\Console\\Terminal' => __DIR__ . '/..' . '/symfony/console/Terminal.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/ExceptionInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/FileNotFoundException.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\IOException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOException.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\IOExceptionInterface' => __DIR__ . '/..' . '/symfony/filesystem/Exception/IOExceptionInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/InvalidArgumentException.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/filesystem/Exception/RuntimeException.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Filesystem' => __DIR__ . '/..' . '/symfony/filesystem/Filesystem.php', + 'RectorPrefix202312\\Symfony\\Component\\Filesystem\\Path' => __DIR__ . '/..' . '/symfony/filesystem/Path.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Comparator\\Comparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/Comparator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Comparator\\DateComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/DateComparator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Comparator\\NumberComparator' => __DIR__ . '/..' . '/symfony/finder/Comparator/NumberComparator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/symfony/finder/Exception/AccessDeniedException.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Exception\\DirectoryNotFoundException' => __DIR__ . '/..' . '/symfony/finder/Exception/DirectoryNotFoundException.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Finder' => __DIR__ . '/..' . '/symfony/finder/Finder.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Gitignore' => __DIR__ . '/..' . '/symfony/finder/Gitignore.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Glob' => __DIR__ . '/..' . '/symfony/finder/Glob.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\CustomFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/CustomFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\DateRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DateRangeFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\DepthRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/DepthRangeFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\ExcludeDirectoryFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\FileTypeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FileTypeFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\FilecontentFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilecontentFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\FilenameFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/FilenameFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\LazyIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/LazyIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\MultiplePcreFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/MultiplePcreFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\PathFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/PathFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\RecursiveDirectoryIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/RecursiveDirectoryIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\SizeRangeFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SizeRangeFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\SortableIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/SortableIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\Iterator\\VcsIgnoredFilterIterator' => __DIR__ . '/..' . '/symfony/finder/Iterator/VcsIgnoredFilterIterator.php', + 'RectorPrefix202312\\Symfony\\Component\\Finder\\SplFileInfo' => __DIR__ . '/..' . '/symfony/finder/SplFileInfo.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/symfony/process/Exception/ExceptionInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/symfony/process/Exception/InvalidArgumentException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\LogicException' => __DIR__ . '/..' . '/symfony/process/Exception/LogicException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\ProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessFailedException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\ProcessSignaledException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessSignaledException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\ProcessTimedOutException' => __DIR__ . '/..' . '/symfony/process/Exception/ProcessTimedOutException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\RunProcessFailedException' => __DIR__ . '/..' . '/symfony/process/Exception/RunProcessFailedException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Exception\\RuntimeException' => __DIR__ . '/..' . '/symfony/process/Exception/RuntimeException.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\ExecutableFinder' => __DIR__ . '/..' . '/symfony/process/ExecutableFinder.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\InputStream' => __DIR__ . '/..' . '/symfony/process/InputStream.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Messenger\\RunProcessContext' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessContext.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Messenger\\RunProcessMessage' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessage.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Messenger\\RunProcessMessageHandler' => __DIR__ . '/..' . '/symfony/process/Messenger/RunProcessMessageHandler.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\PhpExecutableFinder' => __DIR__ . '/..' . '/symfony/process/PhpExecutableFinder.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\PhpProcess' => __DIR__ . '/..' . '/symfony/process/PhpProcess.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\PhpSubprocess' => __DIR__ . '/..' . '/symfony/process/PhpSubprocess.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Pipes\\AbstractPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/AbstractPipes.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Pipes\\PipesInterface' => __DIR__ . '/..' . '/symfony/process/Pipes/PipesInterface.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Pipes\\UnixPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/UnixPipes.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Pipes\\WindowsPipes' => __DIR__ . '/..' . '/symfony/process/Pipes/WindowsPipes.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\Process' => __DIR__ . '/..' . '/symfony/process/Process.php', + 'RectorPrefix202312\\Symfony\\Component\\Process\\ProcessUtils' => __DIR__ . '/..' . '/symfony/process/ProcessUtils.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\Attribute\\Required' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/Required.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\Attribute\\SubscribedService' => __DIR__ . '/..' . '/symfony/service-contracts/Attribute/SubscribedService.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ResetInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ResetInterface.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ServiceLocatorTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceLocatorTrait.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ServiceProviderInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceProviderInterface.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ServiceSubscriberInterface' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberInterface.php', + 'RectorPrefix202312\\Symfony\\Contracts\\Service\\ServiceSubscriberTrait' => __DIR__ . '/..' . '/symfony/service-contracts/ServiceSubscriberTrait.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\CommandLine\\WorkerCommandLineFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CommandLine/WorkerCommandLineFactory.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Contract\\SerializableInterface' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Contract/SerializableInterface.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\CpuCoreCountProvider' => __DIR__ . '/..' . '/symplify/easy-parallel/src/CpuCoreCountProvider.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Enum\\Action' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Action.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Enum\\Content' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/Content.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Enum\\ReactCommand' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactCommand.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Enum\\ReactEvent' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Enum/ReactEvent.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Exception\\ParallelShouldNotHappenException' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Exception/ParallelShouldNotHappenException.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\FileSystem\\FilePathNormalizer' => __DIR__ . '/..' . '/symplify/easy-parallel/src/FileSystem/FilePathNormalizer.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\Reflection\\CommandFromReflectionFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/Reflection/CommandFromReflectionFactory.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ScheduleFactory' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ScheduleFactory.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ValueObject\\EasyParallelConfig' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/EasyParallelConfig.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ValueObject\\ParallelProcess' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ParallelProcess.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ValueObject\\ProcessPool' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/ProcessPool.php', + 'RectorPrefix202312\\Symplify\\EasyParallel\\ValueObject\\Schedule' => __DIR__ . '/..' . '/symplify/easy-parallel/src/ValueObject/Schedule.php', + 'RectorPrefix202312\\Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php', + 'RectorPrefix202312\\Webmozart\\Assert\\InvalidArgumentException' => __DIR__ . '/..' . '/webmozart/assert/src/InvalidArgumentException.php', + 'RectorPrefix202312\\Webmozart\\Assert\\Mixin' => __DIR__ . '/..' . '/webmozart/assert/src/Mixin.php', 'Rector\\Arguments\\ArgumentDefaultValueReplacer' => __DIR__ . '/../..' . '/rules/Arguments/ArgumentDefaultValueReplacer.php', 'Rector\\Arguments\\Contract\\ReplaceArgumentDefaultValueInterface' => __DIR__ . '/../..' . '/rules/Arguments/Contract/ReplaceArgumentDefaultValueInterface.php', 'Rector\\Arguments\\NodeAnalyzer\\ArgumentAddingScope' => __DIR__ . '/../..' . '/rules/Arguments/NodeAnalyzer/ArgumentAddingScope.php', @@ -1239,6 +1252,7 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\CodeQuality\\NodeManipulator\\ExprBoolCaster' => __DIR__ . '/../..' . '/rules/CodeQuality/NodeManipulator/ExprBoolCaster.php', 'Rector\\CodeQuality\\Rector\\Array_\\CallableThisArrayToAnonymousFunctionRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Array_/CallableThisArrayToAnonymousFunctionRector.php', 'Rector\\CodeQuality\\Rector\\Assign\\CombinedAssignRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/Assign/CombinedAssignRector.php', + 'Rector\\CodeQuality\\Rector\\BooleanAnd\\RemoveUselessIsObjectCheckRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/BooleanAnd/RemoveUselessIsObjectCheckRector.php', 'Rector\\CodeQuality\\Rector\\BooleanAnd\\SimplifyEmptyArrayCheckRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/BooleanAnd/SimplifyEmptyArrayCheckRector.php', 'Rector\\CodeQuality\\Rector\\BooleanNot\\ReplaceMultipleBooleanNotRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/BooleanNot/ReplaceMultipleBooleanNotRector.php', 'Rector\\CodeQuality\\Rector\\BooleanNot\\SimplifyDeMorganBinaryRector' => __DIR__ . '/../..' . '/rules/CodeQuality/Rector/BooleanNot/SimplifyDeMorganBinaryRector.php', @@ -1338,7 +1352,6 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\CodingStyle\\Rector\\ClassMethod\\FuncGetArgsToVariadicParamRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/ClassMethod/FuncGetArgsToVariadicParamRector.php', 'Rector\\CodingStyle\\Rector\\ClassMethod\\MakeInheritedMethodVisibilitySameAsParentRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/ClassMethod/MakeInheritedMethodVisibilitySameAsParentRector.php', 'Rector\\CodingStyle\\Rector\\ClassMethod\\NewlineBeforeNewAssignSetRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/ClassMethod/NewlineBeforeNewAssignSetRector.php', - 'Rector\\CodingStyle\\Rector\\Class_\\AddArrayDefaultToArrayPropertyRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/Class_/AddArrayDefaultToArrayPropertyRector.php', 'Rector\\CodingStyle\\Rector\\Closure\\StaticClosureRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/Closure/StaticClosureRector.php', 'Rector\\CodingStyle\\Rector\\Encapsed\\EncapsedStringsToSprintfRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/Encapsed/EncapsedStringsToSprintfRector.php', 'Rector\\CodingStyle\\Rector\\Encapsed\\WrapEncapsedVariableInCurlyBracesRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/Encapsed/WrapEncapsedVariableInCurlyBracesRector.php', @@ -1356,11 +1369,9 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\CodingStyle\\Rector\\Stmt\\NewlineAfterStatementRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/Stmt/NewlineAfterStatementRector.php', 'Rector\\CodingStyle\\Rector\\String_\\SymplifyQuoteEscapeRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/String_/SymplifyQuoteEscapeRector.php', 'Rector\\CodingStyle\\Rector\\String_\\UseClassKeywordForClassNameResolutionRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/String_/UseClassKeywordForClassNameResolutionRector.php', - 'Rector\\CodingStyle\\Rector\\Switch_\\BinarySwitchToIfElseRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/Switch_/BinarySwitchToIfElseRector.php', 'Rector\\CodingStyle\\Rector\\Ternary\\TernaryConditionVariableAssignmentRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/Ternary/TernaryConditionVariableAssignmentRector.php', 'Rector\\CodingStyle\\Rector\\Use_\\SeparateMultiUseImportsRector' => __DIR__ . '/../..' . '/rules/CodingStyle/Rector/Use_/SeparateMultiUseImportsRector.php', 'Rector\\CodingStyle\\Reflection\\VendorLocationDetector' => __DIR__ . '/../..' . '/rules/CodingStyle/Reflection/VendorLocationDetector.php', - 'Rector\\CodingStyle\\TypeAnalyzer\\IterableTypeAnalyzer' => __DIR__ . '/../..' . '/rules/CodingStyle/TypeAnalyzer/IterableTypeAnalyzer.php', 'Rector\\CodingStyle\\ValueObject\\ObjectMagicMethods' => __DIR__ . '/../..' . '/rules/CodingStyle/ValueObject/ObjectMagicMethods.php', 'Rector\\Comments\\CommentRemover' => __DIR__ . '/../..' . '/packages/Comments/CommentRemover.php', 'Rector\\Comments\\NodeDocBlock\\DocBlockUpdater' => __DIR__ . '/../..' . '/packages/Comments/NodeDocBlock/DocBlockUpdater.php', @@ -1411,6 +1422,7 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\Core\\Error\\ExceptionCorrector' => __DIR__ . '/../..' . '/src/Error/ExceptionCorrector.php', 'Rector\\Core\\Exception\\Cache\\CachingException' => __DIR__ . '/../..' . '/src/Exception/Cache/CachingException.php', 'Rector\\Core\\Exception\\Configuration\\InvalidConfigurationException' => __DIR__ . '/../..' . '/src/Exception/Configuration/InvalidConfigurationException.php', + 'Rector\\Core\\Exception\\FullyQualifiedNameNotAutoloadedException' => __DIR__ . '/../..' . '/src/Exception/FullyQualifiedNameNotAutoloadedException.php', 'Rector\\Core\\Exception\\NotImplementedYetException' => __DIR__ . '/../..' . '/src/Exception/NotImplementedYetException.php', 'Rector\\Core\\Exception\\Reflection\\MissingPrivatePropertyException' => __DIR__ . '/../..' . '/src/Exception/Reflection/MissingPrivatePropertyException.php', 'Rector\\Core\\Exception\\ShouldNotHappenException' => __DIR__ . '/../..' . '/src/Exception/ShouldNotHappenException.php', @@ -1538,6 +1550,7 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\DeadCode\\Rector\\ClassConst\\RemoveUnusedPrivateClassConstantRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassConst/RemoveUnusedPrivateClassConstantRector.php', 'Rector\\DeadCode\\Rector\\ClassLike\\RemoveAnnotationRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassLike/RemoveAnnotationRector.php', 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveEmptyClassMethodRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveEmptyClassMethodRector.php', + 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveNullTagValueNodeRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveNullTagValueNodeRector.php', 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedConstructorParamRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedConstructorParamRector.php', 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPrivateMethodParameterRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodParameterRector.php', 'Rector\\DeadCode\\Rector\\ClassMethod\\RemoveUnusedPrivateMethodRector' => __DIR__ . '/../..' . '/rules/DeadCode/Rector/ClassMethod/RemoveUnusedPrivateMethodRector.php', @@ -1705,6 +1718,7 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\DowngradePhp81\\Rector\\Property\\DowngradeReadonlyPropertyRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/Property/DowngradeReadonlyPropertyRector.php', 'Rector\\DowngradePhp81\\Rector\\StmtsAwareInterface\\DowngradeSetAccessibleReflectionPropertyRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp81/Rector/StmtsAwareInterface/DowngradeSetAccessibleReflectionPropertyRector.php', 'Rector\\DowngradePhp82\\Rector\\Class_\\DowngradeReadonlyClassRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/Class_/DowngradeReadonlyClassRector.php', + 'Rector\\DowngradePhp82\\Rector\\FunctionLike\\DowngradeStandaloneNullTrueFalseReturnTypeRector' => __DIR__ . '/..' . '/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php', 'Rector\\EarlyReturn\\NodeAnalyzer\\IfAndAnalyzer' => __DIR__ . '/../..' . '/rules/EarlyReturn/NodeAnalyzer/IfAndAnalyzer.php', 'Rector\\EarlyReturn\\NodeAnalyzer\\SimpleScalarAnalyzer' => __DIR__ . '/../..' . '/rules/EarlyReturn/NodeAnalyzer/SimpleScalarAnalyzer.php', 'Rector\\EarlyReturn\\NodeFactory\\InvertedIfFactory' => __DIR__ . '/../..' . '/rules/EarlyReturn/NodeFactory/InvertedIfFactory.php', @@ -2014,7 +2028,6 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\Php71\\Rector\\BinaryOp\\BinaryOpBetweenNumberAndStringRector' => __DIR__ . '/../..' . '/rules/Php71/Rector/BinaryOp/BinaryOpBetweenNumberAndStringRector.php', 'Rector\\Php71\\Rector\\BooleanOr\\IsIterableRector' => __DIR__ . '/../..' . '/rules/Php71/Rector/BooleanOr/IsIterableRector.php', 'Rector\\Php71\\Rector\\ClassConst\\PublicConstantVisibilityRector' => __DIR__ . '/../..' . '/rules/Php71/Rector/ClassConst/PublicConstantVisibilityRector.php', - 'Rector\\Php71\\Rector\\FuncCall\\CountOnNullRector' => __DIR__ . '/../..' . '/rules/Php71/Rector/FuncCall/CountOnNullRector.php', 'Rector\\Php71\\Rector\\FuncCall\\RemoveExtraParametersRector' => __DIR__ . '/../..' . '/rules/Php71/Rector/FuncCall/RemoveExtraParametersRector.php', 'Rector\\Php71\\Rector\\List_\\ListToArrayDestructRector' => __DIR__ . '/../..' . '/rules/Php71/Rector/List_/ListToArrayDestructRector.php', 'Rector\\Php71\\Rector\\TryCatch\\MultiExceptionCatchRector' => __DIR__ . '/../..' . '/rules/Php71/Rector/TryCatch/MultiExceptionCatchRector.php', @@ -2121,6 +2134,7 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\Php82\\Rector\\FuncCall\\Utf8DecodeEncodeToMbConvertEncodingRector' => __DIR__ . '/../..' . '/rules/Php82/Rector/FuncCall/Utf8DecodeEncodeToMbConvertEncodingRector.php', 'Rector\\Php82\\Rector\\New_\\FilesystemIteratorSkipDotsRector' => __DIR__ . '/../..' . '/rules/Php82/Rector/New_/FilesystemIteratorSkipDotsRector.php', 'Rector\\Php82\\Rector\\Param\\AddSensitiveParameterAttributeRector' => __DIR__ . '/../..' . '/rules/Php82/Rector/Param/AddSensitiveParameterAttributeRector.php', + 'Rector\\Php83\\Rector\\ClassConst\\AddTypeToConstRector' => __DIR__ . '/../..' . '/rules/Php83/Rector/ClassConst/AddTypeToConstRector.php', 'Rector\\Php83\\Rector\\ClassMethod\\AddOverrideAttributeToOverriddenMethodsRector' => __DIR__ . '/../..' . '/rules/Php83/Rector/ClassMethod/AddOverrideAttributeToOverriddenMethodsRector.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper' => __DIR__ . '/../..' . '/packages/PhpAttribute/AnnotationToAttributeMapper.php', 'Rector\\PhpAttribute\\AnnotationToAttributeMapper\\ArrayAnnotationToAttributeMapper' => __DIR__ . '/../..' . '/packages/PhpAttribute/AnnotationToAttributeMapper/ArrayAnnotationToAttributeMapper.php', @@ -2337,10 +2351,13 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\Symfony\\Set\\FOSRestSetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/FOSRestSetList.php', 'Rector\\Symfony\\Set\\JMSSetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/JMSSetList.php', 'Rector\\Symfony\\Set\\SensiolabsSetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/SensiolabsSetList.php', + 'Rector\\Symfony\\Set\\SwiftMailerSetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/SwiftMailerSetList.php', 'Rector\\Symfony\\Set\\SymfonyLevelSetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/SymfonyLevelSetList.php', 'Rector\\Symfony\\Set\\SymfonySetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/SymfonySetList.php', 'Rector\\Symfony\\Set\\TwigLevelSetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/TwigLevelSetList.php', 'Rector\\Symfony\\Set\\TwigSetList' => __DIR__ . '/..' . '/rector/rector-symfony/src/Set/TwigSetList.php', + 'Rector\\Symfony\\SwiftMailer\\Rector\\MethodCall\\SwiftCreateMessageToNewEmailRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/SwiftMailer/Rector/MethodCall/SwiftCreateMessageToNewEmailRector.php', + 'Rector\\Symfony\\SwiftMailer\\Rector\\MethodCall\\SwiftSetBodyToHtmlPlainMethodCallRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/SwiftMailer/Rector/MethodCall/SwiftSetBodyToHtmlPlainMethodCallRector.php', 'Rector\\Symfony\\Symfony25\\Rector\\MethodCall\\AddViolationToBuildViolationRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony25/Rector/MethodCall/AddViolationToBuildViolationRector.php', 'Rector\\Symfony\\Symfony25\\Rector\\MethodCall\\MaxLengthSymfonyFormOptionToAttrRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony25/Rector/MethodCall/MaxLengthSymfonyFormOptionToAttrRector.php', 'Rector\\Symfony\\Symfony26\\Rector\\MethodCall\\RedirectToRouteRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony26/Rector/MethodCall/RedirectToRouteRector.php', @@ -2391,8 +2408,6 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\Symfony\\Symfony52\\Rector\\New_\\PropertyPathMapperToDataMapperRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony52/Rector/New_/PropertyPathMapperToDataMapperRector.php', 'Rector\\Symfony\\Symfony52\\Rector\\StaticCall\\BinaryFileResponseCreateToNewInstanceRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony52/Rector/StaticCall/BinaryFileResponseCreateToNewInstanceRector.php', 'Rector\\Symfony\\Symfony53\\Rector\\Class_\\CommandDescriptionToPropertyRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony53/Rector/Class_/CommandDescriptionToPropertyRector.php', - 'Rector\\Symfony\\Symfony53\\Rector\\MethodCall\\SwiftCreateMessageToNewEmailRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony53/Rector/MethodCall/SwiftCreateMessageToNewEmailRector.php', - 'Rector\\Symfony\\Symfony53\\Rector\\MethodCall\\SwiftSetBodyToHtmlPlainMethodCallRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony53/Rector/MethodCall/SwiftSetBodyToHtmlPlainMethodCallRector.php', 'Rector\\Symfony\\Symfony53\\Rector\\StaticPropertyFetch\\KernelTestCaseContainerPropertyDeprecationRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony53/Rector/StaticPropertyFetch/KernelTestCaseContainerPropertyDeprecationRector.php', 'Rector\\Symfony\\Symfony60\\Rector\\FuncCall\\ReplaceServiceArgumentRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony60/Rector/FuncCall/ReplaceServiceArgumentRector.php', 'Rector\\Symfony\\Symfony60\\Rector\\MethodCall\\GetHelperControllerToServiceRector' => __DIR__ . '/..' . '/rector/rector-symfony/rules/Symfony60/Rector/MethodCall/GetHelperControllerToServiceRector.php', @@ -2537,17 +2552,15 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\ReturnUnionTypeRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/ReturnUnionTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictArrayParamDimFetchRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/StrictArrayParamDimFetchRector.php', 'Rector\\TypeDeclaration\\Rector\\ClassMethod\\StrictStringParamConcatRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/ClassMethod/StrictStringParamConcatRector.php', + 'Rector\\TypeDeclaration\\Rector\\Class_\\MergeDateTimePropertyTypeDeclarationRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/MergeDateTimePropertyTypeDeclarationRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\PropertyTypeFromStrictSetterGetterRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/PropertyTypeFromStrictSetterGetterRector.php', 'Rector\\TypeDeclaration\\Rector\\Class_\\ReturnTypeFromStrictTernaryRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Class_/ReturnTypeFromStrictTernaryRector.php', 'Rector\\TypeDeclaration\\Rector\\Empty_\\EmptyOnNullableObjectToInstanceOfRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Empty_/EmptyOnNullableObjectToInstanceOfRector.php', 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddParamTypeSplFixedArrayRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/FunctionLike/AddParamTypeSplFixedArrayRector.php', 'Rector\\TypeDeclaration\\Rector\\FunctionLike\\AddReturnTypeDeclarationFromYieldsRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/FunctionLike/AddReturnTypeDeclarationFromYieldsRector.php', - 'Rector\\TypeDeclaration\\Rector\\Param\\ParamTypeFromStrictTypedPropertyRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Param/ParamTypeFromStrictTypedPropertyRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\AddPropertyTypeDeclarationRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Property/AddPropertyTypeDeclarationRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromAssignsRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromAssignsRector.php', - 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictConstructorReadonlyClassRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorReadonlyClassRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictConstructorRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictConstructorRector.php', - 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictGetterMethodReturnTypeRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictGetterMethodReturnTypeRector.php', 'Rector\\TypeDeclaration\\Rector\\Property\\TypedPropertyFromStrictSetUpRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/Property/TypedPropertyFromStrictSetUpRector.php', 'Rector\\TypeDeclaration\\Rector\\StmtsAwareInterface\\DeclareStrictTypesRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/StmtsAwareInterface/DeclareStrictTypesRector.php', 'Rector\\TypeDeclaration\\Rector\\While_\\WhileNullableToInstanceofRector' => __DIR__ . '/../..' . '/rules/TypeDeclaration/Rector/While_/WhileNullableToInstanceofRector.php', @@ -2606,9 +2619,9 @@ class ComposerStaticInita55c41c7fa52abd86138c6f32df1d185 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInita55c41c7fa52abd86138c6f32df1d185::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInita55c41c7fa52abd86138c6f32df1d185::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInita55c41c7fa52abd86138c6f32df1d185::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit8339caf294dd12447c06647e5d0dc118::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit8339caf294dd12447c06647e5d0dc118::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit8339caf294dd12447c06647e5d0dc118::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/rector/rector/vendor/composer/installed.json b/vendor/rector/rector/vendor/composer/installed.json index 231dd79b9..548528777 100644 --- a/vendor/rector/rector/vendor/composer/installed.json +++ b/vendor/rector/rector/vendor/composer/installed.json @@ -28,7 +28,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Clue\\React\\NDJson\\": "src\/" + "RectorPrefix202312\\Clue\\React\\NDJson\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -100,7 +100,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Composer\\Pcre\\": "src" + "RectorPrefix202312\\Composer\\Pcre\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -173,7 +173,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Composer\\Semver\\": "src" + "RectorPrefix202312\\Composer\\Semver\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -255,7 +255,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202312\\Composer\\XdebugHandler\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -325,7 +325,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" + "RectorPrefix202312\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -414,7 +414,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Evenement\\": "src\/" + "RectorPrefix202312\\Evenement\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -472,7 +472,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Fidry\\CpuCoreCounter\\": "src\/" + "RectorPrefix202312\\Fidry\\CpuCoreCounter\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -504,8 +504,8 @@ }, { "name": "illuminate\/container", - "version": "v10.32.1", - "version_normalized": "10.32.1.0", + "version": "v10.38.1", + "version_normalized": "10.38.1.0", "source": { "type": "git", "url": "https:\/\/github.com\/illuminate\/container.git", @@ -538,7 +538,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Illuminate\\Container\\": "" + "RectorPrefix202312\\Illuminate\\Container\\": "" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -561,8 +561,8 @@ }, { "name": "illuminate\/contracts", - "version": "v10.32.1", - "version_normalized": "10.32.1.0", + "version": "v10.38.1", + "version_normalized": "10.38.1.0", "source": { "type": "git", "url": "https:\/\/github.com\/illuminate\/contracts.git", @@ -589,7 +589,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Illuminate\\Contracts\\": "" + "RectorPrefix202312\\Illuminate\\Contracts\\": "" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -701,17 +701,17 @@ }, { "name": "nikic\/php-parser", - "version": "v4.17.1", - "version_normalized": "4.17.1.0", + "version": "v4.18.0", + "version_normalized": "4.18.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/nikic\/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/nikic\/PHP-Parser\/zipball\/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https:\/\/api.github.com\/repos\/nikic\/PHP-Parser\/zipball\/1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", "shasum": "" }, "require": { @@ -722,7 +722,7 @@ "ircmaxell\/php-yacc": "^0.0.7", "phpunit\/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, - "time": "2023-08-13T19:53:39+00:00", + "time": "2023-12-10T21:03:43+00:00", "bin": [ "bin\/php-parse" ], @@ -771,7 +771,7 @@ ], "support": { "issues": "https:\/\/github.com\/nikic\/PHP-Parser\/issues", - "source": "https:\/\/github.com\/nikic\/PHP-Parser\/tree\/v4.17.1" + "source": "https:\/\/github.com\/nikic\/PHP-Parser\/tree\/v4.18.0" }, "install-path": "..\/nikic\/php-parser" }, @@ -807,7 +807,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202312\\OndraM\\CiDetector\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -858,17 +858,17 @@ }, { "name": "phpstan\/phpdoc-parser", - "version": "1.24.2", - "version_normalized": "1.24.2.0", + "version": "1.24.5", + "version_normalized": "1.24.5.0", "source": { "type": "git", "url": "https:\/\/github.com\/phpstan\/phpdoc-parser.git", - "reference": "bcad8d995980440892759db0c32acae7c8e79442" + "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/bcad8d995980440892759db0c32acae7c8e79442", - "reference": "bcad8d995980440892759db0c32acae7c8e79442", + "url": "https:\/\/api.github.com\/repos\/phpstan\/phpdoc-parser\/zipball\/fedf211ff14ec8381c9bf5714e33a7a552dd1acc", + "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc", "shasum": "" }, "require": { @@ -885,7 +885,7 @@ "phpunit\/phpunit": "^9.5", "symfony\/process": "^5.2" }, - "time": "2023-09-26T12:28:12+00:00", + "time": "2023-12-16T09:33:33+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -902,7 +902,7 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https:\/\/github.com\/phpstan\/phpdoc-parser\/issues", - "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/1.24.2" + "source": "https:\/\/github.com\/phpstan\/phpdoc-parser\/tree\/1.24.5" }, "install-path": "..\/phpstan\/phpdoc-parser" }, @@ -934,7 +934,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Psr\\Container\\": "src\/" + "RectorPrefix202312\\Psr\\Container\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -990,7 +990,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Psr\\Log\\": "src" + "RectorPrefix202312\\Psr\\Log\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1043,7 +1043,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Psr\\SimpleCache\\": "src\/" + "RectorPrefix202312\\Psr\\SimpleCache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1096,7 +1096,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\React\\Cache\\": "src\/" + "RectorPrefix202312\\React\\Cache\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1175,7 +1175,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\React\\ChildProcess\\": "src" + "RectorPrefix202312\\React\\ChildProcess\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1228,17 +1228,17 @@ }, { "name": "react\/dns", - "version": "v1.11.0", - "version_normalized": "1.11.0.0", + "version": "v1.12.0", + "version_normalized": "1.12.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/reactphp\/dns.git", - "reference": "3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f" + "reference": "c134600642fa615b46b41237ef243daa65bb64ec" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/reactphp\/dns\/zipball\/3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f", - "reference": "3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f", + "url": "https:\/\/api.github.com\/repos\/reactphp\/dns\/zipball\/c134600642fa615b46b41237ef243daa65bb64ec", + "reference": "c134600642fa615b46b41237ef243daa65bb64ec", "shasum": "" }, "require": { @@ -1248,16 +1248,16 @@ "react\/promise": "^3.0 || ^2.7 || ^1.2.1" }, "require-dev": { - "phpunit\/phpunit": "^9.5 || ^4.8.35", + "phpunit\/phpunit": "^9.6 || ^5.7 || ^4.8.36", "react\/async": "^4 || ^3 || ^2", "react\/promise-timer": "^1.9" }, - "time": "2023-06-02T12:45:26+00:00", + "time": "2023-11-29T12:41:06+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\React\\Dns\\": "src\/" + "RectorPrefix202312\\React\\Dns\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1295,7 +1295,7 @@ ], "support": { "issues": "https:\/\/github.com\/reactphp\/dns\/issues", - "source": "https:\/\/github.com\/reactphp\/dns\/tree\/v1.11.0" + "source": "https:\/\/github.com\/reactphp\/dns\/tree\/v1.12.0" }, "funding": [ { @@ -1334,7 +1334,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\React\\EventLoop\\": "src\/" + "RectorPrefix202312\\React\\EventLoop\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1409,7 +1409,7 @@ "src\/functions_include.php" ], "psr-4": { - "RectorPrefix202311\\React\\Promise\\": "src\/" + "RectorPrefix202312\\React\\Promise\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1457,17 +1457,17 @@ }, { "name": "react\/socket", - "version": "v1.14.0", - "version_normalized": "1.14.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/reactphp\/socket.git", - "reference": "21591111d3ea62e31f2254280ca0656bc2b1bda6" + "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/reactphp\/socket\/zipball\/21591111d3ea62e31f2254280ca0656bc2b1bda6", - "reference": "21591111d3ea62e31f2254280ca0656bc2b1bda6", + "url": "https:\/\/api.github.com\/repos\/reactphp\/socket\/zipball\/216d3aec0b87f04a40ca04f481e6af01bdd1d038", + "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038", "shasum": "" }, "require": { @@ -1479,17 +1479,17 @@ "react\/stream": "^1.2" }, "require-dev": { - "phpunit\/phpunit": "^9.5 || ^5.7 || ^4.8.35", + "phpunit\/phpunit": "^9.6 || ^5.7 || ^4.8.36", "react\/async": "^4 || ^3 || ^2", "react\/promise-stream": "^1.4", "react\/promise-timer": "^1.10" }, - "time": "2023-08-25T13:48:09+00:00", + "time": "2023-12-15T11:02:10+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\React\\Socket\\": "src" + "RectorPrefix202312\\React\\Socket\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1528,7 +1528,7 @@ ], "support": { "issues": "https:\/\/github.com\/reactphp\/socket\/issues", - "source": "https:\/\/github.com\/reactphp\/socket\/tree\/v1.14.0" + "source": "https:\/\/github.com\/reactphp\/socket\/tree\/v1.15.0" }, "funding": [ { @@ -1567,7 +1567,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\React\\Stream\\": "src\/" + "RectorPrefix202312\\React\\Stream\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -1743,12 +1743,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-downgrade-php.git", - "reference": "89c94de72aac045e89368088af355663b9396696" + "reference": "917085c6a2a99412440cd3143288d1a17abb5c44" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/89c94de72aac045e89368088af355663b9396696", - "reference": "89c94de72aac045e89368088af355663b9396696", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-downgrade-php\/zipball\/917085c6a2a99412440cd3143288d1a17abb5c44", + "reference": "917085c6a2a99412440cd3143288d1a17abb5c44", "shasum": "" }, "require": { @@ -1775,7 +1775,7 @@ "tomasvotruba\/unused-public": "^0.2", "tracy\/tracy": "^2.10" }, - "time": "2023-11-07T12:17:46+00:00", + "time": "2023-12-11T13:03:13+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1808,12 +1808,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-phpunit.git", - "reference": "9d85ec12514cc5dc3de835f524e77e20eb2404ae" + "reference": "90e87f1032026d2c9c0195a826dc1126d2c40ecd" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/9d85ec12514cc5dc3de835f524e77e20eb2404ae", - "reference": "9d85ec12514cc5dc3de835f524e77e20eb2404ae", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-phpunit\/zipball\/90e87f1032026d2c9c0195a826dc1126d2c40ecd", + "reference": "90e87f1032026d2c9c0195a826dc1126d2c40ecd", "shasum": "" }, "require": { @@ -1843,7 +1843,7 @@ "tomasvotruba\/unused-public": "^0.3", "tracy\/tracy": "^2.10" }, - "time": "2023-11-11T09:50:47+00:00", + "time": "2023-12-02T15:13:56+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -1879,12 +1879,12 @@ "source": { "type": "git", "url": "https:\/\/github.com\/rectorphp\/rector-symfony.git", - "reference": "38014d41e7ccddfdc4c9c839931c68a57d931f63" + "reference": "5f1e96d90c228075cbd9ab5f98f6e1c989ea8547" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/38014d41e7ccddfdc4c9c839931c68a57d931f63", - "reference": "38014d41e7ccddfdc4c9c839931c68a57d931f63", + "url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-symfony\/zipball\/5f1e96d90c228075cbd9ab5f98f6e1c989ea8547", + "reference": "5f1e96d90c228075cbd9ab5f98f6e1c989ea8547", "shasum": "" }, "require": { @@ -1917,7 +1917,7 @@ "tomasvotruba\/unused-public": "^0.2", "tracy\/tracy": "^2.10" }, - "time": "2023-10-29T11:07:39+00:00", + "time": "2023-12-15T10:10:08+00:00", "default-branch": true, "type": "rector-extension", "extra": { @@ -2015,17 +2015,17 @@ }, { "name": "symfony\/console", - "version": "v6.3.8", - "version_normalized": "6.3.8.0", + "version": "v6.4.1", + "version_normalized": "6.4.1.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/console.git", - "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92" + "reference": "a550a7c99daeedef3f9d23fb82e3531525ff11fd" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/0d14a9f6d04d4ac38a8cea1171f4554e325dae92", - "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92", + "url": "https:\/\/api.github.com\/repos\/symfony\/console\/zipball\/a550a7c99daeedef3f9d23fb82e3531525ff11fd", + "reference": "a550a7c99daeedef3f9d23fb82e3531525ff11fd", "shasum": "" }, "require": { @@ -2033,7 +2033,7 @@ "symfony\/deprecation-contracts": "^2.5|^3", "symfony\/polyfill-mbstring": "~1.0", "symfony\/service-contracts": "^2.5|^3", - "symfony\/string": "^5.4|^6.0" + "symfony\/string": "^5.4|^6.0|^7.0" }, "conflict": { "symfony\/dependency-injection": "<5.4", @@ -2047,14 +2047,18 @@ }, "require-dev": { "psr\/log": "^1|^2|^3", - "symfony\/config": "^5.4|^6.0", - "symfony\/dependency-injection": "^5.4|^6.0", - "symfony\/event-dispatcher": "^5.4|^6.0", - "symfony\/lock": "^5.4|^6.0", - "symfony\/process": "^5.4|^6.0", - "symfony\/var-dumper": "^5.4|^6.0" - }, - "time": "2023-10-31T08:09:35+00:00", + "symfony\/config": "^5.4|^6.0|^7.0", + "symfony\/dependency-injection": "^5.4|^6.0|^7.0", + "symfony\/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony\/http-foundation": "^6.4|^7.0", + "symfony\/http-kernel": "^6.4|^7.0", + "symfony\/lock": "^5.4|^6.0|^7.0", + "symfony\/messenger": "^5.4|^6.0|^7.0", + "symfony\/process": "^5.4|^6.0|^7.0", + "symfony\/stopwatch": "^5.4|^6.0|^7.0", + "symfony\/var-dumper": "^5.4|^6.0|^7.0" + }, + "time": "2023-11-30T10:54:28+00:00", "type": "library", "extra": { "patches_applied": [ @@ -2064,7 +2068,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Component\\Console\\": "" + "RectorPrefix202312\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2093,7 +2097,7 @@ "terminal" ], "support": { - "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.3.8" + "source": "https:\/\/github.com\/symfony\/console\/tree\/v6.4.1" }, "funding": [ { @@ -2113,17 +2117,17 @@ }, { "name": "symfony\/filesystem", - "version": "v6.3.1", - "version_normalized": "6.3.1.0", + "version": "v6.4.0", + "version_normalized": "6.4.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/filesystem.git", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + "reference": "952a8cb588c3bc6ce76f6023000fb932f16a6e59" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/filesystem\/zipball\/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", - "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "url": "https:\/\/api.github.com\/repos\/symfony\/filesystem\/zipball\/952a8cb588c3bc6ce76f6023000fb932f16a6e59", + "reference": "952a8cb588c3bc6ce76f6023000fb932f16a6e59", "shasum": "" }, "require": { @@ -2131,12 +2135,12 @@ "symfony\/polyfill-ctype": "~1.8", "symfony\/polyfill-mbstring": "~1.8" }, - "time": "2023-06-01T08:30:39+00:00", + "time": "2023-07-26T17:27:13+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202312\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2159,7 +2163,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/filesystem\/tree\/v6.3.1" + "source": "https:\/\/github.com\/symfony\/filesystem\/tree\/v6.4.0" }, "funding": [ { @@ -2179,31 +2183,31 @@ }, { "name": "symfony\/finder", - "version": "v6.3.5", - "version_normalized": "6.3.5.0", + "version": "v6.4.0", + "version_normalized": "6.4.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/finder.git", - "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4" + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/finder\/zipball\/a1b31d88c0e998168ca7792f222cbecee47428c4", - "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4", + "url": "https:\/\/api.github.com\/repos\/symfony\/finder\/zipball\/11d736e97f116ac375a81f96e662911a34cd50ce", + "reference": "11d736e97f116ac375a81f96e662911a34cd50ce", "shasum": "" }, "require": { "php": ">=8.1" }, "require-dev": { - "symfony\/filesystem": "^6.0" + "symfony\/filesystem": "^6.0|^7.0" }, - "time": "2023-09-26T12:56:25+00:00", + "time": "2023-10-31T17:30:12+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202312\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2226,7 +2230,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/finder\/tree\/v6.3.5" + "source": "https:\/\/github.com\/symfony\/finder\/tree\/v6.4.0" }, "funding": [ { @@ -2332,28 +2336,28 @@ }, { "name": "symfony\/process", - "version": "v6.3.4", - "version_normalized": "6.3.4.0", + "version": "v6.4.0", + "version_normalized": "6.4.0.0", "source": { "type": "git", "url": "https:\/\/github.com\/symfony\/process.git", - "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54" + "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa" }, "dist": { "type": "zip", - "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/0b5c29118f2e980d455d2e34a5659f4579847c54", - "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54", + "url": "https:\/\/api.github.com\/repos\/symfony\/process\/zipball\/191703b1566d97a5425dc969e4350d32b8ef17aa", + "reference": "191703b1566d97a5425dc969e4350d32b8ef17aa", "shasum": "" }, "require": { "php": ">=8.1" }, - "time": "2023-08-07T10:39:22+00:00", + "time": "2023-11-17T21:06:49+00:00", "type": "library", "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Component\\Process\\": "" + "RectorPrefix202312\\Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "\/Tests\/" @@ -2376,7 +2380,7 @@ "description": "Executes commands in sub-processes", "homepage": "https:\/\/symfony.com", "support": { - "source": "https:\/\/github.com\/symfony\/process\/tree\/v6.3.4" + "source": "https:\/\/github.com\/symfony\/process\/tree\/v6.4.0" }, "funding": [ { @@ -2430,7 +2434,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202312\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" @@ -2525,7 +2529,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Symplify\\EasyParallel\\": "src" + "RectorPrefix202312\\Symplify\\EasyParallel\\": "src" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", @@ -2648,7 +2652,7 @@ "installation-source": "dist", "autoload": { "psr-4": { - "RectorPrefix202311\\Webmozart\\Assert\\": "src\/" + "RectorPrefix202312\\Webmozart\\Assert\\": "src\/" } }, "notification-url": "https:\/\/packagist.org\/downloads\/", diff --git a/vendor/rector/rector/vendor/composer/installed.php b/vendor/rector/rector/vendor/composer/installed.php index e74d4d1df..14bbd50ba 100644 --- a/vendor/rector/rector/vendor/composer/installed.php +++ b/vendor/rector/rector/vendor/composer/installed.php @@ -1,5 +1,5 @@ array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.1', 'version' => '3.1.1.0', 'reference' => '00104306927c7a0919b4ced2aaa6782c1e61a3c9', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.0', 'version' => '3.4.0.0', 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => 'f9301a5b2fb1216b2b08f02ba04dc45423db6bff', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.32.1', 'version' => '10.32.1.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.32.1', 'version' => '10.32.1.0', 'reference' => 'f6bf37a272fda164f6c451407c99f820eb1eb95b', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.17.1', 'version' => '4.17.1.0', 'reference' => 'a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.24.2', 'version' => '1.24.2.0', 'reference' => 'bcad8d995980440892759db0c32acae7c8e79442', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '^1.10.35')), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.11.0', 'version' => '1.11.0.0', 'reference' => '3be0fc8f1eb37d6875cd6f0c6c7d0be81435de9f', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.11.0', 'version' => '2.11.0.0', 'reference' => '1a8460931ea36dc5c76838fec5734d55c88c6831', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.14.0', 'version' => '1.14.0.0', 'reference' => '21591111d3ea62e31f2254280ca0656bc2b1bda6', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9de7d58cb2b3438a469a609457a92dd37a310acc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '89c94de72aac045e89368088af355663b9396696', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9d85ec12514cc5dc3de835f524e77e20eb2404ae', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '38014d41e7ccddfdc4c9c839931c68a57d931f63', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.3.8', 'version' => '6.3.8.0', 'reference' => '0d14a9f6d04d4ac38a8cea1171f4554e325dae92', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/filesystem' => array('pretty_version' => 'v6.3.1', 'version' => '6.3.1.0', 'reference' => 'edd36776956f2a6fcf577edb5b05eb0e3bdc52ae', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.3.5', 'version' => '6.3.5.0', 'reference' => 'a1b31d88c0e998168ca7792f222cbecee47428c4', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.28.0', 'version' => '1.28.0.0', 'reference' => '42292d99c55abe617799667f454222c54c60e229', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.3.4', 'version' => '6.3.4.0', 'reference' => '0b5c29118f2e980d455d2e34a5659f4579847c54', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => 'b3313c2dbffaf71c8de2934e2ea56ed2291a3838', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symplify/easy-parallel' => array('pretty_version' => '11.1.27', 'version' => '11.1.27.0', 'reference' => '28911142f6a0f4127271f745e2403bb84fcd2b87', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); +return array('root' => array('name' => 'rector/rector-src', 'pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('clue/ndjson-react' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0', 'type' => 'library', 'install_path' => __DIR__ . '/../clue/ndjson-react', 'aliases' => array(), 'dev_requirement' => \false), 'composer/pcre' => array('pretty_version' => '3.1.1', 'version' => '3.1.1.0', 'reference' => '00104306927c7a0919b4ced2aaa6782c1e61a3c9', 'type' => 'library', 'install_path' => __DIR__ . '/./pcre', 'aliases' => array(), 'dev_requirement' => \false), 'composer/semver' => array('pretty_version' => '3.4.0', 'version' => '3.4.0.0', 'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32', 'type' => 'library', 'install_path' => __DIR__ . '/./semver', 'aliases' => array(), 'dev_requirement' => \false), 'composer/xdebug-handler' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => 'ced299686f41dce890debac69273b47ffe98a40c', 'type' => 'library', 'install_path' => __DIR__ . '/./xdebug-handler', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => '2.0.8', 'version' => '2.0.8.0', 'reference' => 'f9301a5b2fb1216b2b08f02ba04dc45423db6bff', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'evenement/evenement' => array('pretty_version' => 'v3.0.2', 'version' => '3.0.2.0', 'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc', 'type' => 'library', 'install_path' => __DIR__ . '/../evenement/evenement', 'aliases' => array(), 'dev_requirement' => \false), 'fidry/cpu-core-counter' => array('pretty_version' => '0.5.1', 'version' => '0.5.1.0', 'reference' => 'b58e5a3933e541dc286cc91fc4f3898bbc6f1623', 'type' => 'library', 'install_path' => __DIR__ . '/../fidry/cpu-core-counter', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v10.38.1', 'version' => '10.38.1.0', 'reference' => 'ddc26273085fad3c471b2602ad820e0097ff7939', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v10.38.1', 'version' => '10.38.1.0', 'reference' => 'f6bf37a272fda164f6c451407c99f820eb1eb95b', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'nette/utils' => array('pretty_version' => 'v3.2.10', 'version' => '3.2.10.0', 'reference' => 'a4175c62652f2300c8017fb7e640f9ccb11648d2', 'type' => 'library', 'install_path' => __DIR__ . '/../nette/utils', 'aliases' => array(), 'dev_requirement' => \false), 'nikic/php-parser' => array('pretty_version' => 'v4.18.0', 'version' => '4.18.0.0', 'reference' => '1bcbb2179f97633e98bbbc87044ee2611c7d7999', 'type' => 'library', 'install_path' => __DIR__ . '/../nikic/php-parser', 'aliases' => array(), 'dev_requirement' => \false), 'ondram/ci-detector' => array('pretty_version' => '4.1.0', 'version' => '4.1.0.0', 'reference' => '8a4b664e916df82ff26a44709942dfd593fa6f30', 'type' => 'library', 'install_path' => __DIR__ . '/../ondram/ci-detector', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpdoc-parser' => array('pretty_version' => '1.24.5', 'version' => '1.24.5.0', 'reference' => 'fedf211ff14ec8381c9bf5714e33a7a552dd1acc', 'type' => 'library', 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', 'aliases' => array(), 'dev_requirement' => \false), 'phpstan/phpstan' => array('dev_requirement' => \false, 'replaced' => array(0 => '^1.10.35')), 'psr/container' => array('pretty_version' => '2.0.2', 'version' => '2.0.2.0', 'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.1|2.0')), 'psr/log' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0|2.0|3.0')), 'psr/simple-cache' => array('pretty_version' => '3.0.0', 'version' => '3.0.0.0', 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/cache' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b', 'type' => 'library', 'install_path' => __DIR__ . '/../react/cache', 'aliases' => array(), 'dev_requirement' => \false), 'react/child-process' => array('pretty_version' => 'v0.6.5', 'version' => '0.6.5.0', 'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43', 'type' => 'library', 'install_path' => __DIR__ . '/../react/child-process', 'aliases' => array(), 'dev_requirement' => \false), 'react/dns' => array('pretty_version' => 'v1.12.0', 'version' => '1.12.0.0', 'reference' => 'c134600642fa615b46b41237ef243daa65bb64ec', 'type' => 'library', 'install_path' => __DIR__ . '/../react/dns', 'aliases' => array(), 'dev_requirement' => \false), 'react/event-loop' => array('pretty_version' => 'v1.5.0', 'version' => '1.5.0.0', 'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354', 'type' => 'library', 'install_path' => __DIR__ . '/../react/event-loop', 'aliases' => array(), 'dev_requirement' => \false), 'react/promise' => array('pretty_version' => 'v2.11.0', 'version' => '2.11.0.0', 'reference' => '1a8460931ea36dc5c76838fec5734d55c88c6831', 'type' => 'library', 'install_path' => __DIR__ . '/../react/promise', 'aliases' => array(), 'dev_requirement' => \false), 'react/socket' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '216d3aec0b87f04a40ca04f481e6af01bdd1d038', 'type' => 'library', 'install_path' => __DIR__ . '/../react/socket', 'aliases' => array(), 'dev_requirement' => \false), 'react/stream' => array('pretty_version' => 'v1.3.0', 'version' => '1.3.0.0', 'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66', 'type' => 'library', 'install_path' => __DIR__ . '/../react/stream', 'aliases' => array(), 'dev_requirement' => \false), 'rector/extension-installer' => array('pretty_version' => '0.11.2', 'version' => '0.11.2.0', 'reference' => '05544e9b195863b8571ae2a3b903cbec7fa062e0', 'type' => 'composer-plugin', 'install_path' => __DIR__ . '/../rector/extension-installer', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector' => array('dev_requirement' => \false, 'replaced' => array(0 => 'dev-main')), 'rector/rector-doctrine' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '9de7d58cb2b3438a469a609457a92dd37a310acc', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-doctrine', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-downgrade-php' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '917085c6a2a99412440cd3143288d1a17abb5c44', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-downgrade-php', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'rector/rector-phpunit' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '90e87f1032026d2c9c0195a826dc1126d2c40ecd', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-phpunit', 'aliases' => array(0 => '0.11.x-dev'), 'dev_requirement' => \false), 'rector/rector-src' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => NULL, 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false), 'rector/rector-symfony' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'reference' => '5f1e96d90c228075cbd9ab5f98f6e1c989ea8547', 'type' => 'rector-extension', 'install_path' => __DIR__ . '/../rector/rector-symfony', 'aliases' => array(0 => '9999999-dev'), 'dev_requirement' => \false), 'sebastian/diff' => array('pretty_version' => '5.0.3', 'version' => '5.0.3.0', 'reference' => '912dc2fbe3e3c1e7873313cc801b100b6c68c87b', 'type' => 'library', 'install_path' => __DIR__ . '/../sebastian/diff', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/console' => array('pretty_version' => 'v6.4.1', 'version' => '6.4.1.0', 'reference' => 'a550a7c99daeedef3f9d23fb82e3531525ff11fd', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/console', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/deprecation-contracts' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/filesystem' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '952a8cb588c3bc6ce76f6023000fb932f16a6e59', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '11d736e97f116ac375a81f96e662911a34cd50ce', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-intl-grapheme' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.28.0', 'version' => '1.28.0.0', 'reference' => '42292d99c55abe617799667f454222c54c60e229', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/process' => array('pretty_version' => 'v6.4.0', 'version' => '6.4.0.0', 'reference' => '191703b1566d97a5425dc969e4350d32b8ef17aa', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/process', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/service-contracts' => array('pretty_version' => 'v3.4.0', 'version' => '3.4.0.0', 'reference' => 'b3313c2dbffaf71c8de2934e2ea56ed2291a3838', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/service-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/string' => array('dev_requirement' => \false, 'replaced' => array(0 => '*')), 'symplify/easy-parallel' => array('pretty_version' => '11.1.27', 'version' => '11.1.27.0', 'reference' => '28911142f6a0f4127271f745e2403bb84fcd2b87', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/easy-parallel', 'aliases' => array(), 'dev_requirement' => \false), 'symplify/rule-doc-generator-contracts' => array('pretty_version' => '11.1.26', 'version' => '11.1.26.0', 'reference' => '3e66b3fec678b74a076395ec629d535fb95293b5', 'type' => 'library', 'install_path' => __DIR__ . '/../symplify/rule-doc-generator-contracts', 'aliases' => array(), 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'dev_requirement' => \false))); diff --git a/vendor/rector/rector/vendor/composer/pcre/composer.json b/vendor/rector/rector/vendor/composer/pcre/composer.json index d9cfc04ab..f90cd71e8 100644 --- a/vendor/rector/rector/vendor/composer/pcre/composer.json +++ b/vendor/rector/rector/vendor/composer/pcre/composer.json @@ -26,12 +26,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Composer\\Pcre\\": "src" + "RectorPrefix202312\\Composer\\Pcre\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202311\\Composer\\Pcre\\": "tests" + "RectorPrefix202312\\Composer\\Pcre\\": "tests" } }, "extra": { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php index f22a00976..06c3fe1fd 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; final class MatchAllResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php index 16d0f2e07..92d5db2a9 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllStrictGroupsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; final class MatchAllStrictGroupsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php index 1ec29a37e..ca3001dba 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchAllWithOffsetsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; final class MatchAllWithOffsetsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php index e9a6a396b..52d91e7f4 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; final class MatchResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php index a122f5b0b..8b076654a 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchStrictGroupsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; final class MatchStrictGroupsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php b/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php index e839b48ca..3e4d148a3 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/MatchWithOffsetsResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; final class MatchWithOffsetsResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php b/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php index a871e6141..b6ef7bdfe 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/PcreException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; class PcreException extends \RuntimeException { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/Preg.php b/vendor/rector/rector/vendor/composer/pcre/src/Preg.php index 060fdd063..8e81b7143 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/Preg.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/Preg.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; class Preg { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/Regex.php b/vendor/rector/rector/vendor/composer/pcre/src/Regex.php index 15a46c220..bf22a7bbc 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/Regex.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/Regex.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; class Regex { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php b/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php index c99cc4ef9..1f9093771 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/ReplaceResult.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; final class ReplaceResult { diff --git a/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php b/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php index 40f3228a0..c4c2721fd 100644 --- a/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php +++ b/vendor/rector/rector/vendor/composer/pcre/src/UnexpectedNullMatchException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Pcre; +namespace RectorPrefix202312\Composer\Pcre; class UnexpectedNullMatchException extends PcreException { diff --git a/vendor/rector/rector/vendor/composer/semver/composer.json b/vendor/rector/rector/vendor/composer/semver/composer.json index 6ba6d4c21..3c0aa26c1 100644 --- a/vendor/rector/rector/vendor/composer/semver/composer.json +++ b/vendor/rector/rector/vendor/composer/semver/composer.json @@ -39,12 +39,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Composer\\Semver\\": "src" + "RectorPrefix202312\\Composer\\Semver\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202311\\Composer\\Semver\\": "tests" + "RectorPrefix202312\\Composer\\Semver\\": "tests" } }, "extra": { diff --git a/vendor/rector/rector/vendor/composer/semver/src/Comparator.php b/vendor/rector/rector/vendor/composer/semver/src/Comparator.php index 4f2e8dd20..df257c068 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Comparator.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Comparator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver; +namespace RectorPrefix202312\Composer\Semver; -use RectorPrefix202311\Composer\Semver\Constraint\Constraint; +use RectorPrefix202312\Composer\Semver\Constraint\Constraint; class Comparator { /** diff --git a/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php b/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php index 75d36553b..327382123 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php +++ b/vendor/rector/rector/vendor/composer/semver/src/CompilingMatcher.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver; +namespace RectorPrefix202312\Composer\Semver; -use RectorPrefix202311\Composer\Semver\Constraint\Constraint; -use RectorPrefix202311\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202312\Composer\Semver\Constraint\Constraint; +use RectorPrefix202312\Composer\Semver\Constraint\ConstraintInterface; /** * Helper class to evaluate constraint by compiling and reusing the code to evaluate */ diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php index be240b44d..6fd4ce811 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Bound.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver\Constraint; +namespace RectorPrefix202312\Composer\Semver\Constraint; class Bound { diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php index 17d74d4cb..ec5485590 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/Constraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver\Constraint; +namespace RectorPrefix202312\Composer\Semver\Constraint; /** * Defines a constraint. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php index bc6fb4258..584e6c64b 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/ConstraintInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver\Constraint; +namespace RectorPrefix202312\Composer\Semver\Constraint; /** * DO NOT IMPLEMENT this interface. It is only meant for usage as a type hint diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php index 034347e3c..cff012d11 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchAllConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver\Constraint; +namespace RectorPrefix202312\Composer\Semver\Constraint; /** * Defines the absence of a constraint. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php index 99eaf355d..a26db9d54 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MatchNoneConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver\Constraint; +namespace RectorPrefix202312\Composer\Semver\Constraint; /** * Blackhole of constraints, nothing escapes it diff --git a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php index 129b22b00..ea96a33e2 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Constraint/MultiConstraint.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver\Constraint; +namespace RectorPrefix202312\Composer\Semver\Constraint; /** * Defines a conjunctive or disjunctive set of constraints. diff --git a/vendor/rector/rector/vendor/composer/semver/src/Interval.php b/vendor/rector/rector/vendor/composer/semver/src/Interval.php index 540f75a32..56c03b79b 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Interval.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Interval.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver; +namespace RectorPrefix202312\Composer\Semver; -use RectorPrefix202311\Composer\Semver\Constraint\Constraint; +use RectorPrefix202312\Composer\Semver\Constraint\Constraint; class Interval { /** @var Constraint */ diff --git a/vendor/rector/rector/vendor/composer/semver/src/Intervals.php b/vendor/rector/rector/vendor/composer/semver/src/Intervals.php index c99eef82f..99afbce34 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Intervals.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Intervals.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver; +namespace RectorPrefix202312\Composer\Semver; -use RectorPrefix202311\Composer\Semver\Constraint\Constraint; -use RectorPrefix202311\Composer\Semver\Constraint\ConstraintInterface; -use RectorPrefix202311\Composer\Semver\Constraint\MatchAllConstraint; -use RectorPrefix202311\Composer\Semver\Constraint\MatchNoneConstraint; -use RectorPrefix202311\Composer\Semver\Constraint\MultiConstraint; +use RectorPrefix202312\Composer\Semver\Constraint\Constraint; +use RectorPrefix202312\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202312\Composer\Semver\Constraint\MatchAllConstraint; +use RectorPrefix202312\Composer\Semver\Constraint\MatchNoneConstraint; +use RectorPrefix202312\Composer\Semver\Constraint\MultiConstraint; /** * Helper class generating intervals from constraints * diff --git a/vendor/rector/rector/vendor/composer/semver/src/Semver.php b/vendor/rector/rector/vendor/composer/semver/src/Semver.php index 234522d6d..457290a3c 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/Semver.php +++ b/vendor/rector/rector/vendor/composer/semver/src/Semver.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver; +namespace RectorPrefix202312\Composer\Semver; -use RectorPrefix202311\Composer\Semver\Constraint\Constraint; +use RectorPrefix202312\Composer\Semver\Constraint\Constraint; class Semver { const SORT_ASC = 1; diff --git a/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php b/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php index c688d6126..eed579c90 100644 --- a/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php +++ b/vendor/rector/rector/vendor/composer/semver/src/VersionParser.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\Semver; +namespace RectorPrefix202312\Composer\Semver; -use RectorPrefix202311\Composer\Semver\Constraint\ConstraintInterface; -use RectorPrefix202311\Composer\Semver\Constraint\MatchAllConstraint; -use RectorPrefix202311\Composer\Semver\Constraint\MultiConstraint; -use RectorPrefix202311\Composer\Semver\Constraint\Constraint; +use RectorPrefix202312\Composer\Semver\Constraint\ConstraintInterface; +use RectorPrefix202312\Composer\Semver\Constraint\MatchAllConstraint; +use RectorPrefix202312\Composer\Semver\Constraint\MultiConstraint; +use RectorPrefix202312\Composer\Semver\Constraint\Constraint; /** * Version parser. * diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json b/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json index ef5949cab..c704980cc 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/composer.json @@ -29,12 +29,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Composer\\XdebugHandler\\": "src" + "RectorPrefix202312\\Composer\\XdebugHandler\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202311\\Composer\\XdebugHandler\\Tests\\": "tests" + "RectorPrefix202312\\Composer\\XdebugHandler\\Tests\\": "tests" } }, "scripts": { diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php index 1e58f9bb9..cef560759 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/PhpConfig.php @@ -9,7 +9,7 @@ * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ -namespace RectorPrefix202311\Composer\XdebugHandler; +namespace RectorPrefix202312\Composer\XdebugHandler; /** * @author John Stevenson diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php index 7de18fb11..e996bdeb1 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Process.php @@ -9,9 +9,9 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202311\Composer\XdebugHandler; +namespace RectorPrefix202312\Composer\XdebugHandler; -use RectorPrefix202311\Composer\Pcre\Preg; +use RectorPrefix202312\Composer\Pcre\Preg; /** * Process utility functions * diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php index d702ed5b5..77275bf4a 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/Status.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202311\Composer\XdebugHandler; +namespace RectorPrefix202312\Composer\XdebugHandler; -use RectorPrefix202311\Psr\Log\LoggerInterface; -use RectorPrefix202311\Psr\Log\LogLevel; +use RectorPrefix202312\Psr\Log\LoggerInterface; +use RectorPrefix202312\Psr\Log\LogLevel; /** * @author John Stevenson * @internal diff --git a/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php b/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php index 3e7a088e7..fd02ca554 100644 --- a/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php +++ b/vendor/rector/rector/vendor/composer/xdebug-handler/src/XdebugHandler.php @@ -9,10 +9,10 @@ * the LICENSE file that was distributed with this source code. */ declare (strict_types=1); -namespace RectorPrefix202311\Composer\XdebugHandler; +namespace RectorPrefix202312\Composer\XdebugHandler; -use RectorPrefix202311\Composer\Pcre\Preg; -use RectorPrefix202311\Psr\Log\LoggerInterface; +use RectorPrefix202312\Composer\Pcre\Preg; +use RectorPrefix202312\Psr\Log\LoggerInterface; /** * @author John Stevenson * diff --git a/vendor/rector/rector/vendor/doctrine/inflector/composer.json b/vendor/rector/rector/vendor/doctrine/inflector/composer.json index 1ef52807e..0f6809cea 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/composer.json +++ b/vendor/rector/rector/vendor/doctrine/inflector/composer.json @@ -51,12 +51,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" + "RectorPrefix202312\\Doctrine\\Inflector\\": "lib\/Doctrine\/Inflector" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202311\\Doctrine\\Tests\\Inflector\\": "tests\/Doctrine\/Tests\/Inflector" + "RectorPrefix202312\\Doctrine\\Tests\\Inflector\\": "tests\/Doctrine\/Tests\/Inflector" } }, "config": { diff --git a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php index 090bd7934..7df5b6c60 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php +++ b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/CachedWordInflector.php @@ -1,7 +1,7 @@ ' ', '/([A-Z]+)([A-Z][a-z])/' => 'RectorPrefix202311\\1_\\2', '/([a-z\\d])([A-Z])/' => 'RectorPrefix202311\\1_\\2', '/[^A-Z^a-z^0-9^\\/]+/' => '-']; + $replacements = ['/\\W/' => ' ', '/([A-Z]+)([A-Z][a-z])/' => 'RectorPrefix202312\\1_\\2', '/([a-z\\d])([A-Z])/' => 'RectorPrefix202312\\1_\\2', '/[^A-Z^a-z^0-9^\\/]+/' => '-']; $urlized = $lowered; foreach ($replacements as $pattern => $replacement) { $replaced = preg_replace($pattern, $replacement, $urlized); diff --git a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php index 868c51b68..c1d6f827f 100644 --- a/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php +++ b/vendor/rector/rector/vendor/doctrine/inflector/lib/Doctrine/Inflector/InflectorFactory.php @@ -1,14 +1,14 @@ semValue -#semval($,%t) $this->semValue -#semval(%n) $stackPos-(%l-%n) -#semval(%n,%t) $stackPos-(%l-%n) - -namespace PhpParser\Parser; - -use PhpParser\Error; -use PhpParser\Node; -use PhpParser\Node\Expr; -use PhpParser\Node\Name; -use PhpParser\Node\Scalar; -use PhpParser\Node\Stmt; -#include; - -/* This is an automatically GENERATED file, which should not be manually edited. - * Instead edit one of the following: - * * the grammar files grammar/php5.y or grammar/php7.y - * * the skeleton file grammar/parser.template - * * the preprocessing script grammar/rebuildParsers.php - */ -class #(-p) extends \PhpParser\ParserAbstract -{ - protected $tokenToSymbolMapSize = #(YYMAXLEX); - protected $actionTableSize = #(YYLAST); - protected $gotoTableSize = #(YYGLAST); - - protected $invalidSymbol = #(YYBADCH); - protected $errorSymbol = #(YYINTERRTOK); - protected $defaultAction = #(YYDEFAULT); - protected $unexpectedTokenRule = #(YYUNEXPECTED); - - protected $YY2TBLSTATE = #(YY2TBLSTATE); - protected $numNonLeafStates = #(YYNLSTATES); - - protected $symbolToName = array( - #listvar terminals - ); - - protected $tokenToSymbol = array( - #listvar yytranslate - ); - - protected $action = array( - #listvar yyaction - ); - - protected $actionCheck = array( - #listvar yycheck - ); - - protected $actionBase = array( - #listvar yybase - ); - - protected $actionDefault = array( - #listvar yydefault - ); - - protected $goto = array( - #listvar yygoto - ); - - protected $gotoCheck = array( - #listvar yygcheck - ); - - protected $gotoBase = array( - #listvar yygbase - ); - - protected $gotoDefault = array( - #listvar yygdefault - ); - - protected $ruleToNonTerminal = array( - #listvar yylhs - ); - - protected $ruleToLength = array( - #listvar yylen - ); -#if -t - - protected $productions = array( - #production-strings; - ); -#endif - - protected function initReduceCallbacks() { - $this->reduceCallbacks = [ -#reduce - %n => function ($stackPos) { - %b - }, -#noact - %n => function ($stackPos) { - $this->semValue = $this->semStack[$stackPos]; - }, -#endreduce - ]; - } -} -#tailcode; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/grammar/php5.y b/vendor/rector/rector/vendor/nikic/php-parser/grammar/php5.y deleted file mode 100644 index 77e4fb7ed..000000000 --- a/vendor/rector/rector/vendor/nikic/php-parser/grammar/php5.y +++ /dev/null @@ -1,1046 +0,0 @@ -%pure_parser -%expect 6 - -%tokens - -%% - -start: - top_statement_list { $$ = $this->handleNamespaces($1); } -; - -top_statement_list_ex: - top_statement_list_ex top_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -top_statement_list: - top_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -ampersand: - T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG - | T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG -; - -reserved_non_modifiers: - T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND - | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE - | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH - | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO - | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT - | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS - | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER | T_FN - | T_MATCH -; - -semi_reserved: - reserved_non_modifiers - | T_STATIC | T_ABSTRACT | T_FINAL | T_PRIVATE | T_PROTECTED | T_PUBLIC -; - -identifier_ex: - T_STRING { $$ = Node\Identifier[$1]; } - | semi_reserved { $$ = Node\Identifier[$1]; } -; - -identifier: - T_STRING { $$ = Node\Identifier[$1]; } -; - -reserved_non_modifiers_identifier: - reserved_non_modifiers { $$ = Node\Identifier[$1]; } -; - -namespace_name: - T_STRING { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } -; - -legacy_namespace_name: - namespace_name { $$ = $1; } - | T_NAME_FULLY_QUALIFIED { $$ = Name[substr($1, 1)]; } -; - -plain_variable: - T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } -; - -top_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { $$ = Stmt\HaltCompiler[$this->lexer->handleHaltCompiler()]; } - | T_NAMESPACE namespace_name ';' - { $$ = Stmt\Namespace_[$2, null]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($$); } - | T_NAMESPACE namespace_name '{' top_statement_list '}' - { $$ = Stmt\Namespace_[$2, $4]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_NAMESPACE '{' top_statement_list '}' - { $$ = Stmt\Namespace_[null, $3]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_USE use_declarations ';' { $$ = Stmt\Use_[$2, Stmt\Use_::TYPE_NORMAL]; } - | T_USE use_type use_declarations ';' { $$ = Stmt\Use_[$3, $2]; } - | group_use_declaration ';' { $$ = $1; } - | T_CONST constant_declaration_list ';' { $$ = Stmt\Const_[$2]; } -; - -use_type: - T_FUNCTION { $$ = Stmt\Use_::TYPE_FUNCTION; } - | T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; } -; - -group_use_declaration: - T_USE use_type legacy_namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations '}' - { $$ = Stmt\GroupUse[$3, $6, $2]; } - | T_USE legacy_namespace_name T_NS_SEPARATOR '{' inline_use_declarations '}' - { $$ = Stmt\GroupUse[$2, $5, Stmt\Use_::TYPE_UNKNOWN]; } -; - -unprefixed_use_declarations: - unprefixed_use_declarations ',' unprefixed_use_declaration - { push($1, $3); } - | unprefixed_use_declaration { init($1); } -; - -use_declarations: - use_declarations ',' use_declaration { push($1, $3); } - | use_declaration { init($1); } -; - -inline_use_declarations: - inline_use_declarations ',' inline_use_declaration { push($1, $3); } - | inline_use_declaration { init($1); } -; - -unprefixed_use_declaration: - namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | namespace_name T_AS identifier - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -use_declaration: - legacy_namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | legacy_namespace_name T_AS identifier - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -inline_use_declaration: - unprefixed_use_declaration { $$ = $1; $$->type = Stmt\Use_::TYPE_NORMAL; } - | use_type unprefixed_use_declaration { $$ = $2; $$->type = $1; } -; - -constant_declaration_list: - constant_declaration_list ',' constant_declaration { push($1, $3); } - | constant_declaration { init($1); } -; - -constant_declaration: - identifier '=' static_scalar { $$ = Node\Const_[$1, $3]; } -; - -class_const_list: - class_const_list ',' class_const { push($1, $3); } - | class_const { init($1); } -; - -class_const: - identifier_ex '=' static_scalar { $$ = Node\Const_[$1, $3]; } -; - -inner_statement_list_ex: - inner_statement_list_ex inner_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -inner_statement_list: - inner_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -inner_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', attributes()); } -; - -non_empty_statement: - '{' inner_statement_list '}' - { - if ($2) { - $$ = $2; prependLeadingComments($$); - } else { - makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); - if (null === $$) { $$ = array(); } - } - } - | T_IF parentheses_expr statement elseif_list else_single - { $$ = Stmt\If_[$2, ['stmts' => toArray($3), 'elseifs' => $4, 'else' => $5]]; } - | T_IF parentheses_expr ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' - { $$ = Stmt\If_[$2, ['stmts' => $4, 'elseifs' => $5, 'else' => $6]]; } - | T_WHILE parentheses_expr while_statement { $$ = Stmt\While_[$2, $3]; } - | T_DO statement T_WHILE parentheses_expr ';' { $$ = Stmt\Do_ [$4, toArray($2)]; } - | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement - { $$ = Stmt\For_[['init' => $3, 'cond' => $5, 'loop' => $7, 'stmts' => $9]]; } - | T_SWITCH parentheses_expr switch_case_list { $$ = Stmt\Switch_[$2, $3]; } - | T_BREAK ';' { $$ = Stmt\Break_[null]; } - | T_BREAK expr ';' { $$ = Stmt\Break_[$2]; } - | T_CONTINUE ';' { $$ = Stmt\Continue_[null]; } - | T_CONTINUE expr ';' { $$ = Stmt\Continue_[$2]; } - | T_RETURN ';' { $$ = Stmt\Return_[null]; } - | T_RETURN expr ';' { $$ = Stmt\Return_[$2]; } - | T_GLOBAL global_var_list ';' { $$ = Stmt\Global_[$2]; } - | T_STATIC static_var_list ';' { $$ = Stmt\Static_[$2]; } - | T_ECHO expr_list ';' { $$ = Stmt\Echo_[$2]; } - | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } - | yield_expr ';' { $$ = Stmt\Expression[$1]; } - | expr ';' { $$ = Stmt\Expression[$1]; } - | T_UNSET '(' variables_list ')' ';' { $$ = Stmt\Unset_[$3]; } - | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $5[0], ['keyVar' => null, 'byRef' => $5[1], 'stmts' => $7]]; } - | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $7[0], ['keyVar' => $5, 'byRef' => $7[1], 'stmts' => $9]]; } - | T_DECLARE '(' declare_list ')' declare_statement { $$ = Stmt\Declare_[$3, $5]; } - | T_TRY '{' inner_statement_list '}' catches optional_finally - { $$ = Stmt\TryCatch[$3, $5, $6]; $this->checkTryCatch($$); } - | T_THROW expr ';' { $$ = Stmt\Throw_[$2]; } - | T_GOTO identifier ';' { $$ = Stmt\Goto_[$2]; } - | identifier ':' { $$ = Stmt\Label[$1]; } - | expr error { $$ = Stmt\Expression[$1]; } - | error { $$ = array(); /* means: no statement */ } -; - -statement: - non_empty_statement { $$ = $1; } - | ';' - { makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); - if ($$ === null) $$ = array(); /* means: no statement */ } -; - -catches: - /* empty */ { init(); } - | catches catch { push($1, $2); } -; - -catch: - T_CATCH '(' name plain_variable ')' '{' inner_statement_list '}' - { $$ = Stmt\Catch_[array($3), $4, $7]; } -; - -optional_finally: - /* empty */ { $$ = null; } - | T_FINALLY '{' inner_statement_list '}' { $$ = Stmt\Finally_[$3]; } -; - -variables_list: - variable { init($1); } - | variables_list ',' variable { push($1, $3); } -; - -optional_ref: - /* empty */ { $$ = false; } - | ampersand { $$ = true; } -; - -optional_arg_ref: - /* empty */ { $$ = false; } - | T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG { $$ = true; } -; - -optional_ellipsis: - /* empty */ { $$ = false; } - | T_ELLIPSIS { $$ = true; } -; - -identifier_maybe_readonly: - identifier { $$ = $1; } - | T_READONLY { $$ = Node\Identifier[$1]; } -; - -function_declaration_statement: - T_FUNCTION optional_ref identifier_maybe_readonly '(' parameter_list ')' optional_return_type '{' inner_statement_list '}' - { $$ = Stmt\Function_[$3, ['byRef' => $2, 'params' => $5, 'returnType' => $7, 'stmts' => $9]]; } -; - -class_declaration_statement: - class_entry_type identifier extends_from implements_list '{' class_statement_list '}' - { $$ = Stmt\Class_[$2, ['type' => $1, 'extends' => $3, 'implements' => $4, 'stmts' => $6]]; - $this->checkClass($$, #2); } - | T_INTERFACE identifier interface_extends_list '{' class_statement_list '}' - { $$ = Stmt\Interface_[$2, ['extends' => $3, 'stmts' => $5]]; - $this->checkInterface($$, #2); } - | T_TRAIT identifier '{' class_statement_list '}' - { $$ = Stmt\Trait_[$2, ['stmts' => $4]]; } -; - -class_entry_type: - T_CLASS { $$ = 0; } - | T_ABSTRACT T_CLASS { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL T_CLASS { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -extends_from: - /* empty */ { $$ = null; } - | T_EXTENDS class_name { $$ = $2; } -; - -interface_extends_list: - /* empty */ { $$ = array(); } - | T_EXTENDS class_name_list { $$ = $2; } -; - -implements_list: - /* empty */ { $$ = array(); } - | T_IMPLEMENTS class_name_list { $$ = $2; } -; - -class_name_list: - class_name { init($1); } - | class_name_list ',' class_name { push($1, $3); } -; - -for_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOR ';' { $$ = $2; } -; - -foreach_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOREACH ';' { $$ = $2; } -; - -declare_statement: - non_empty_statement { $$ = toArray($1); } - | ';' { $$ = null; } - | ':' inner_statement_list T_ENDDECLARE ';' { $$ = $2; } -; - -declare_list: - declare_list_element { init($1); } - | declare_list ',' declare_list_element { push($1, $3); } -; - -declare_list_element: - identifier '=' static_scalar { $$ = Stmt\DeclareDeclare[$1, $3]; } -; - -switch_case_list: - '{' case_list '}' { $$ = $2; } - | '{' ';' case_list '}' { $$ = $3; } - | ':' case_list T_ENDSWITCH ';' { $$ = $2; } - | ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; } -; - -case_list: - /* empty */ { init(); } - | case_list case { push($1, $2); } -; - -case: - T_CASE expr case_separator inner_statement_list_ex { $$ = Stmt\Case_[$2, $4]; } - | T_DEFAULT case_separator inner_statement_list_ex { $$ = Stmt\Case_[null, $3]; } -; - -case_separator: - ':' - | ';' -; - -while_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDWHILE ';' { $$ = $2; } -; - -elseif_list: - /* empty */ { init(); } - | elseif_list elseif { push($1, $2); } -; - -elseif: - T_ELSEIF parentheses_expr statement { $$ = Stmt\ElseIf_[$2, toArray($3)]; } -; - -new_elseif_list: - /* empty */ { init(); } - | new_elseif_list new_elseif { push($1, $2); } -; - -new_elseif: - T_ELSEIF parentheses_expr ':' inner_statement_list { $$ = Stmt\ElseIf_[$2, $4]; } -; - -else_single: - /* empty */ { $$ = null; } - | T_ELSE statement { $$ = Stmt\Else_[toArray($2)]; } -; - -new_else_single: - /* empty */ { $$ = null; } - | T_ELSE ':' inner_statement_list { $$ = Stmt\Else_[$3]; } -; - -foreach_variable: - variable { $$ = array($1, false); } - | ampersand variable { $$ = array($2, true); } - | list_expr { $$ = array($1, false); } -; - -parameter_list: - non_empty_parameter_list { $$ = $1; } - | /* empty */ { $$ = array(); } -; - -non_empty_parameter_list: - parameter { init($1); } - | non_empty_parameter_list ',' parameter { push($1, $3); } -; - -parameter: - optional_param_type optional_arg_ref optional_ellipsis plain_variable - { $$ = Node\Param[$4, null, $1, $2, $3]; $this->checkParam($$); } - | optional_param_type optional_arg_ref optional_ellipsis plain_variable '=' static_scalar - { $$ = Node\Param[$4, $6, $1, $2, $3]; $this->checkParam($$); } -; - -type: - name { $$ = $1; } - | T_ARRAY { $$ = Node\Identifier['array']; } - | T_CALLABLE { $$ = Node\Identifier['callable']; } -; - -optional_param_type: - /* empty */ { $$ = null; } - | type { $$ = $1; } -; - -optional_return_type: - /* empty */ { $$ = null; } - | ':' type { $$ = $2; } -; - -argument_list: - '(' ')' { $$ = array(); } - | '(' non_empty_argument_list ')' { $$ = $2; } - | '(' yield_expr ')' { $$ = array(Node\Arg[$2, false, false]); } -; - -non_empty_argument_list: - argument { init($1); } - | non_empty_argument_list ',' argument { push($1, $3); } -; - -argument: - expr { $$ = Node\Arg[$1, false, false]; } - | ampersand variable { $$ = Node\Arg[$2, true, false]; } - | T_ELLIPSIS expr { $$ = Node\Arg[$2, false, true]; } -; - -global_var_list: - global_var_list ',' global_var { push($1, $3); } - | global_var { init($1); } -; - -global_var: - plain_variable { $$ = $1; } - | '$' variable { $$ = Expr\Variable[$2]; } - | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } -; - -static_var_list: - static_var_list ',' static_var { push($1, $3); } - | static_var { init($1); } -; - -static_var: - plain_variable { $$ = Stmt\StaticVar[$1, null]; } - | plain_variable '=' static_scalar { $$ = Stmt\StaticVar[$1, $3]; } -; - -class_statement_list_ex: - class_statement_list_ex class_statement { if ($2 !== null) { push($1, $2); } } - | /* empty */ { init(); } -; - -class_statement_list: - class_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -class_statement: - variable_modifiers property_declaration_list ';' - { $$ = Stmt\Property[$1, $2]; $this->checkProperty($$, #1); } - | T_CONST class_const_list ';' { $$ = Stmt\ClassConst[$2, 0]; } - | method_modifiers T_FUNCTION optional_ref identifier_ex '(' parameter_list ')' optional_return_type method_body - { $$ = Stmt\ClassMethod[$4, ['type' => $1, 'byRef' => $3, 'params' => $6, 'returnType' => $8, 'stmts' => $9]]; - $this->checkClassMethod($$, #1); } - | T_USE class_name_list trait_adaptations { $$ = Stmt\TraitUse[$2, $3]; } -; - -trait_adaptations: - ';' { $$ = array(); } - | '{' trait_adaptation_list '}' { $$ = $2; } -; - -trait_adaptation_list: - /* empty */ { init(); } - | trait_adaptation_list trait_adaptation { push($1, $2); } -; - -trait_adaptation: - trait_method_reference_fully_qualified T_INSTEADOF class_name_list ';' - { $$ = Stmt\TraitUseAdaptation\Precedence[$1[0], $1[1], $3]; } - | trait_method_reference T_AS member_modifier identifier_ex ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, $4]; } - | trait_method_reference T_AS member_modifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, null]; } - | trait_method_reference T_AS identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } - | trait_method_reference T_AS reserved_non_modifiers_identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } -; - -trait_method_reference_fully_qualified: - name T_PAAMAYIM_NEKUDOTAYIM identifier_ex { $$ = array($1, $3); } -; -trait_method_reference: - trait_method_reference_fully_qualified { $$ = $1; } - | identifier_ex { $$ = array(null, $1); } -; - -method_body: - ';' /* abstract method */ { $$ = null; } - | '{' inner_statement_list '}' { $$ = $2; } -; - -variable_modifiers: - non_empty_member_modifiers { $$ = $1; } - | T_VAR { $$ = 0; } -; - -method_modifiers: - /* empty */ { $$ = 0; } - | non_empty_member_modifiers { $$ = $1; } -; - -non_empty_member_modifiers: - member_modifier { $$ = $1; } - | non_empty_member_modifiers member_modifier { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } -; - -member_modifier: - T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } - | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } - | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } - | T_STATIC { $$ = Stmt\Class_::MODIFIER_STATIC; } - | T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } -; - -property_declaration_list: - property_declaration { init($1); } - | property_declaration_list ',' property_declaration { push($1, $3); } -; - -property_decl_name: - T_VARIABLE { $$ = Node\VarLikeIdentifier[parseVar($1)]; } -; - -property_declaration: - property_decl_name { $$ = Stmt\PropertyProperty[$1, null]; } - | property_decl_name '=' static_scalar { $$ = Stmt\PropertyProperty[$1, $3]; } -; - -expr_list: - expr_list ',' expr { push($1, $3); } - | expr { init($1); } -; - -for_expr: - /* empty */ { $$ = array(); } - | expr_list { $$ = $1; } -; - -expr: - variable { $$ = $1; } - | list_expr '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' ampersand variable { $$ = Expr\AssignRef[$1, $4]; } - | variable '=' ampersand new_expr { $$ = Expr\AssignRef[$1, $4]; } - | new_expr { $$ = $1; } - | T_CLONE expr { $$ = Expr\Clone_[$2]; } - | variable T_PLUS_EQUAL expr { $$ = Expr\AssignOp\Plus [$1, $3]; } - | variable T_MINUS_EQUAL expr { $$ = Expr\AssignOp\Minus [$1, $3]; } - | variable T_MUL_EQUAL expr { $$ = Expr\AssignOp\Mul [$1, $3]; } - | variable T_DIV_EQUAL expr { $$ = Expr\AssignOp\Div [$1, $3]; } - | variable T_CONCAT_EQUAL expr { $$ = Expr\AssignOp\Concat [$1, $3]; } - | variable T_MOD_EQUAL expr { $$ = Expr\AssignOp\Mod [$1, $3]; } - | variable T_AND_EQUAL expr { $$ = Expr\AssignOp\BitwiseAnd[$1, $3]; } - | variable T_OR_EQUAL expr { $$ = Expr\AssignOp\BitwiseOr [$1, $3]; } - | variable T_XOR_EQUAL expr { $$ = Expr\AssignOp\BitwiseXor[$1, $3]; } - | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } - | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } - | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } - | variable T_COALESCE_EQUAL expr { $$ = Expr\AssignOp\Coalesce [$1, $3]; } - | variable T_INC { $$ = Expr\PostInc[$1]; } - | T_INC variable { $$ = Expr\PreInc [$2]; } - | variable T_DEC { $$ = Expr\PostDec[$1]; } - | T_DEC variable { $$ = Expr\PreDec [$2]; } - | expr T_BOOLEAN_OR expr { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | expr T_BOOLEAN_AND expr { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | expr T_LOGICAL_OR expr { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | expr T_LOGICAL_AND expr { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | expr T_LOGICAL_XOR expr { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | expr '|' expr { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | expr T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | expr T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | expr '^' expr { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | expr '.' expr { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | expr '+' expr { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | expr '-' expr { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | expr '*' expr { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | expr '/' expr { $$ = Expr\BinaryOp\Div [$1, $3]; } - | expr '%' expr { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | expr T_SL expr { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | expr T_SR expr { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | expr T_POW expr { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' expr %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' expr %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' expr { $$ = Expr\BooleanNot[$2]; } - | '~' expr { $$ = Expr\BitwiseNot[$2]; } - | expr T_IS_IDENTICAL expr { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | expr T_IS_NOT_IDENTICAL expr { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | expr T_IS_EQUAL expr { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | expr T_IS_NOT_EQUAL expr { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | expr T_SPACESHIP expr { $$ = Expr\BinaryOp\Spaceship [$1, $3]; } - | expr '<' expr { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | expr T_IS_SMALLER_OR_EQUAL expr { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | expr '>' expr { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | expr T_IS_GREATER_OR_EQUAL expr { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | expr T_INSTANCEOF class_name_reference { $$ = Expr\Instanceof_[$1, $3]; } - | parentheses_expr { $$ = $1; } - /* we need a separate '(' new_expr ')' rule to avoid problems caused by a s/r conflict */ - | '(' new_expr ')' { $$ = $2; } - | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } - | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } - | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } - | T_ISSET '(' variables_list ')' { $$ = Expr\Isset_[$3]; } - | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } - | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } - | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } - | T_EVAL parentheses_expr { $$ = Expr\Eval_[$2]; } - | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } - | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } - | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } - | T_DOUBLE_CAST expr - { $attrs = attributes(); - $attrs['kind'] = $this->getFloatCastKind($1); - $$ = new Expr\Cast\Double($2, $attrs); } - | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } - | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } - | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } - | T_BOOL_CAST expr { $$ = Expr\Cast\Bool_ [$2]; } - | T_UNSET_CAST expr { $$ = Expr\Cast\Unset_ [$2]; } - | T_EXIT exit_expr - { $attrs = attributes(); - $attrs['kind'] = strtolower($1) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $$ = new Expr\Exit_($2, $attrs); } - | '@' expr { $$ = Expr\ErrorSuppress[$2]; } - | scalar { $$ = $1; } - | array_expr { $$ = $1; } - | scalar_dereference { $$ = $1; } - | '`' backticks_expr '`' { $$ = Expr\ShellExec[$2]; } - | T_PRINT expr { $$ = Expr\Print_[$2]; } - | T_YIELD { $$ = Expr\Yield_[null, null]; } - | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } - | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type - '{' inner_statement_list '}' - { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $9]]; } - | T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type - '{' inner_statement_list '}' - { $$ = Expr\Closure[['static' => true, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $10]]; } -; - -parentheses_expr: - '(' expr ')' { $$ = $2; } - | '(' yield_expr ')' { $$ = $2; } -; - -yield_expr: - T_YIELD expr { $$ = Expr\Yield_[$2, null]; } - | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } -; - -array_expr: - T_ARRAY '(' array_pair_list ')' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_LONG; - $$ = new Expr\Array_($3, $attrs); } - | '[' array_pair_list ']' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_SHORT; - $$ = new Expr\Array_($2, $attrs); } -; - -scalar_dereference: - array_expr '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | T_CONSTANT_ENCAPSED_STRING '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[Scalar\String_::fromString($1, attributes()), $3]; } - | constant '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | scalar_dereference '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -anonymous_class: - T_CLASS ctor_arguments extends_from implements_list '{' class_statement_list '}' - { $$ = array(Stmt\Class_[null, ['type' => 0, 'extends' => $3, 'implements' => $4, 'stmts' => $6]], $2); - $this->checkClass($$[0], -1); } -; - -new_expr: - T_NEW class_name_reference ctor_arguments { $$ = Expr\New_[$2, $3]; } - | T_NEW anonymous_class - { list($class, $ctorArgs) = $2; $$ = Expr\New_[$class, $ctorArgs]; } -; - -lexical_vars: - /* empty */ { $$ = array(); } - | T_USE '(' lexical_var_list ')' { $$ = $3; } -; - -lexical_var_list: - lexical_var { init($1); } - | lexical_var_list ',' lexical_var { push($1, $3); } -; - -lexical_var: - optional_ref plain_variable { $$ = Expr\ClosureUse[$2, $1]; } -; - -name_readonly: - T_READONLY { $$ = Name[$1]; } -; - -function_call: - name argument_list { $$ = Expr\FuncCall[$1, $2]; } - | name_readonly argument_list { $$ = Expr\FuncCall[$1, $2]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex argument_list - { $$ = Expr\StaticCall[$1, $3, $4]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '{' expr '}' argument_list - { $$ = Expr\StaticCall[$1, $4, $6]; } - | static_property argument_list - { $$ = $this->fixupPhp5StaticPropCall($1, $2, attributes()); } - | variable_without_objects argument_list - { $$ = Expr\FuncCall[$1, $2]; } - | function_call '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -class_name: - T_STATIC { $$ = Name[$1]; } - | name { $$ = $1; } -; - -name: - T_STRING { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } - | T_NAME_FULLY_QUALIFIED { $$ = Name\FullyQualified[substr($1, 1)]; } - | T_NAME_RELATIVE { $$ = Name\Relative[substr($1, 10)]; } -; - -class_name_reference: - class_name { $$ = $1; } - | dynamic_class_name_reference { $$ = $1; } -; - -dynamic_class_name_reference: - object_access_for_dcnr { $$ = $1; } - | base_variable { $$ = $1; } -; - -class_name_or_var: - class_name { $$ = $1; } - | reference_variable { $$ = $1; } -; - -object_access_for_dcnr: - base_variable T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | object_access_for_dcnr T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | object_access_for_dcnr '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | object_access_for_dcnr '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -exit_expr: - /* empty */ { $$ = null; } - | '(' ')' { $$ = null; } - | parentheses_expr { $$ = $1; } -; - -backticks_expr: - /* empty */ { $$ = array(); } - | T_ENCAPSED_AND_WHITESPACE - { $$ = array(Scalar\EncapsedStringPart[Scalar\String_::parseEscapeSequences($1, '`', false)]); } - | encaps_list { parseEncapsed($1, '`', false); $$ = $1; } -; - -ctor_arguments: - /* empty */ { $$ = array(); } - | argument_list { $$ = $1; } -; - -common_scalar: - T_LNUMBER { $$ = $this->parseLNumber($1, attributes(), true); } - | T_DNUMBER { $$ = Scalar\DNumber::fromString($1, attributes()); } - | T_CONSTANT_ENCAPSED_STRING { $$ = Scalar\String_::fromString($1, attributes(), false); } - | T_LINE { $$ = Scalar\MagicConst\Line[]; } - | T_FILE { $$ = Scalar\MagicConst\File[]; } - | T_DIR { $$ = Scalar\MagicConst\Dir[]; } - | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } - | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } - | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } - | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } - | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } - | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), false); } - | T_START_HEREDOC T_END_HEREDOC - { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), false); } -; - -static_scalar: - common_scalar { $$ = $1; } - | class_name T_PAAMAYIM_NEKUDOTAYIM identifier_ex { $$ = Expr\ClassConstFetch[$1, $3]; } - | name { $$ = Expr\ConstFetch[$1]; } - | T_ARRAY '(' static_array_pair_list ')' { $$ = Expr\Array_[$3]; } - | '[' static_array_pair_list ']' { $$ = Expr\Array_[$2]; } - | static_operation { $$ = $1; } -; - -static_operation: - static_scalar T_BOOLEAN_OR static_scalar { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | static_scalar T_BOOLEAN_AND static_scalar { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | static_scalar T_LOGICAL_OR static_scalar { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | static_scalar T_LOGICAL_AND static_scalar { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | static_scalar T_LOGICAL_XOR static_scalar { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | static_scalar '|' static_scalar { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | static_scalar T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG static_scalar - { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | static_scalar T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG static_scalar - { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | static_scalar '^' static_scalar { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | static_scalar '.' static_scalar { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | static_scalar '+' static_scalar { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | static_scalar '-' static_scalar { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | static_scalar '*' static_scalar { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | static_scalar '/' static_scalar { $$ = Expr\BinaryOp\Div [$1, $3]; } - | static_scalar '%' static_scalar { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | static_scalar T_SL static_scalar { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | static_scalar T_SR static_scalar { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | static_scalar T_POW static_scalar { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' static_scalar %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' static_scalar %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' static_scalar { $$ = Expr\BooleanNot[$2]; } - | '~' static_scalar { $$ = Expr\BitwiseNot[$2]; } - | static_scalar T_IS_IDENTICAL static_scalar { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | static_scalar T_IS_NOT_IDENTICAL static_scalar { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | static_scalar T_IS_EQUAL static_scalar { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | static_scalar T_IS_NOT_EQUAL static_scalar { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | static_scalar '<' static_scalar { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | static_scalar T_IS_SMALLER_OR_EQUAL static_scalar { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | static_scalar '>' static_scalar { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | static_scalar T_IS_GREATER_OR_EQUAL static_scalar { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | static_scalar '?' static_scalar ':' static_scalar { $$ = Expr\Ternary[$1, $3, $5]; } - | static_scalar '?' ':' static_scalar { $$ = Expr\Ternary[$1, null, $4]; } - | static_scalar '[' static_scalar ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | '(' static_scalar ')' { $$ = $2; } -; - -constant: - name { $$ = Expr\ConstFetch[$1]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_ex - { $$ = Expr\ClassConstFetch[$1, $3]; } -; - -scalar: - common_scalar { $$ = $1; } - | constant { $$ = $1; } - | '"' encaps_list '"' - { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } - | T_START_HEREDOC encaps_list T_END_HEREDOC - { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } -; - -static_array_pair_list: - /* empty */ { $$ = array(); } - | non_empty_static_array_pair_list optional_comma { $$ = $1; } -; - -optional_comma: - /* empty */ - | ',' -; - -non_empty_static_array_pair_list: - non_empty_static_array_pair_list ',' static_array_pair { push($1, $3); } - | static_array_pair { init($1); } -; - -static_array_pair: - static_scalar T_DOUBLE_ARROW static_scalar { $$ = Expr\ArrayItem[$3, $1, false]; } - | static_scalar { $$ = Expr\ArrayItem[$1, null, false]; } -; - -variable: - object_access { $$ = $1; } - | base_variable { $$ = $1; } - | function_call { $$ = $1; } - | new_expr_array_deref { $$ = $1; } -; - -new_expr_array_deref: - '(' new_expr ')' '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$2, $5]; } - | new_expr_array_deref '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - /* alternative array syntax missing intentionally */ -; - -object_access: - variable_or_new_expr T_OBJECT_OPERATOR object_property - { $$ = Expr\PropertyFetch[$1, $3]; } - | variable_or_new_expr T_OBJECT_OPERATOR object_property argument_list - { $$ = Expr\MethodCall[$1, $3, $4]; } - | object_access argument_list { $$ = Expr\FuncCall[$1, $2]; } - | object_access '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | object_access '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -variable_or_new_expr: - variable { $$ = $1; } - | '(' new_expr ')' { $$ = $2; } -; - -variable_without_objects: - reference_variable { $$ = $1; } - | '$' variable_without_objects { $$ = Expr\Variable[$2]; } -; - -base_variable: - variable_without_objects { $$ = $1; } - | static_property { $$ = $1; } -; - -static_property: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '$' reference_variable - { $$ = Expr\StaticPropertyFetch[$1, $4]; } - | static_property_with_arrays { $$ = $1; } -; - -static_property_simple_name: - T_VARIABLE - { $var = parseVar($1); $$ = \is_string($var) ? Node\VarLikeIdentifier[$var] : $var; } -; - -static_property_with_arrays: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM static_property_simple_name - { $$ = Expr\StaticPropertyFetch[$1, $3]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '$' '{' expr '}' - { $$ = Expr\StaticPropertyFetch[$1, $5]; } - | static_property_with_arrays '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | static_property_with_arrays '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } -; - -reference_variable: - reference_variable '[' dim_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | reference_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | plain_variable { $$ = $1; } - | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } -; - -dim_offset: - /* empty */ { $$ = null; } - | expr { $$ = $1; } -; - -object_property: - identifier { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | variable_without_objects { $$ = $1; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -list_expr: - T_LIST '(' list_expr_elements ')' { $$ = Expr\List_[$3]; } -; - -list_expr_elements: - list_expr_elements ',' list_expr_element { push($1, $3); } - | list_expr_element { init($1); } -; - -list_expr_element: - variable { $$ = Expr\ArrayItem[$1, null, false]; } - | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } - | /* empty */ { $$ = null; } -; - -array_pair_list: - /* empty */ { $$ = array(); } - | non_empty_array_pair_list optional_comma { $$ = $1; } -; - -non_empty_array_pair_list: - non_empty_array_pair_list ',' array_pair { push($1, $3); } - | array_pair { init($1); } -; - -array_pair: - expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW ampersand variable { $$ = Expr\ArrayItem[$4, $1, true]; } - | ampersand variable { $$ = Expr\ArrayItem[$2, null, true]; } - | T_ELLIPSIS expr { $$ = new Expr\ArrayItem($2, null, false, attributes(), true); } -; - -encaps_list: - encaps_list encaps_var { push($1, $2); } - | encaps_list encaps_string_part { push($1, $2); } - | encaps_var { init($1); } - | encaps_string_part encaps_var { init($1, $2); } -; - -encaps_string_part: - T_ENCAPSED_AND_WHITESPACE { $$ = Scalar\EncapsedStringPart[$1]; } -; - -encaps_str_varname: - T_STRING_VARNAME { $$ = Expr\Variable[$1]; } -; - -encaps_var: - plain_variable { $$ = $1; } - | plain_variable '[' encaps_var_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | plain_variable T_OBJECT_OPERATOR identifier { $$ = Expr\PropertyFetch[$1, $3]; } - | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES encaps_str_varname '[' expr ']' '}' - { $$ = Expr\ArrayDimFetch[$2, $4]; } - | T_CURLY_OPEN variable '}' { $$ = $2; } -; - -encaps_var_offset: - T_STRING { $$ = Scalar\String_[$1]; } - | T_NUM_STRING { $$ = $this->parseNumString($1, attributes()); } - | plain_variable { $$ = $1; } -; - -%% diff --git a/vendor/rector/rector/vendor/nikic/php-parser/grammar/php7.y b/vendor/rector/rector/vendor/nikic/php-parser/grammar/php7.y deleted file mode 100644 index 1ef60bfe0..000000000 --- a/vendor/rector/rector/vendor/nikic/php-parser/grammar/php7.y +++ /dev/null @@ -1,1245 +0,0 @@ -%pure_parser -%expect 2 - -%tokens - -%% - -start: - top_statement_list { $$ = $this->handleNamespaces($1); } -; - -top_statement_list_ex: - top_statement_list_ex top_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -top_statement_list: - top_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -ampersand: - T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG - | T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG -; - -reserved_non_modifiers: - T_INCLUDE | T_INCLUDE_ONCE | T_EVAL | T_REQUIRE | T_REQUIRE_ONCE | T_LOGICAL_OR | T_LOGICAL_XOR | T_LOGICAL_AND - | T_INSTANCEOF | T_NEW | T_CLONE | T_EXIT | T_IF | T_ELSEIF | T_ELSE | T_ENDIF | T_ECHO | T_DO | T_WHILE - | T_ENDWHILE | T_FOR | T_ENDFOR | T_FOREACH | T_ENDFOREACH | T_DECLARE | T_ENDDECLARE | T_AS | T_TRY | T_CATCH - | T_FINALLY | T_THROW | T_USE | T_INSTEADOF | T_GLOBAL | T_VAR | T_UNSET | T_ISSET | T_EMPTY | T_CONTINUE | T_GOTO - | T_FUNCTION | T_CONST | T_RETURN | T_PRINT | T_YIELD | T_LIST | T_SWITCH | T_ENDSWITCH | T_CASE | T_DEFAULT - | T_BREAK | T_ARRAY | T_CALLABLE | T_EXTENDS | T_IMPLEMENTS | T_NAMESPACE | T_TRAIT | T_INTERFACE | T_CLASS - | T_CLASS_C | T_TRAIT_C | T_FUNC_C | T_METHOD_C | T_LINE | T_FILE | T_DIR | T_NS_C | T_HALT_COMPILER | T_FN - | T_MATCH | T_ENUM -; - -semi_reserved: - reserved_non_modifiers - | T_STATIC | T_ABSTRACT | T_FINAL | T_PRIVATE | T_PROTECTED | T_PUBLIC | T_READONLY -; - -identifier_maybe_reserved: - T_STRING { $$ = Node\Identifier[$1]; } - | semi_reserved { $$ = Node\Identifier[$1]; } -; - -identifier_not_reserved: - T_STRING { $$ = Node\Identifier[$1]; } -; - -reserved_non_modifiers_identifier: - reserved_non_modifiers { $$ = Node\Identifier[$1]; } -; - -namespace_declaration_name: - T_STRING { $$ = Name[$1]; } - | semi_reserved { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } -; - -namespace_name: - T_STRING { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } -; - -legacy_namespace_name: - namespace_name { $$ = $1; } - | T_NAME_FULLY_QUALIFIED { $$ = Name[substr($1, 1)]; } -; - -plain_variable: - T_VARIABLE { $$ = Expr\Variable[parseVar($1)]; } -; - -semi: - ';' { /* nothing */ } - | error { /* nothing */ } -; - -no_comma: - /* empty */ { /* nothing */ } - | ',' { $this->emitError(new Error('A trailing comma is not allowed here', attributes())); } -; - -optional_comma: - /* empty */ - | ',' -; - -attribute_decl: - class_name { $$ = Node\Attribute[$1, []]; } - | class_name argument_list { $$ = Node\Attribute[$1, $2]; } -; - -attribute_group: - attribute_decl { init($1); } - | attribute_group ',' attribute_decl { push($1, $3); } -; - -attribute: - T_ATTRIBUTE attribute_group optional_comma ']' { $$ = Node\AttributeGroup[$2]; } -; - -attributes: - attribute { init($1); } - | attributes attribute { push($1, $2); } -; - -optional_attributes: - /* empty */ { $$ = []; } - | attributes { $$ = $1; } -; - -top_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { $$ = Stmt\HaltCompiler[$this->lexer->handleHaltCompiler()]; } - | T_NAMESPACE namespace_declaration_name semi - { $$ = Stmt\Namespace_[$2, null]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_SEMICOLON); - $this->checkNamespace($$); } - | T_NAMESPACE namespace_declaration_name '{' top_statement_list '}' - { $$ = Stmt\Namespace_[$2, $4]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_NAMESPACE '{' top_statement_list '}' - { $$ = Stmt\Namespace_[null, $3]; - $$->setAttribute('kind', Stmt\Namespace_::KIND_BRACED); - $this->checkNamespace($$); } - | T_USE use_declarations semi { $$ = Stmt\Use_[$2, Stmt\Use_::TYPE_NORMAL]; } - | T_USE use_type use_declarations semi { $$ = Stmt\Use_[$3, $2]; } - | group_use_declaration semi { $$ = $1; } - | T_CONST constant_declaration_list semi { $$ = Stmt\Const_[$2]; } -; - -use_type: - T_FUNCTION { $$ = Stmt\Use_::TYPE_FUNCTION; } - | T_CONST { $$ = Stmt\Use_::TYPE_CONSTANT; } -; - -group_use_declaration: - T_USE use_type legacy_namespace_name T_NS_SEPARATOR '{' unprefixed_use_declarations '}' - { $$ = Stmt\GroupUse[$3, $6, $2]; } - | T_USE legacy_namespace_name T_NS_SEPARATOR '{' inline_use_declarations '}' - { $$ = Stmt\GroupUse[$2, $5, Stmt\Use_::TYPE_UNKNOWN]; } -; - -unprefixed_use_declarations: - non_empty_unprefixed_use_declarations optional_comma { $$ = $1; } -; - -non_empty_unprefixed_use_declarations: - non_empty_unprefixed_use_declarations ',' unprefixed_use_declaration - { push($1, $3); } - | unprefixed_use_declaration { init($1); } -; - -use_declarations: - non_empty_use_declarations no_comma { $$ = $1; } -; - -non_empty_use_declarations: - non_empty_use_declarations ',' use_declaration { push($1, $3); } - | use_declaration { init($1); } -; - -inline_use_declarations: - non_empty_inline_use_declarations optional_comma { $$ = $1; } -; - -non_empty_inline_use_declarations: - non_empty_inline_use_declarations ',' inline_use_declaration - { push($1, $3); } - | inline_use_declaration { init($1); } -; - -unprefixed_use_declaration: - namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | namespace_name T_AS identifier_not_reserved - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -use_declaration: - legacy_namespace_name - { $$ = Stmt\UseUse[$1, null, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #1); } - | legacy_namespace_name T_AS identifier_not_reserved - { $$ = Stmt\UseUse[$1, $3, Stmt\Use_::TYPE_UNKNOWN]; $this->checkUseUse($$, #3); } -; - -inline_use_declaration: - unprefixed_use_declaration { $$ = $1; $$->type = Stmt\Use_::TYPE_NORMAL; } - | use_type unprefixed_use_declaration { $$ = $2; $$->type = $1; } -; - -constant_declaration_list: - non_empty_constant_declaration_list no_comma { $$ = $1; } -; - -non_empty_constant_declaration_list: - non_empty_constant_declaration_list ',' constant_declaration - { push($1, $3); } - | constant_declaration { init($1); } -; - -constant_declaration: - identifier_not_reserved '=' expr { $$ = Node\Const_[$1, $3]; } -; - -class_const_list: - non_empty_class_const_list no_comma { $$ = $1; } -; - -non_empty_class_const_list: - non_empty_class_const_list ',' class_const { push($1, $3); } - | class_const { init($1); } -; - -class_const: - T_STRING '=' expr - { $$ = Node\Const_[new Node\Identifier($1, stackAttributes(#1)), $3]; } - | semi_reserved '=' expr - { $$ = Node\Const_[new Node\Identifier($1, stackAttributes(#1)), $3]; } -; - -inner_statement_list_ex: - inner_statement_list_ex inner_statement { pushNormalizing($1, $2); } - | /* empty */ { init(); } -; - -inner_statement_list: - inner_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -inner_statement: - statement { $$ = $1; } - | function_declaration_statement { $$ = $1; } - | class_declaration_statement { $$ = $1; } - | T_HALT_COMPILER - { throw new Error('__HALT_COMPILER() can only be used from the outermost scope', attributes()); } -; - -non_empty_statement: - '{' inner_statement_list '}' - { - if ($2) { - $$ = $2; prependLeadingComments($$); - } else { - makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); - if (null === $$) { $$ = array(); } - } - } - | T_IF '(' expr ')' statement elseif_list else_single - { $$ = Stmt\If_[$3, ['stmts' => toArray($5), 'elseifs' => $6, 'else' => $7]]; } - | T_IF '(' expr ')' ':' inner_statement_list new_elseif_list new_else_single T_ENDIF ';' - { $$ = Stmt\If_[$3, ['stmts' => $6, 'elseifs' => $7, 'else' => $8]]; } - | T_WHILE '(' expr ')' while_statement { $$ = Stmt\While_[$3, $5]; } - | T_DO statement T_WHILE '(' expr ')' ';' { $$ = Stmt\Do_ [$5, toArray($2)]; } - | T_FOR '(' for_expr ';' for_expr ';' for_expr ')' for_statement - { $$ = Stmt\For_[['init' => $3, 'cond' => $5, 'loop' => $7, 'stmts' => $9]]; } - | T_SWITCH '(' expr ')' switch_case_list { $$ = Stmt\Switch_[$3, $5]; } - | T_BREAK optional_expr semi { $$ = Stmt\Break_[$2]; } - | T_CONTINUE optional_expr semi { $$ = Stmt\Continue_[$2]; } - | T_RETURN optional_expr semi { $$ = Stmt\Return_[$2]; } - | T_GLOBAL global_var_list semi { $$ = Stmt\Global_[$2]; } - | T_STATIC static_var_list semi { $$ = Stmt\Static_[$2]; } - | T_ECHO expr_list_forbid_comma semi { $$ = Stmt\Echo_[$2]; } - | T_INLINE_HTML { $$ = Stmt\InlineHTML[$1]; } - | expr semi { - $e = $1; - if ($e instanceof Expr\Throw_) { - // For backwards-compatibility reasons, convert throw in statement position into - // Stmt\Throw_ rather than Stmt\Expression(Expr\Throw_). - $$ = Stmt\Throw_[$e->expr]; - } else { - $$ = Stmt\Expression[$e]; - } - } - | T_UNSET '(' variables_list ')' semi { $$ = Stmt\Unset_[$3]; } - | T_FOREACH '(' expr T_AS foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $5[0], ['keyVar' => null, 'byRef' => $5[1], 'stmts' => $7]]; } - | T_FOREACH '(' expr T_AS variable T_DOUBLE_ARROW foreach_variable ')' foreach_statement - { $$ = Stmt\Foreach_[$3, $7[0], ['keyVar' => $5, 'byRef' => $7[1], 'stmts' => $9]]; } - | T_FOREACH '(' expr error ')' foreach_statement - { $$ = Stmt\Foreach_[$3, new Expr\Error(stackAttributes(#4)), ['stmts' => $6]]; } - | T_DECLARE '(' declare_list ')' declare_statement { $$ = Stmt\Declare_[$3, $5]; } - | T_TRY '{' inner_statement_list '}' catches optional_finally - { $$ = Stmt\TryCatch[$3, $5, $6]; $this->checkTryCatch($$); } - | T_GOTO identifier_not_reserved semi { $$ = Stmt\Goto_[$2]; } - | identifier_not_reserved ':' { $$ = Stmt\Label[$1]; } - | error { $$ = array(); /* means: no statement */ } -; - -statement: - non_empty_statement { $$ = $1; } - | ';' - { makeNop($$, $this->startAttributeStack[#1], $this->endAttributes); - if ($$ === null) $$ = array(); /* means: no statement */ } -; - -catches: - /* empty */ { init(); } - | catches catch { push($1, $2); } -; - -name_union: - name { init($1); } - | name_union '|' name { push($1, $3); } -; - -catch: - T_CATCH '(' name_union optional_plain_variable ')' '{' inner_statement_list '}' - { $$ = Stmt\Catch_[$3, $4, $7]; } -; - -optional_finally: - /* empty */ { $$ = null; } - | T_FINALLY '{' inner_statement_list '}' { $$ = Stmt\Finally_[$3]; } -; - -variables_list: - non_empty_variables_list optional_comma { $$ = $1; } -; - -non_empty_variables_list: - variable { init($1); } - | non_empty_variables_list ',' variable { push($1, $3); } -; - -optional_ref: - /* empty */ { $$ = false; } - | ampersand { $$ = true; } -; - -optional_arg_ref: - /* empty */ { $$ = false; } - | T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG { $$ = true; } -; - -optional_ellipsis: - /* empty */ { $$ = false; } - | T_ELLIPSIS { $$ = true; } -; - -block_or_error: - '{' inner_statement_list '}' { $$ = $2; } - | error { $$ = []; } -; - -identifier_maybe_readonly: - identifier_not_reserved { $$ = $1; } - | T_READONLY { $$ = Node\Identifier[$1]; } -; - -function_declaration_statement: - T_FUNCTION optional_ref identifier_maybe_readonly '(' parameter_list ')' optional_return_type block_or_error - { $$ = Stmt\Function_[$3, ['byRef' => $2, 'params' => $5, 'returnType' => $7, 'stmts' => $8, 'attrGroups' => []]]; } - | attributes T_FUNCTION optional_ref identifier_maybe_readonly '(' parameter_list ')' optional_return_type block_or_error - { $$ = Stmt\Function_[$4, ['byRef' => $3, 'params' => $6, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => $1]]; } -; - -class_declaration_statement: - class_entry_type identifier_not_reserved extends_from implements_list '{' class_statement_list '}' - { $$ = Stmt\Class_[$2, ['type' => $1, 'extends' => $3, 'implements' => $4, 'stmts' => $6, 'attrGroups' => []]]; - $this->checkClass($$, #2); } - | attributes class_entry_type identifier_not_reserved extends_from implements_list '{' class_statement_list '}' - { $$ = Stmt\Class_[$3, ['type' => $2, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]]; - $this->checkClass($$, #3); } - | optional_attributes T_INTERFACE identifier_not_reserved interface_extends_list '{' class_statement_list '}' - { $$ = Stmt\Interface_[$3, ['extends' => $4, 'stmts' => $6, 'attrGroups' => $1]]; - $this->checkInterface($$, #3); } - | optional_attributes T_TRAIT identifier_not_reserved '{' class_statement_list '}' - { $$ = Stmt\Trait_[$3, ['stmts' => $5, 'attrGroups' => $1]]; } - | optional_attributes T_ENUM identifier_not_reserved enum_scalar_type implements_list '{' class_statement_list '}' - { $$ = Stmt\Enum_[$3, ['scalarType' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]]; - $this->checkEnum($$, #3); } -; - -enum_scalar_type: - /* empty */ { $$ = null; } - | ':' type { $$ = $2; } - -enum_case_expr: - /* empty */ { $$ = null; } - | '=' expr { $$ = $2; } -; - -class_entry_type: - T_CLASS { $$ = 0; } - | class_modifiers T_CLASS { $$ = $1; } -; - -class_modifiers: - class_modifier { $$ = $1; } - | class_modifiers class_modifier { $this->checkClassModifier($1, $2, #2); $$ = $1 | $2; } -; - -class_modifier: - T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } - | T_READONLY { $$ = Stmt\Class_::MODIFIER_READONLY; } -; - -extends_from: - /* empty */ { $$ = null; } - | T_EXTENDS class_name { $$ = $2; } -; - -interface_extends_list: - /* empty */ { $$ = array(); } - | T_EXTENDS class_name_list { $$ = $2; } -; - -implements_list: - /* empty */ { $$ = array(); } - | T_IMPLEMENTS class_name_list { $$ = $2; } -; - -class_name_list: - non_empty_class_name_list no_comma { $$ = $1; } -; - -non_empty_class_name_list: - class_name { init($1); } - | non_empty_class_name_list ',' class_name { push($1, $3); } -; - -for_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOR ';' { $$ = $2; } -; - -foreach_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDFOREACH ';' { $$ = $2; } -; - -declare_statement: - non_empty_statement { $$ = toArray($1); } - | ';' { $$ = null; } - | ':' inner_statement_list T_ENDDECLARE ';' { $$ = $2; } -; - -declare_list: - non_empty_declare_list no_comma { $$ = $1; } -; - -non_empty_declare_list: - declare_list_element { init($1); } - | non_empty_declare_list ',' declare_list_element { push($1, $3); } -; - -declare_list_element: - identifier_not_reserved '=' expr { $$ = Stmt\DeclareDeclare[$1, $3]; } -; - -switch_case_list: - '{' case_list '}' { $$ = $2; } - | '{' ';' case_list '}' { $$ = $3; } - | ':' case_list T_ENDSWITCH ';' { $$ = $2; } - | ':' ';' case_list T_ENDSWITCH ';' { $$ = $3; } -; - -case_list: - /* empty */ { init(); } - | case_list case { push($1, $2); } -; - -case: - T_CASE expr case_separator inner_statement_list_ex { $$ = Stmt\Case_[$2, $4]; } - | T_DEFAULT case_separator inner_statement_list_ex { $$ = Stmt\Case_[null, $3]; } -; - -case_separator: - ':' - | ';' -; - -match: - T_MATCH '(' expr ')' '{' match_arm_list '}' { $$ = Expr\Match_[$3, $6]; } -; - -match_arm_list: - /* empty */ { $$ = []; } - | non_empty_match_arm_list optional_comma { $$ = $1; } -; - -non_empty_match_arm_list: - match_arm { init($1); } - | non_empty_match_arm_list ',' match_arm { push($1, $3); } -; - -match_arm: - expr_list_allow_comma T_DOUBLE_ARROW expr { $$ = Node\MatchArm[$1, $3]; } - | T_DEFAULT optional_comma T_DOUBLE_ARROW expr { $$ = Node\MatchArm[null, $4]; } -; - -while_statement: - statement { $$ = toArray($1); } - | ':' inner_statement_list T_ENDWHILE ';' { $$ = $2; } -; - -elseif_list: - /* empty */ { init(); } - | elseif_list elseif { push($1, $2); } -; - -elseif: - T_ELSEIF '(' expr ')' statement { $$ = Stmt\ElseIf_[$3, toArray($5)]; } -; - -new_elseif_list: - /* empty */ { init(); } - | new_elseif_list new_elseif { push($1, $2); } -; - -new_elseif: - T_ELSEIF '(' expr ')' ':' inner_statement_list - { $$ = Stmt\ElseIf_[$3, $6]; $this->fixupAlternativeElse($$); } -; - -else_single: - /* empty */ { $$ = null; } - | T_ELSE statement { $$ = Stmt\Else_[toArray($2)]; } -; - -new_else_single: - /* empty */ { $$ = null; } - | T_ELSE ':' inner_statement_list - { $$ = Stmt\Else_[$3]; $this->fixupAlternativeElse($$); } -; - -foreach_variable: - variable { $$ = array($1, false); } - | ampersand variable { $$ = array($2, true); } - | list_expr { $$ = array($1, false); } - | array_short_syntax { $$ = array($1, false); } -; - -parameter_list: - non_empty_parameter_list optional_comma { $$ = $1; } - | /* empty */ { $$ = array(); } -; - -non_empty_parameter_list: - parameter { init($1); } - | non_empty_parameter_list ',' parameter { push($1, $3); } -; - -optional_property_modifiers: - /* empty */ { $$ = 0; } - | optional_property_modifiers property_modifier - { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } -; - -property_modifier: - T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } - | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } - | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } - | T_READONLY { $$ = Stmt\Class_::MODIFIER_READONLY; } -; - -parameter: - optional_attributes optional_property_modifiers optional_type_without_static - optional_arg_ref optional_ellipsis plain_variable - { $$ = new Node\Param($6, null, $3, $4, $5, attributes(), $2, $1); - $this->checkParam($$); } - | optional_attributes optional_property_modifiers optional_type_without_static - optional_arg_ref optional_ellipsis plain_variable '=' expr - { $$ = new Node\Param($6, $8, $3, $4, $5, attributes(), $2, $1); - $this->checkParam($$); } - | optional_attributes optional_property_modifiers optional_type_without_static - optional_arg_ref optional_ellipsis error - { $$ = new Node\Param(Expr\Error[], null, $3, $4, $5, attributes(), $2, $1); } -; - -type_expr: - type { $$ = $1; } - | '?' type { $$ = Node\NullableType[$2]; } - | union_type { $$ = Node\UnionType[$1]; } - | intersection_type { $$ = $1; } -; - -type: - type_without_static { $$ = $1; } - | T_STATIC { $$ = Node\Name['static']; } -; - -type_without_static: - name { $$ = $this->handleBuiltinTypes($1); } - | T_ARRAY { $$ = Node\Identifier['array']; } - | T_CALLABLE { $$ = Node\Identifier['callable']; } -; - -union_type_element: - type { $$ = $1; } - | '(' intersection_type ')' { $$ = $2; } -; - -union_type: - union_type_element '|' union_type_element { init($1, $3); } - | union_type '|' union_type_element { push($1, $3); } -; - -union_type_without_static_element: - type_without_static { $$ = $1; } - | '(' intersection_type_without_static ')' { $$ = $2; } -; - -union_type_without_static: - union_type_without_static_element '|' union_type_without_static_element { init($1, $3); } - | union_type_without_static '|' union_type_without_static_element { push($1, $3); } -; - -intersection_type_list: - type T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type { init($1, $3); } - | intersection_type_list T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type - { push($1, $3); } -; - -intersection_type: - intersection_type_list { $$ = Node\IntersectionType[$1]; } -; - -intersection_type_without_static_list: - type_without_static T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type_without_static - { init($1, $3); } - | intersection_type_without_static_list T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG type_without_static - { push($1, $3); } -; - -intersection_type_without_static: - intersection_type_without_static_list { $$ = Node\IntersectionType[$1]; } -; - -type_expr_without_static: - type_without_static { $$ = $1; } - | '?' type_without_static { $$ = Node\NullableType[$2]; } - | union_type_without_static { $$ = Node\UnionType[$1]; } - | intersection_type_without_static { $$ = $1; } -; - -optional_type_without_static: - /* empty */ { $$ = null; } - | type_expr_without_static { $$ = $1; } -; - -optional_return_type: - /* empty */ { $$ = null; } - | ':' type_expr { $$ = $2; } - | ':' error { $$ = null; } -; - -argument_list: - '(' ')' { $$ = array(); } - | '(' non_empty_argument_list optional_comma ')' { $$ = $2; } - | '(' variadic_placeholder ')' { init($2); } -; - -variadic_placeholder: - T_ELLIPSIS { $$ = Node\VariadicPlaceholder[]; } -; - -non_empty_argument_list: - argument { init($1); } - | non_empty_argument_list ',' argument { push($1, $3); } -; - -argument: - expr { $$ = Node\Arg[$1, false, false]; } - | ampersand variable { $$ = Node\Arg[$2, true, false]; } - | T_ELLIPSIS expr { $$ = Node\Arg[$2, false, true]; } - | identifier_maybe_reserved ':' expr - { $$ = new Node\Arg($3, false, false, attributes(), $1); } -; - -global_var_list: - non_empty_global_var_list no_comma { $$ = $1; } -; - -non_empty_global_var_list: - non_empty_global_var_list ',' global_var { push($1, $3); } - | global_var { init($1); } -; - -global_var: - simple_variable { $$ = $1; } -; - -static_var_list: - non_empty_static_var_list no_comma { $$ = $1; } -; - -non_empty_static_var_list: - non_empty_static_var_list ',' static_var { push($1, $3); } - | static_var { init($1); } -; - -static_var: - plain_variable { $$ = Stmt\StaticVar[$1, null]; } - | plain_variable '=' expr { $$ = Stmt\StaticVar[$1, $3]; } -; - -class_statement_list_ex: - class_statement_list_ex class_statement { if ($2 !== null) { push($1, $2); } } - | /* empty */ { init(); } -; - -class_statement_list: - class_statement_list_ex - { makeZeroLengthNop($nop, $this->lookaheadStartAttributes); - if ($nop !== null) { $1[] = $nop; } $$ = $1; } -; - -class_statement: - optional_attributes variable_modifiers optional_type_without_static property_declaration_list semi - { $$ = new Stmt\Property($2, $4, attributes(), $3, $1); - $this->checkProperty($$, #2); } - | optional_attributes method_modifiers T_CONST class_const_list semi - { $$ = new Stmt\ClassConst($4, $2, attributes(), $1); - $this->checkClassConst($$, #2); } - | optional_attributes method_modifiers T_CONST type_expr class_const_list semi - { $$ = new Stmt\ClassConst($5, $2, attributes(), $1, $4); - $this->checkClassConst($$, #2); } - | optional_attributes method_modifiers T_FUNCTION optional_ref identifier_maybe_reserved '(' parameter_list ')' - optional_return_type method_body - { $$ = Stmt\ClassMethod[$5, ['type' => $2, 'byRef' => $4, 'params' => $7, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]]; - $this->checkClassMethod($$, #2); } - | T_USE class_name_list trait_adaptations { $$ = Stmt\TraitUse[$2, $3]; } - | optional_attributes T_CASE identifier_maybe_reserved enum_case_expr semi - { $$ = Stmt\EnumCase[$3, $4, $1]; } - | error { $$ = null; /* will be skipped */ } -; - -trait_adaptations: - ';' { $$ = array(); } - | '{' trait_adaptation_list '}' { $$ = $2; } -; - -trait_adaptation_list: - /* empty */ { init(); } - | trait_adaptation_list trait_adaptation { push($1, $2); } -; - -trait_adaptation: - trait_method_reference_fully_qualified T_INSTEADOF class_name_list ';' - { $$ = Stmt\TraitUseAdaptation\Precedence[$1[0], $1[1], $3]; } - | trait_method_reference T_AS member_modifier identifier_maybe_reserved ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, $4]; } - | trait_method_reference T_AS member_modifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], $3, null]; } - | trait_method_reference T_AS identifier_not_reserved ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } - | trait_method_reference T_AS reserved_non_modifiers_identifier ';' - { $$ = Stmt\TraitUseAdaptation\Alias[$1[0], $1[1], null, $3]; } -; - -trait_method_reference_fully_qualified: - name T_PAAMAYIM_NEKUDOTAYIM identifier_maybe_reserved { $$ = array($1, $3); } -; -trait_method_reference: - trait_method_reference_fully_qualified { $$ = $1; } - | identifier_maybe_reserved { $$ = array(null, $1); } -; - -method_body: - ';' /* abstract method */ { $$ = null; } - | block_or_error { $$ = $1; } -; - -variable_modifiers: - non_empty_member_modifiers { $$ = $1; } - | T_VAR { $$ = 0; } -; - -method_modifiers: - /* empty */ { $$ = 0; } - | non_empty_member_modifiers { $$ = $1; } -; - -non_empty_member_modifiers: - member_modifier { $$ = $1; } - | non_empty_member_modifiers member_modifier { $this->checkModifier($1, $2, #2); $$ = $1 | $2; } -; - -member_modifier: - T_PUBLIC { $$ = Stmt\Class_::MODIFIER_PUBLIC; } - | T_PROTECTED { $$ = Stmt\Class_::MODIFIER_PROTECTED; } - | T_PRIVATE { $$ = Stmt\Class_::MODIFIER_PRIVATE; } - | T_STATIC { $$ = Stmt\Class_::MODIFIER_STATIC; } - | T_ABSTRACT { $$ = Stmt\Class_::MODIFIER_ABSTRACT; } - | T_FINAL { $$ = Stmt\Class_::MODIFIER_FINAL; } - | T_READONLY { $$ = Stmt\Class_::MODIFIER_READONLY; } -; - -property_declaration_list: - non_empty_property_declaration_list no_comma { $$ = $1; } -; - -non_empty_property_declaration_list: - property_declaration { init($1); } - | non_empty_property_declaration_list ',' property_declaration - { push($1, $3); } -; - -property_decl_name: - T_VARIABLE { $$ = Node\VarLikeIdentifier[parseVar($1)]; } -; - -property_declaration: - property_decl_name { $$ = Stmt\PropertyProperty[$1, null]; } - | property_decl_name '=' expr { $$ = Stmt\PropertyProperty[$1, $3]; } -; - -expr_list_forbid_comma: - non_empty_expr_list no_comma { $$ = $1; } -; - -expr_list_allow_comma: - non_empty_expr_list optional_comma { $$ = $1; } -; - -non_empty_expr_list: - non_empty_expr_list ',' expr { push($1, $3); } - | expr { init($1); } -; - -for_expr: - /* empty */ { $$ = array(); } - | expr_list_forbid_comma { $$ = $1; } -; - -expr: - variable { $$ = $1; } - | list_expr '=' expr { $$ = Expr\Assign[$1, $3]; } - | array_short_syntax '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' expr { $$ = Expr\Assign[$1, $3]; } - | variable '=' ampersand variable { $$ = Expr\AssignRef[$1, $4]; } - | new_expr { $$ = $1; } - | match { $$ = $1; } - | T_CLONE expr { $$ = Expr\Clone_[$2]; } - | variable T_PLUS_EQUAL expr { $$ = Expr\AssignOp\Plus [$1, $3]; } - | variable T_MINUS_EQUAL expr { $$ = Expr\AssignOp\Minus [$1, $3]; } - | variable T_MUL_EQUAL expr { $$ = Expr\AssignOp\Mul [$1, $3]; } - | variable T_DIV_EQUAL expr { $$ = Expr\AssignOp\Div [$1, $3]; } - | variable T_CONCAT_EQUAL expr { $$ = Expr\AssignOp\Concat [$1, $3]; } - | variable T_MOD_EQUAL expr { $$ = Expr\AssignOp\Mod [$1, $3]; } - | variable T_AND_EQUAL expr { $$ = Expr\AssignOp\BitwiseAnd[$1, $3]; } - | variable T_OR_EQUAL expr { $$ = Expr\AssignOp\BitwiseOr [$1, $3]; } - | variable T_XOR_EQUAL expr { $$ = Expr\AssignOp\BitwiseXor[$1, $3]; } - | variable T_SL_EQUAL expr { $$ = Expr\AssignOp\ShiftLeft [$1, $3]; } - | variable T_SR_EQUAL expr { $$ = Expr\AssignOp\ShiftRight[$1, $3]; } - | variable T_POW_EQUAL expr { $$ = Expr\AssignOp\Pow [$1, $3]; } - | variable T_COALESCE_EQUAL expr { $$ = Expr\AssignOp\Coalesce [$1, $3]; } - | variable T_INC { $$ = Expr\PostInc[$1]; } - | T_INC variable { $$ = Expr\PreInc [$2]; } - | variable T_DEC { $$ = Expr\PostDec[$1]; } - | T_DEC variable { $$ = Expr\PreDec [$2]; } - | expr T_BOOLEAN_OR expr { $$ = Expr\BinaryOp\BooleanOr [$1, $3]; } - | expr T_BOOLEAN_AND expr { $$ = Expr\BinaryOp\BooleanAnd[$1, $3]; } - | expr T_LOGICAL_OR expr { $$ = Expr\BinaryOp\LogicalOr [$1, $3]; } - | expr T_LOGICAL_AND expr { $$ = Expr\BinaryOp\LogicalAnd[$1, $3]; } - | expr T_LOGICAL_XOR expr { $$ = Expr\BinaryOp\LogicalXor[$1, $3]; } - | expr '|' expr { $$ = Expr\BinaryOp\BitwiseOr [$1, $3]; } - | expr T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | expr T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG expr { $$ = Expr\BinaryOp\BitwiseAnd[$1, $3]; } - | expr '^' expr { $$ = Expr\BinaryOp\BitwiseXor[$1, $3]; } - | expr '.' expr { $$ = Expr\BinaryOp\Concat [$1, $3]; } - | expr '+' expr { $$ = Expr\BinaryOp\Plus [$1, $3]; } - | expr '-' expr { $$ = Expr\BinaryOp\Minus [$1, $3]; } - | expr '*' expr { $$ = Expr\BinaryOp\Mul [$1, $3]; } - | expr '/' expr { $$ = Expr\BinaryOp\Div [$1, $3]; } - | expr '%' expr { $$ = Expr\BinaryOp\Mod [$1, $3]; } - | expr T_SL expr { $$ = Expr\BinaryOp\ShiftLeft [$1, $3]; } - | expr T_SR expr { $$ = Expr\BinaryOp\ShiftRight[$1, $3]; } - | expr T_POW expr { $$ = Expr\BinaryOp\Pow [$1, $3]; } - | '+' expr %prec T_INC { $$ = Expr\UnaryPlus [$2]; } - | '-' expr %prec T_INC { $$ = Expr\UnaryMinus[$2]; } - | '!' expr { $$ = Expr\BooleanNot[$2]; } - | '~' expr { $$ = Expr\BitwiseNot[$2]; } - | expr T_IS_IDENTICAL expr { $$ = Expr\BinaryOp\Identical [$1, $3]; } - | expr T_IS_NOT_IDENTICAL expr { $$ = Expr\BinaryOp\NotIdentical [$1, $3]; } - | expr T_IS_EQUAL expr { $$ = Expr\BinaryOp\Equal [$1, $3]; } - | expr T_IS_NOT_EQUAL expr { $$ = Expr\BinaryOp\NotEqual [$1, $3]; } - | expr T_SPACESHIP expr { $$ = Expr\BinaryOp\Spaceship [$1, $3]; } - | expr '<' expr { $$ = Expr\BinaryOp\Smaller [$1, $3]; } - | expr T_IS_SMALLER_OR_EQUAL expr { $$ = Expr\BinaryOp\SmallerOrEqual[$1, $3]; } - | expr '>' expr { $$ = Expr\BinaryOp\Greater [$1, $3]; } - | expr T_IS_GREATER_OR_EQUAL expr { $$ = Expr\BinaryOp\GreaterOrEqual[$1, $3]; } - | expr T_INSTANCEOF class_name_reference { $$ = Expr\Instanceof_[$1, $3]; } - | '(' expr ')' { $$ = $2; } - | expr '?' expr ':' expr { $$ = Expr\Ternary[$1, $3, $5]; } - | expr '?' ':' expr { $$ = Expr\Ternary[$1, null, $4]; } - | expr T_COALESCE expr { $$ = Expr\BinaryOp\Coalesce[$1, $3]; } - | T_ISSET '(' expr_list_allow_comma ')' { $$ = Expr\Isset_[$3]; } - | T_EMPTY '(' expr ')' { $$ = Expr\Empty_[$3]; } - | T_INCLUDE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE]; } - | T_INCLUDE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_INCLUDE_ONCE]; } - | T_EVAL '(' expr ')' { $$ = Expr\Eval_[$3]; } - | T_REQUIRE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE]; } - | T_REQUIRE_ONCE expr { $$ = Expr\Include_[$2, Expr\Include_::TYPE_REQUIRE_ONCE]; } - | T_INT_CAST expr { $$ = Expr\Cast\Int_ [$2]; } - | T_DOUBLE_CAST expr - { $attrs = attributes(); - $attrs['kind'] = $this->getFloatCastKind($1); - $$ = new Expr\Cast\Double($2, $attrs); } - | T_STRING_CAST expr { $$ = Expr\Cast\String_ [$2]; } - | T_ARRAY_CAST expr { $$ = Expr\Cast\Array_ [$2]; } - | T_OBJECT_CAST expr { $$ = Expr\Cast\Object_ [$2]; } - | T_BOOL_CAST expr { $$ = Expr\Cast\Bool_ [$2]; } - | T_UNSET_CAST expr { $$ = Expr\Cast\Unset_ [$2]; } - | T_EXIT exit_expr - { $attrs = attributes(); - $attrs['kind'] = strtolower($1) === 'exit' ? Expr\Exit_::KIND_EXIT : Expr\Exit_::KIND_DIE; - $$ = new Expr\Exit_($2, $attrs); } - | '@' expr { $$ = Expr\ErrorSuppress[$2]; } - | scalar { $$ = $1; } - | '`' backticks_expr '`' { $$ = Expr\ShellExec[$2]; } - | T_PRINT expr { $$ = Expr\Print_[$2]; } - | T_YIELD { $$ = Expr\Yield_[null, null]; } - | T_YIELD expr { $$ = Expr\Yield_[$2, null]; } - | T_YIELD expr T_DOUBLE_ARROW expr { $$ = Expr\Yield_[$4, $2]; } - | T_YIELD_FROM expr { $$ = Expr\YieldFrom[$2]; } - | T_THROW expr { $$ = Expr\Throw_[$2]; } - - | T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW - { $$ = Expr\ArrowFunction[['static' => false, 'byRef' => $2, 'params' => $4, 'returnType' => $6, 'expr' => $8, 'attrGroups' => []]]; } - | T_STATIC T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW - { $$ = Expr\ArrowFunction[['static' => true, 'byRef' => $3, 'params' => $5, 'returnType' => $7, 'expr' => $9, 'attrGroups' => []]]; } - | T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error - { $$ = Expr\Closure[['static' => false, 'byRef' => $2, 'params' => $4, 'uses' => $6, 'returnType' => $7, 'stmts' => $8, 'attrGroups' => []]]; } - | T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error - { $$ = Expr\Closure[['static' => true, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => []]]; } - - | attributes T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW - { $$ = Expr\ArrowFunction[['static' => false, 'byRef' => $3, 'params' => $5, 'returnType' => $7, 'expr' => $9, 'attrGroups' => $1]]; } - | attributes T_STATIC T_FN optional_ref '(' parameter_list ')' optional_return_type T_DOUBLE_ARROW expr %prec T_THROW - { $$ = Expr\ArrowFunction[['static' => true, 'byRef' => $4, 'params' => $6, 'returnType' => $8, 'expr' => $10, 'attrGroups' => $1]]; } - | attributes T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error - { $$ = Expr\Closure[['static' => false, 'byRef' => $3, 'params' => $5, 'uses' => $7, 'returnType' => $8, 'stmts' => $9, 'attrGroups' => $1]]; } - | attributes T_STATIC T_FUNCTION optional_ref '(' parameter_list ')' lexical_vars optional_return_type block_or_error - { $$ = Expr\Closure[['static' => true, 'byRef' => $4, 'params' => $6, 'uses' => $8, 'returnType' => $9, 'stmts' => $10, 'attrGroups' => $1]]; } -; - -anonymous_class: - optional_attributes class_entry_type ctor_arguments extends_from implements_list '{' class_statement_list '}' - { $$ = array(Stmt\Class_[null, ['type' => $2, 'extends' => $4, 'implements' => $5, 'stmts' => $7, 'attrGroups' => $1]], $3); - $this->checkClass($$[0], -1); } -; - -new_expr: - T_NEW class_name_reference ctor_arguments { $$ = Expr\New_[$2, $3]; } - | T_NEW anonymous_class - { list($class, $ctorArgs) = $2; $$ = Expr\New_[$class, $ctorArgs]; } -; - -lexical_vars: - /* empty */ { $$ = array(); } - | T_USE '(' lexical_var_list ')' { $$ = $3; } -; - -lexical_var_list: - non_empty_lexical_var_list optional_comma { $$ = $1; } -; - -non_empty_lexical_var_list: - lexical_var { init($1); } - | non_empty_lexical_var_list ',' lexical_var { push($1, $3); } -; - -lexical_var: - optional_ref plain_variable { $$ = Expr\ClosureUse[$2, $1]; } -; - -name_readonly: - T_READONLY { $$ = Name[$1]; } -; - -function_call: - name argument_list { $$ = Expr\FuncCall[$1, $2]; } - | name_readonly argument_list { $$ = Expr\FuncCall[$1, $2]; } - | callable_expr argument_list { $$ = Expr\FuncCall[$1, $2]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM member_name argument_list - { $$ = Expr\StaticCall[$1, $3, $4]; } -; - -class_name: - T_STATIC { $$ = Name[$1]; } - | name { $$ = $1; } -; - -name: - T_STRING { $$ = Name[$1]; } - | T_NAME_QUALIFIED { $$ = Name[$1]; } - | T_NAME_FULLY_QUALIFIED { $$ = Name\FullyQualified[substr($1, 1)]; } - | T_NAME_RELATIVE { $$ = Name\Relative[substr($1, 10)]; } -; - -class_name_reference: - class_name { $$ = $1; } - | new_variable { $$ = $1; } - | '(' expr ')' { $$ = $2; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -class_name_or_var: - class_name { $$ = $1; } - | fully_dereferencable { $$ = $1; } -; - -exit_expr: - /* empty */ { $$ = null; } - | '(' optional_expr ')' { $$ = $2; } -; - -backticks_expr: - /* empty */ { $$ = array(); } - | T_ENCAPSED_AND_WHITESPACE - { $$ = array(Scalar\EncapsedStringPart[Scalar\String_::parseEscapeSequences($1, '`')]); } - | encaps_list { parseEncapsed($1, '`', true); $$ = $1; } -; - -ctor_arguments: - /* empty */ { $$ = array(); } - | argument_list { $$ = $1; } -; - -constant: - name { $$ = Expr\ConstFetch[$1]; } - | T_LINE { $$ = Scalar\MagicConst\Line[]; } - | T_FILE { $$ = Scalar\MagicConst\File[]; } - | T_DIR { $$ = Scalar\MagicConst\Dir[]; } - | T_CLASS_C { $$ = Scalar\MagicConst\Class_[]; } - | T_TRAIT_C { $$ = Scalar\MagicConst\Trait_[]; } - | T_METHOD_C { $$ = Scalar\MagicConst\Method[]; } - | T_FUNC_C { $$ = Scalar\MagicConst\Function_[]; } - | T_NS_C { $$ = Scalar\MagicConst\Namespace_[]; } -; - -class_constant: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM identifier_maybe_reserved - { $$ = Expr\ClassConstFetch[$1, $3]; } - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM '{' expr '}' - { $$ = Expr\ClassConstFetch[$1, $4]; } - /* We interpret an isolated FOO:: as an unfinished class constant fetch. It could also be - an unfinished static property fetch or unfinished scoped call. */ - | class_name_or_var T_PAAMAYIM_NEKUDOTAYIM error - { $$ = Expr\ClassConstFetch[$1, new Expr\Error(stackAttributes(#3))]; $this->errorState = 2; } -; - -array_short_syntax: - '[' array_pair_list ']' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_SHORT; - $$ = new Expr\Array_($2, $attrs); } -; - -dereferencable_scalar: - T_ARRAY '(' array_pair_list ')' - { $attrs = attributes(); $attrs['kind'] = Expr\Array_::KIND_LONG; - $$ = new Expr\Array_($3, $attrs); } - | array_short_syntax { $$ = $1; } - | T_CONSTANT_ENCAPSED_STRING { $$ = Scalar\String_::fromString($1, attributes()); } - | '"' encaps_list '"' - { $attrs = attributes(); $attrs['kind'] = Scalar\String_::KIND_DOUBLE_QUOTED; - parseEncapsed($2, '"', true); $$ = new Scalar\Encapsed($2, $attrs); } -; - -scalar: - T_LNUMBER { $$ = $this->parseLNumber($1, attributes()); } - | T_DNUMBER { $$ = Scalar\DNumber::fromString($1, attributes()); } - | dereferencable_scalar { $$ = $1; } - | constant { $$ = $1; } - | class_constant { $$ = $1; } - | T_START_HEREDOC T_ENCAPSED_AND_WHITESPACE T_END_HEREDOC - { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } - | T_START_HEREDOC T_END_HEREDOC - { $$ = $this->parseDocString($1, '', $2, attributes(), stackAttributes(#2), true); } - | T_START_HEREDOC encaps_list T_END_HEREDOC - { $$ = $this->parseDocString($1, $2, $3, attributes(), stackAttributes(#3), true); } -; - -optional_expr: - /* empty */ { $$ = null; } - | expr { $$ = $1; } -; - -fully_dereferencable: - variable { $$ = $1; } - | '(' expr ')' { $$ = $2; } - | dereferencable_scalar { $$ = $1; } - | class_constant { $$ = $1; } -; - -array_object_dereferencable: - fully_dereferencable { $$ = $1; } - | constant { $$ = $1; } -; - -callable_expr: - callable_variable { $$ = $1; } - | '(' expr ')' { $$ = $2; } - | dereferencable_scalar { $$ = $1; } -; - -callable_variable: - simple_variable { $$ = $1; } - | array_object_dereferencable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | array_object_dereferencable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | function_call { $$ = $1; } - | array_object_dereferencable T_OBJECT_OPERATOR property_name argument_list - { $$ = Expr\MethodCall[$1, $3, $4]; } - | array_object_dereferencable T_NULLSAFE_OBJECT_OPERATOR property_name argument_list - { $$ = Expr\NullsafeMethodCall[$1, $3, $4]; } -; - -optional_plain_variable: - /* empty */ { $$ = null; } - | plain_variable { $$ = $1; } -; - -variable: - callable_variable { $$ = $1; } - | static_member { $$ = $1; } - | array_object_dereferencable T_OBJECT_OPERATOR property_name - { $$ = Expr\PropertyFetch[$1, $3]; } - | array_object_dereferencable T_NULLSAFE_OBJECT_OPERATOR property_name - { $$ = Expr\NullsafePropertyFetch[$1, $3]; } -; - -simple_variable: - plain_variable { $$ = $1; } - | '$' '{' expr '}' { $$ = Expr\Variable[$3]; } - | '$' simple_variable { $$ = Expr\Variable[$2]; } - | '$' error { $$ = Expr\Variable[Expr\Error[]]; $this->errorState = 2; } -; - -static_member_prop_name: - simple_variable - { $var = $1->name; $$ = \is_string($var) ? Node\VarLikeIdentifier[$var] : $var; } -; - -static_member: - class_name_or_var T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name - { $$ = Expr\StaticPropertyFetch[$1, $3]; } -; - -new_variable: - simple_variable { $$ = $1; } - | new_variable '[' optional_expr ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | new_variable '{' expr '}' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | new_variable T_OBJECT_OPERATOR property_name { $$ = Expr\PropertyFetch[$1, $3]; } - | new_variable T_NULLSAFE_OBJECT_OPERATOR property_name { $$ = Expr\NullsafePropertyFetch[$1, $3]; } - | class_name T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name - { $$ = Expr\StaticPropertyFetch[$1, $3]; } - | new_variable T_PAAMAYIM_NEKUDOTAYIM static_member_prop_name - { $$ = Expr\StaticPropertyFetch[$1, $3]; } -; - -member_name: - identifier_maybe_reserved { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | simple_variable { $$ = $1; } -; - -property_name: - identifier_not_reserved { $$ = $1; } - | '{' expr '}' { $$ = $2; } - | simple_variable { $$ = $1; } - | error { $$ = Expr\Error[]; $this->errorState = 2; } -; - -list_expr: - T_LIST '(' inner_array_pair_list ')' { $$ = Expr\List_[$3]; } -; - -array_pair_list: - inner_array_pair_list - { $$ = $1; $end = count($$)-1; if ($$[$end] === null) array_pop($$); } -; - -comma_or_error: - ',' - | error - { /* do nothing -- prevent default action of $$=$1. See #551. */ } -; - -inner_array_pair_list: - inner_array_pair_list comma_or_error array_pair { push($1, $3); } - | array_pair { init($1); } -; - -array_pair: - expr { $$ = Expr\ArrayItem[$1, null, false]; } - | ampersand variable { $$ = Expr\ArrayItem[$2, null, true]; } - | list_expr { $$ = Expr\ArrayItem[$1, null, false]; } - | expr T_DOUBLE_ARROW expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | expr T_DOUBLE_ARROW ampersand variable { $$ = Expr\ArrayItem[$4, $1, true]; } - | expr T_DOUBLE_ARROW list_expr { $$ = Expr\ArrayItem[$3, $1, false]; } - | T_ELLIPSIS expr { $$ = new Expr\ArrayItem($2, null, false, attributes(), true); } - | /* empty */ { $$ = null; } -; - -encaps_list: - encaps_list encaps_var { push($1, $2); } - | encaps_list encaps_string_part { push($1, $2); } - | encaps_var { init($1); } - | encaps_string_part encaps_var { init($1, $2); } -; - -encaps_string_part: - T_ENCAPSED_AND_WHITESPACE { $$ = Scalar\EncapsedStringPart[$1]; } -; - -encaps_str_varname: - T_STRING_VARNAME { $$ = Expr\Variable[$1]; } -; - -encaps_var: - plain_variable { $$ = $1; } - | plain_variable '[' encaps_var_offset ']' { $$ = Expr\ArrayDimFetch[$1, $3]; } - | plain_variable T_OBJECT_OPERATOR identifier_not_reserved - { $$ = Expr\PropertyFetch[$1, $3]; } - | plain_variable T_NULLSAFE_OBJECT_OPERATOR identifier_not_reserved - { $$ = Expr\NullsafePropertyFetch[$1, $3]; } - | T_DOLLAR_OPEN_CURLY_BRACES expr '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES T_STRING_VARNAME '}' { $$ = Expr\Variable[$2]; } - | T_DOLLAR_OPEN_CURLY_BRACES encaps_str_varname '[' expr ']' '}' - { $$ = Expr\ArrayDimFetch[$2, $4]; } - | T_CURLY_OPEN variable '}' { $$ = $2; } -; - -encaps_var_offset: - T_STRING { $$ = Scalar\String_[$1]; } - | T_NUM_STRING { $$ = $this->parseNumString($1, attributes()); } - | '-' T_NUM_STRING { $$ = $this->parseNumString('-' . $2, attributes()); } - | plain_variable { $$ = $1; } -; - -%% diff --git a/vendor/rector/rector/vendor/nikic/php-parser/grammar/phpyLang.php b/vendor/rector/rector/vendor/nikic/php-parser/grammar/phpyLang.php deleted file mode 100644 index 5fb6d7608..000000000 --- a/vendor/rector/rector/vendor/nikic/php-parser/grammar/phpyLang.php +++ /dev/null @@ -1,128 +0,0 @@ -\'[^\\\\\']*+(?:\\\\.[^\\\\\']*+)*+\') - (?"[^\\\\"]*+(?:\\\\.[^\\\\"]*+)*+") - (?(?&singleQuotedString)|(?&doubleQuotedString)) - (?/\\*[^*]*+(?:\\*(?!/)[^*]*+)*+\\*/) - (?\\{[^\'"/{}]*+(?:(?:(?&string)|(?&comment)|(?&code)|/)[^\'"/{}]*+)*+}) -)'; -const PARAMS = '\\[(?[^[\\]]*+(?:\\[(?¶ms)\\][^[\\]]*+)*+)\\]'; -const ARGS = '\\((?[^()]*+(?:\\((?&args)\\)[^()]*+)*+)\\)'; -/////////////////////////////// -/// Preprocessing functions /// -/////////////////////////////// -function preprocessGrammar($code) -{ - $code = resolveNodes($code); - $code = resolveMacros($code); - $code = resolveStackAccess($code); - return $code; -} -function resolveNodes($code) -{ - return \preg_replace_callback('~\\b(?[A-Z][a-zA-Z_\\\\]++)\\s*' . \RectorPrefix202311\PARAMS . '~', function ($matches) { - // recurse - $matches['params'] = resolveNodes($matches['params']); - $params = magicSplit('(?:' . \RectorPrefix202311\PARAMS . '|' . \RectorPrefix202311\ARGS . ')(*SKIP)(*FAIL)|,', $matches['params']); - $paramCode = ''; - foreach ($params as $param) { - $paramCode .= $param . ', '; - } - return 'new ' . $matches['name'] . '(' . $paramCode . 'attributes())'; - }, $code); -} -function resolveMacros($code) -{ - return \preg_replace_callback('~\\b(?)(?!array\\()(?[a-z][A-Za-z]++)' . \RectorPrefix202311\ARGS . '~', function ($matches) { - // recurse - $matches['args'] = resolveMacros($matches['args']); - $name = $matches['name']; - $args = magicSplit('(?:' . \RectorPrefix202311\PARAMS . '|' . \RectorPrefix202311\ARGS . ')(*SKIP)(*FAIL)|,', $matches['args']); - if ('attributes' === $name) { - assertArgs(0, $args, $name); - return '$this->startAttributeStack[#1] + $this->endAttributes'; - } - if ('stackAttributes' === $name) { - assertArgs(1, $args, $name); - return '$this->startAttributeStack[' . $args[0] . ']' . ' + $this->endAttributeStack[' . $args[0] . ']'; - } - if ('init' === $name) { - return '$$ = array(' . \implode(', ', $args) . ')'; - } - if ('push' === $name) { - assertArgs(2, $args, $name); - return $args[0] . '[] = ' . $args[1] . '; $$ = ' . $args[0]; - } - if ('pushNormalizing' === $name) { - assertArgs(2, $args, $name); - return 'if (is_array(' . $args[1] . ')) { $$ = array_merge(' . $args[0] . ', ' . $args[1] . '); }' . ' else { ' . $args[0] . '[] = ' . $args[1] . '; $$ = ' . $args[0] . '; }'; - } - if ('toArray' == $name) { - assertArgs(1, $args, $name); - return 'is_array(' . $args[0] . ') ? ' . $args[0] . ' : array(' . $args[0] . ')'; - } - if ('parseVar' === $name) { - assertArgs(1, $args, $name); - return 'substr(' . $args[0] . ', 1)'; - } - if ('parseEncapsed' === $name) { - assertArgs(3, $args, $name); - return 'foreach (' . $args[0] . ' as $s) { if ($s instanceof Node\\Scalar\\EncapsedStringPart) {' . ' $s->value = Node\\Scalar\\String_::parseEscapeSequences($s->value, ' . $args[1] . ', ' . $args[2] . '); } }'; - } - if ('makeNop' === $name) { - assertArgs(3, $args, $name); - return '$startAttributes = ' . $args[1] . ';' . ' if (isset($startAttributes[\'comments\']))' . ' { ' . $args[0] . ' = new Stmt\\Nop($startAttributes + ' . $args[2] . '); }' . ' else { ' . $args[0] . ' = null; }'; - } - if ('makeZeroLengthNop' == $name) { - assertArgs(2, $args, $name); - return '$startAttributes = ' . $args[1] . ';' . ' if (isset($startAttributes[\'comments\']))' . ' { ' . $args[0] . ' = new Stmt\\Nop($this->createCommentNopAttributes($startAttributes[\'comments\'])); }' . ' else { ' . $args[0] . ' = null; }'; - } - if ('prependLeadingComments' === $name) { - assertArgs(1, $args, $name); - return '$attrs = $this->startAttributeStack[#1]; $stmts = ' . $args[0] . '; ' . 'if (!empty($attrs[\'comments\'])) {' . '$stmts[0]->setAttribute(\'comments\', ' . 'array_merge($attrs[\'comments\'], $stmts[0]->getAttribute(\'comments\', []))); }'; - } - return $matches[0]; - }, $code); -} -function assertArgs($num, $args, $name) -{ - if ($num != \count($args)) { - die('Wrong argument count for ' . $name . '().'); - } -} -function resolveStackAccess($code) -{ - $code = \preg_replace('/\\$\\d+/', '$this->semStack[$0]', $code); - $code = \preg_replace('/#(\\d+)/', '$$1', $code); - return $code; -} -function removeTrailingWhitespace($code) -{ - $lines = \explode("\n", $code); - $lines = \array_map('rtrim', $lines); - return \implode("\n", $lines); -} -////////////////////////////// -/// Regex helper functions /// -////////////////////////////// -function regex($regex) -{ - return '~' . \RectorPrefix202311\LIB . '(?:' . \str_replace('~', '\\~', $regex) . ')~'; -} -function magicSplit($regex, $string) -{ - $pieces = \preg_split(regex('(?:(?&string)|(?&comment)|(?&code))(*SKIP)(*FAIL)|' . $regex), $string); - foreach ($pieces as &$piece) { - $piece = \trim($piece); - } - if ($pieces === ['']) { - return []; - } - return $pieces; -} diff --git a/vendor/rector/rector/vendor/nikic/php-parser/grammar/rebuildParsers.php b/vendor/rector/rector/vendor/nikic/php-parser/grammar/rebuildParsers.php deleted file mode 100644 index a22509e06..000000000 --- a/vendor/rector/rector/vendor/nikic/php-parser/grammar/rebuildParsers.php +++ /dev/null @@ -1,64 +0,0 @@ - 'Php5', __DIR__ . '/php7.y' => 'Php7']; -$tokensFile = __DIR__ . '/tokens.y'; -$tokensTemplate = __DIR__ . '/tokens.template'; -$skeletonFile = __DIR__ . '/parser.template'; -$tmpGrammarFile = __DIR__ . '/tmp_parser.phpy'; -$tmpResultFile = __DIR__ . '/tmp_parser.php'; -$resultDir = __DIR__ . '/../lib/PhpParser/Parser'; -$tokensResultsFile = $resultDir . '/Tokens.php'; -$kmyacc = \getenv('KMYACC'); -if (!$kmyacc) { - // Use phpyacc from dev dependencies by default. - $kmyacc = __DIR__ . '/../vendor/bin/phpyacc'; -} -$options = \array_flip($argv); -$optionDebug = isset($options['--debug']); -$optionKeepTmpGrammar = isset($options['--keep-tmp-grammar']); -/////////////////// -/// Main script /// -/////////////////// -$tokens = \file_get_contents($tokensFile); -foreach ($grammarFileToName as $grammarFile => $name) { - echo "Building temporary {$name} grammar file.\n"; - $grammarCode = \file_get_contents($grammarFile); - $grammarCode = \str_replace('%tokens', $tokens, $grammarCode); - $grammarCode = preprocessGrammar($grammarCode); - \file_put_contents($tmpGrammarFile, $grammarCode); - $additionalArgs = $optionDebug ? '-t -v' : ''; - echo "Building {$name} parser.\n"; - $output = execCmd("{$kmyacc} {$additionalArgs} -m {$skeletonFile} -p {$name} {$tmpGrammarFile}"); - $resultCode = \file_get_contents($tmpResultFile); - $resultCode = removeTrailingWhitespace($resultCode); - ensureDirExists($resultDir); - \file_put_contents("{$resultDir}/{$name}.php", $resultCode); - \unlink($tmpResultFile); - echo "Building token definition.\n"; - $output = execCmd("{$kmyacc} -m {$tokensTemplate} {$tmpGrammarFile}"); - \rename($tmpResultFile, $tokensResultsFile); - if (!$optionKeepTmpGrammar) { - \unlink($tmpGrammarFile); - } -} -//////////////////////////////// -/// Utility helper functions /// -//////////////////////////////// -function ensureDirExists($dir) -{ - if (!\is_dir($dir)) { - \mkdir($dir, 0777, \true); - } -} -function execCmd($cmd) -{ - $output = \trim(\shell_exec("{$cmd} 2>&1")); - if ($output !== "") { - echo "> " . $cmd . "\n"; - echo $output; - } - return $output; -} diff --git a/vendor/rector/rector/vendor/nikic/php-parser/grammar/tokens.template b/vendor/rector/rector/vendor/nikic/php-parser/grammar/tokens.template deleted file mode 100644 index ba4e4901c..000000000 --- a/vendor/rector/rector/vendor/nikic/php-parser/grammar/tokens.template +++ /dev/null @@ -1,17 +0,0 @@ -semValue -#semval($,%t) $this->semValue -#semval(%n) $this->stackPos-(%l-%n) -#semval(%n,%t) $this->stackPos-(%l-%n) - -namespace PhpParser\Parser; -#include; - -/* GENERATED file based on grammar/tokens.y */ -final class Tokens -{ -#tokenval - const %s = %n; -#endtokenval -} diff --git a/vendor/rector/rector/vendor/nikic/php-parser/grammar/tokens.y b/vendor/rector/rector/vendor/nikic/php-parser/grammar/tokens.y deleted file mode 100644 index 8f0b21725..000000000 --- a/vendor/rector/rector/vendor/nikic/php-parser/grammar/tokens.y +++ /dev/null @@ -1,115 +0,0 @@ -/* We currently rely on the token ID mapping to be the same between PHP 5 and PHP 7 - so the same lexer can be used for - * both. This is enforced by sharing this token file. */ - -%right T_THROW -%left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE -%left ',' -%left T_LOGICAL_OR -%left T_LOGICAL_XOR -%left T_LOGICAL_AND -%right T_PRINT -%right T_YIELD -%right T_DOUBLE_ARROW -%right T_YIELD_FROM -%left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL T_POW_EQUAL T_COALESCE_EQUAL -%left '?' ':' -%right T_COALESCE -%left T_BOOLEAN_OR -%left T_BOOLEAN_AND -%left '|' -%left '^' -%left T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG -%nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL T_SPACESHIP -%nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL -%left T_SL T_SR -%left '+' '-' '.' -%left '*' '/' '%' -%right '!' -%nonassoc T_INSTANCEOF -%right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' -%right T_POW -%right '[' -%nonassoc T_NEW T_CLONE -%token T_EXIT -%token T_IF -%left T_ELSEIF -%left T_ELSE -%left T_ENDIF -%token T_LNUMBER -%token T_DNUMBER -%token T_STRING -%token T_STRING_VARNAME -%token T_VARIABLE -%token T_NUM_STRING -%token T_INLINE_HTML -%token T_ENCAPSED_AND_WHITESPACE -%token T_CONSTANT_ENCAPSED_STRING -%token T_ECHO -%token T_DO -%token T_WHILE -%token T_ENDWHILE -%token T_FOR -%token T_ENDFOR -%token T_FOREACH -%token T_ENDFOREACH -%token T_DECLARE -%token T_ENDDECLARE -%token T_AS -%token T_SWITCH -%token T_MATCH -%token T_ENDSWITCH -%token T_CASE -%token T_DEFAULT -%token T_BREAK -%token T_CONTINUE -%token T_GOTO -%token T_FUNCTION -%token T_FN -%token T_CONST -%token T_RETURN -%token T_TRY -%token T_CATCH -%token T_FINALLY -%token T_THROW -%token T_USE -%token T_INSTEADOF -%token T_GLOBAL -%right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC T_READONLY -%token T_VAR -%token T_UNSET -%token T_ISSET -%token T_EMPTY -%token T_HALT_COMPILER -%token T_CLASS -%token T_TRAIT -%token T_INTERFACE -%token T_ENUM -%token T_EXTENDS -%token T_IMPLEMENTS -%token T_OBJECT_OPERATOR -%token T_NULLSAFE_OBJECT_OPERATOR -%token T_DOUBLE_ARROW -%token T_LIST -%token T_ARRAY -%token T_CALLABLE -%token T_CLASS_C -%token T_TRAIT_C -%token T_METHOD_C -%token T_FUNC_C -%token T_LINE -%token T_FILE -%token T_START_HEREDOC -%token T_END_HEREDOC -%token T_DOLLAR_OPEN_CURLY_BRACES -%token T_CURLY_OPEN -%token T_PAAMAYIM_NEKUDOTAYIM -%token T_NAMESPACE -%token T_NS_C -%token T_DIR -%token T_NS_SEPARATOR -%token T_ELLIPSIS -%token T_NAME_FULLY_QUALIFIED -%token T_NAME_QUALIFIED -%token T_NAME_RELATIVE -%token T_ATTRIBUTE -%token T_ENUM diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php index fd97d6d68..b062c4f3c 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/BuilderHelpers.php @@ -69,7 +69,7 @@ public static function normalizeIdentifier($name) : Identifier if (\is_string($name)) { return new Identifier($name); } - throw new \LogicException('RectorPrefix202311\\Expected string or instance of Node\\Identifier'); + throw new \LogicException('RectorPrefix202312\\Expected string or instance of Node\\Identifier'); } /** * Normalizes strings to Identifier, also allowing expressions. @@ -86,7 +86,7 @@ public static function normalizeIdentifierOrExpr($name) if (\is_string($name)) { return new Identifier($name); } - throw new \LogicException('RectorPrefix202311\\Expected string or instance of Node\\Identifier or Node\\Expr'); + throw new \LogicException('RectorPrefix202312\\Expected string or instance of Node\\Identifier or Node\\Expr'); } /** * Normalizes a name: Converts string names to Name nodes. @@ -112,7 +112,7 @@ public static function normalizeName($name) : Name } return new Name($name); } - throw new \LogicException('RectorPrefix202311\\Name must be a string or an instance of Node\\Name'); + throw new \LogicException('RectorPrefix202312\\Name must be a string or an instance of Node\\Name'); } /** * Normalizes a name: Converts string names to Name nodes, while also allowing expressions. @@ -127,7 +127,7 @@ public static function normalizeNameOrExpr($name) return $name; } if (!\is_string($name) && !$name instanceof Name) { - throw new \LogicException('RectorPrefix202311\\Name must be a string or an instance of Node\\Name or Node\\Expr'); + throw new \LogicException('RectorPrefix202312\\Name must be a string or an instance of Node\\Name or Node\\Expr'); } return self::normalizeName($name); } @@ -226,7 +226,7 @@ public static function normalizeDocComment($docComment) : \PhpParser\Comment\Doc if (\is_string($docComment)) { return new \PhpParser\Comment\Doc($docComment); } - throw new \LogicException('RectorPrefix202311\\Doc comment must be a string or an instance of PhpParser\\Comment\\Doc'); + throw new \LogicException('RectorPrefix202312\\Doc comment must be a string or an instance of PhpParser\\Comment\\Doc'); } /** * Normalizes a attribute: Converts attribute to the Attribute Group if needed. @@ -241,7 +241,7 @@ public static function normalizeAttribute($attribute) : \PhpParser\Node\Attribut return $attribute; } if (!$attribute instanceof \PhpParser\Node\Attribute) { - throw new \LogicException('RectorPrefix202311\\Attribute must be an instance of PhpParser\\Node\\Attribute or PhpParser\\Node\\AttributeGroup'); + throw new \LogicException('RectorPrefix202312\\Attribute must be an instance of PhpParser\\Node\\Attribute or PhpParser\\Node\\AttributeGroup'); } return new \PhpParser\Node\AttributeGroup([$attribute]); } diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php index 84595528c..81bb23126 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Lexer.php @@ -435,12 +435,12 @@ protected function createTokenMap() : array } } // HHVM uses a special token for numbers that overflow to double - if (\defined('RectorPrefix202311\\T_ONUMBER')) { - $tokenMap[\RectorPrefix202311\T_ONUMBER] = Tokens::T_DNUMBER; + if (\defined('RectorPrefix202312\\T_ONUMBER')) { + $tokenMap[\RectorPrefix202312\T_ONUMBER] = Tokens::T_DNUMBER; } // HHVM also has a separate token for the __COMPILER_HALT_OFFSET__ constant - if (\defined('RectorPrefix202311\\T_COMPILER_HALT_OFFSET')) { - $tokenMap[\RectorPrefix202311\T_COMPILER_HALT_OFFSET] = Tokens::T_STRING; + if (\defined('RectorPrefix202312\\T_COMPILER_HALT_OFFSET')) { + $tokenMap[\RectorPrefix202312\T_COMPILER_HALT_OFFSET] = Tokens::T_STRING; } // Assign tokens for which we define compatibility constants, as token_name() does not know them. $tokenMap[\T_FN] = Tokens::T_FN; diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php index 901884cfc..200d8a63a 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/NodeVisitor/NameResolver.php @@ -110,6 +110,9 @@ public function enterNode(Node $node) } } else { if ($node instanceof Stmt\ClassConst) { + if (null !== $node->type) { + $node->type = $this->resolveType($node->type); + } $this->resolveAttrGroups($node); } else { if ($node instanceof Stmt\EnumCase) { diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php index 369c2b714..d2b38cdbc 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php5.php @@ -649,6 +649,8 @@ protected function initReduceCallbacks() if ($this->semStack[$stackPos - (2 - 2)] !== null) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + } else { + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; } }, 260 => function ($stackPos) { $this->semValue = array(); diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php index fc13db96c..e042bd333 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/Parser/Php7.php @@ -832,6 +832,8 @@ protected function initReduceCallbacks() if ($this->semStack[$stackPos - (2 - 2)] !== null) { $this->semStack[$stackPos - (2 - 1)][] = $this->semStack[$stackPos - (2 - 2)]; $this->semValue = $this->semStack[$stackPos - (2 - 1)]; + } else { + $this->semValue = $this->semStack[$stackPos - (2 - 1)]; } }, 341 => function ($stackPos) { $this->semValue = array(); diff --git a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php index c8d6ef6f6..81dd199e8 100644 --- a/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php +++ b/vendor/rector/rector/vendor/nikic/php-parser/lib/PhpParser/ParserFactory.php @@ -3,6 +3,8 @@ declare (strict_types=1); namespace PhpParser; +use PhpParser\Lexer\Emulative; +use PhpParser\Parser\Php7; class ParserFactory { const PREFER_PHP7 = 1; @@ -36,4 +38,31 @@ public function create(int $kind, \PhpParser\Lexer $lexer = null, array $parserO throw new \LogicException('Kind must be one of ::PREFER_PHP7, ::PREFER_PHP5, ::ONLY_PHP7 or ::ONLY_PHP5'); } } + /** + * Create a parser targeting the newest version supported by this library. Code for older + * versions will be accepted if there have been no relevant backwards-compatibility breaks in + * PHP. + * + * All supported lexer attributes (comments, startLine, endLine, startTokenPos, endTokenPos, + * startFilePos, endFilePos) will be enabled. + */ + public function createForNewestSupportedVersion() : \PhpParser\Parser + { + return new Php7(new Emulative($this->getLexerOptions())); + } + /** + * Create a parser targeting the host PHP version, that is the PHP version we're currently + * running on. This parser will not use any token emulation. + * + * All supported lexer attributes (comments, startLine, endLine, startTokenPos, endTokenPos, + * startFilePos, endFilePos) will be enabled. + */ + public function createForHostVersion() : \PhpParser\Parser + { + return new Php7(new \PhpParser\Lexer($this->getLexerOptions())); + } + private function getLexerOptions() : array + { + return ['usedAttributes' => ['comments', 'startLine', 'endLine', 'startTokenPos', 'endTokenPos', 'startFilePos', 'endFilePos']]; + } } diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/composer.json b/vendor/rector/rector/vendor/ondram/ci-detector/composer.json index 4c0be236a..97ecbcf84 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/composer.json +++ b/vendor/rector/rector/vendor/ondram/ci-detector/composer.json @@ -55,12 +55,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\OndraM\\CiDetector\\": "src\/" + "RectorPrefix202312\\OndraM\\CiDetector\\": "src\/" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202311\\OndraM\\CiDetector\\Ci\\": "tests\/" + "RectorPrefix202312\\OndraM\\CiDetector\\Ci\\": "tests\/" } }, "scripts": { diff --git a/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php b/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php index 41d237d8c..3661b965f 100644 --- a/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php +++ b/vendor/rector/rector/vendor/ondram/ci-detector/src/Ci/AbstractCi.php @@ -1,9 +1,9 @@ \\|int\\|string\\>\\|null\\.$#" - count: 1 - path: src/Ast/NodeTraverser.php - - - - message: "#^Variable property access on PHPStan\\\\PhpDocParser\\\\Ast\\\\Node\\.$#" - count: 1 - path: src/Ast/NodeTraverser.php - - - - message: "#^Method PHPStan\\\\PhpDocParser\\\\Parser\\\\StringUnescaper\\:\\:parseEscapeSequences\\(\\) should return string but returns string\\|null\\.$#" - count: 1 - path: src/Parser/StringUnescaper.php - - - - message: "#^Variable property access on PHPStan\\\\PhpDocParser\\\\Ast\\\\Node\\.$#" - count: 2 - path: src/Printer/Printer.php diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php index d1d35d841..4d6911cdb 100644 --- a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php @@ -8,7 +8,9 @@ use PHPStan\PhpDocParser\Lexer\Lexer; use function in_array; use function str_replace; +use function strlen; use function strpos; +use function substr_compare; use function trim; class TypeParser { @@ -270,8 +272,10 @@ public function isHtml(\PHPStan\PhpDocParser\Parser\TokenIterator $tokens) : boo if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET)) { return \false; } + $endTag = ''; + $endTagSearchOffset = -strlen($endTag); while (!$tokens->isCurrentTokenType(Lexer::TOKEN_END)) { - if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET) && strpos($tokens->currentTokenValue(), '/' . $htmlTagName . '>') !== \false) { + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET) && strpos($tokens->currentTokenValue(), '/' . $htmlTagName . '>') !== \false || substr_compare($tokens->currentTokenValue(), $endTag, $endTagSearchOffset) === 0) { return \true; } $tokens->next(); diff --git a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php index f039aee87..ea366808e 100644 --- a/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php +++ b/vendor/rector/rector/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php @@ -609,6 +609,9 @@ private function printNodeFormatPreserving(Node $node, TokenIterator $originalTo if ($subStartPos < 0 || $subEndPos < 0) { throw new LogicException(); } + if ($subEndPos < $subStartPos) { + return $this->print($node); + } if ($subNode === null) { return $this->print($node); } diff --git a/vendor/rector/rector/vendor/psr/container/composer.json b/vendor/rector/rector/vendor/psr/container/composer.json index 03297c978..e039b6f23 100644 --- a/vendor/rector/rector/vendor/psr/container/composer.json +++ b/vendor/rector/rector/vendor/psr/container/composer.json @@ -22,7 +22,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Psr\\Container\\": "src\/" + "RectorPrefix202312\\Psr\\Container\\": "src\/" } }, "extra": { diff --git a/vendor/rector/rector/vendor/psr/container/src/ContainerExceptionInterface.php b/vendor/rector/rector/vendor/psr/container/src/ContainerExceptionInterface.php index 22acea01d..3dd54ed88 100644 --- a/vendor/rector/rector/vendor/psr/container/src/ContainerExceptionInterface.php +++ b/vendor/rector/rector/vendor/psr/container/src/ContainerExceptionInterface.php @@ -1,6 +1,6 @@ class !== Message::CLASS_IN ? 'CLASS' . $this->class . ' ' : ''; $type = 'TYPE' . $this->type; - $ref = new \ReflectionClass('RectorPrefix202311\\React\\Dns\\Model\\Message'); + $ref = new \ReflectionClass('RectorPrefix202312\\React\\Dns\\Model\\Message'); foreach ($ref->getConstants() as $name => $value) { if ($value === $this->type && \strpos($name, 'TYPE_') === 0) { $type = \substr($name, 5); diff --git a/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php b/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php index 6ebdd57e4..8bd147e45 100644 --- a/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php +++ b/vendor/rector/rector/vendor/react/dns/src/Query/RetryExecutor.php @@ -1,9 +1,9 @@ dumper->toBinary($request); $length = \strlen($queryData); if ($length > 0xffff) { - return \RectorPrefix202311\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); + return \RectorPrefix202312\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for TCP transport')); } $queryData = \pack('n', $length) . $queryData; if ($this->socket === null) { // create async TCP/IP connection (may take a while) $socket = @\stream_socket_client($this->nameserver, $errno, $errstr, 0, \STREAM_CLIENT_CONNECT | \STREAM_CLIENT_ASYNC_CONNECT); if ($socket === \false) { - return \RectorPrefix202311\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202312\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } // set socket to non-blocking and wait for it to become writable (connection success/rejected) \stream_set_blocking($socket, \false); diff --git a/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php b/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php index 23850ed2e..8850717e4 100644 --- a/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php +++ b/vendor/rector/rector/vendor/react/dns/src/Query/TimeoutException.php @@ -1,6 +1,6 @@ dumper->toBinary($request); if (isset($queryData[$this->maxPacketSize])) { - return \RectorPrefix202311\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); + return \RectorPrefix202312\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Query too large for UDP transport', \defined('SOCKET_EMSGSIZE') ? \SOCKET_EMSGSIZE : 90)); } // UDP connections are instant, so try connection without a loop or timeout $errno = 0; $errstr = ''; $socket = @\stream_socket_client($this->nameserver, $errno, $errstr, 0); if ($socket === \false) { - return \RectorPrefix202311\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202312\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to connect to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } // set socket to non-blocking and immediately try to send (fill write buffer) \stream_set_blocking($socket, \false); @@ -138,7 +138,7 @@ public function query(Query $query) $written = \fwrite($socket, $queryData); \restore_error_handler(); if ($written !== \strlen($queryData)) { - return \RectorPrefix202311\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); + return \RectorPrefix202312\React\Promise\reject(new \RuntimeException('DNS query for ' . $query->describe() . ' failed: Unable to send query to DNS server ' . $this->nameserver . ' (' . $errstr . ')', $errno)); } $loop = $this->loop; $deferred = new Deferred(function () use($loop, $socket, $query) { diff --git a/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php b/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php index 99319ee58..2d3e68714 100644 --- a/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php +++ b/vendor/rector/rector/vendor/react/dns/src/RecordNotFoundException.php @@ -1,6 +1,6 @@ loop = new EventLoop(); diff --git a/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php b/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php index b54b0801e..6026dfcda 100644 --- a/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php +++ b/vendor/rector/rector/vendor/react/event-loop/src/ExtLibeventLoop.php @@ -1,12 +1,12 @@ signals->add($signal, $listener); if (!isset($this->signalEvents[$signal])) { $signals = $this->signals; - $this->signalEvents[$signal] = \RectorPrefix202311\uv_signal_init($this->uv); - \RectorPrefix202311\uv_signal_start($this->signalEvents[$signal], function () use($signals, $signal) { + $this->signalEvents[$signal] = \RectorPrefix202312\uv_signal_init($this->uv); + \RectorPrefix202312\uv_signal_start($this->signalEvents[$signal], function () use($signals, $signal) { $signals->call($signal); }, $signal); } @@ -197,7 +197,7 @@ public function stop() private function addStream($stream) { if (!isset($this->streamEvents[(int) $stream])) { - $this->streamEvents[(int) $stream] = \RectorPrefix202311\uv_poll_init_socket($this->uv, $stream); + $this->streamEvents[(int) $stream] = \RectorPrefix202312\uv_poll_init_socket($this->uv, $stream); } if ($this->streamEvents[(int) $stream] !== \false) { $this->pollStream($stream); diff --git a/vendor/rector/rector/vendor/react/event-loop/src/Factory.php b/vendor/rector/rector/vendor/react/event-loop/src/Factory.php index a2835a1c8..633f4900f 100644 --- a/vendor/rector/rector/vendor/react/event-loop/src/Factory.php +++ b/vendor/rector/rector/vendor/react/event-loop/src/Factory.php @@ -1,6 +1,6 @@ getClass()) { return \true; } diff --git a/vendor/rector/rector/vendor/react/promise/src/functions_include.php b/vendor/rector/rector/vendor/react/promise/src/functions_include.php index 65cc59bba..5f8e7017b 100644 --- a/vendor/rector/rector/vendor/react/promise/src/functions_include.php +++ b/vendor/rector/rector/vendor/react/promise/src/functions_include.php @@ -1,7 +1,7 @@ unix) { // remove trailing colon from address for HHVM < 3.19: https://3v4l.org/5C1lo // note that technically ":" is a valid address, so keep this in place otherwise - if (\substr($address, -1) === ':' && \defined('RectorPrefix202311\\HHVM_VERSION_ID') && \RectorPrefix202311\HHVM_VERSION_ID < 31900) { + if (\substr($address, -1) === ':' && \defined('RectorPrefix202312\\HHVM_VERSION_ID') && \RectorPrefix202312\HHVM_VERSION_ID < 31900) { $address = (string) \substr($address, 0, -1); // @codeCoverageIgnore } diff --git a/vendor/rector/rector/vendor/react/socket/src/ConnectionInterface.php b/vendor/rector/rector/vendor/react/socket/src/ConnectionInterface.php index 4010b6b8c..9f343e9e2 100644 --- a/vendor/rector/rector/vendor/react/socket/src/ConnectionInterface.php +++ b/vendor/rector/rector/vendor/react/socket/src/ConnectionInterface.php @@ -1,8 +1,8 @@ connectors[$scheme])) { - return \RectorPrefix202311\React\Promise\reject(new \RuntimeException('No connector available for URI scheme "' . $scheme . '" (EINVAL)', \defined('SOCKET_EINVAL') ? \SOCKET_EINVAL : (\defined('PCNTL_EINVAL') ? \PCNTL_EINVAL : 22))); + return \RectorPrefix202312\React\Promise\reject(new \RuntimeException('No connector available for URI scheme "' . $scheme . '" (EINVAL)', \defined('SOCKET_EINVAL') ? \SOCKET_EINVAL : (\defined('PCNTL_EINVAL') ? \PCNTL_EINVAL : 22))); } return $this->connectors[$scheme]->connect($uri); } diff --git a/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php b/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php index 6b920bb5e..5e0fb5d21 100644 --- a/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php +++ b/vendor/rector/rector/vendor/react/socket/src/ConnectorInterface.php @@ -1,6 +1,6 @@ resolverPromises[$type]); @@ -71,29 +70,29 @@ public function connect() }; }; $that->resolverPromises[Message::TYPE_AAAA] = $that->resolve(Message::TYPE_AAAA, $reject)->then($lookupResolve(Message::TYPE_AAAA)); - $that->resolverPromises[Message::TYPE_A] = $that->resolve(Message::TYPE_A, $reject)->then(function (array $ips) use($that, &$timer) { + $that->resolverPromises[Message::TYPE_A] = $that->resolve(Message::TYPE_A, $reject)->then(function (array $ips) use($that) { // happy path: IPv6 has resolved already (or could not resolve), continue with IPv4 addresses if ($that->resolved[Message::TYPE_AAAA] === \true || !$ips) { return $ips; } // Otherwise delay processing IPv4 lookup until short timer passes or IPv6 resolves in the meantime - $deferred = new Promise\Deferred(); + $deferred = new Promise\Deferred(function () use(&$ips) { + // discard all IPv4 addresses if cancelled + $ips = array(); + }); $timer = $that->loop->addTimer($that::RESOLUTION_DELAY, function () use($deferred, $ips) { $deferred->resolve($ips); }); - $that->resolverPromises[Message::TYPE_AAAA]->then(function () use($that, $timer, $deferred, $ips) { + $that->resolverPromises[Message::TYPE_AAAA]->then(function () use($that, $timer, $deferred, &$ips) { $that->loop->cancelTimer($timer); $deferred->resolve($ips); }); return $deferred->promise(); })->then($lookupResolve(Message::TYPE_A)); - }, function ($_, $reject) use($that, &$timer) { + }, function ($_, $reject) use($that) { $reject(new \RuntimeException('Connection to ' . $that->uri . ' cancelled' . (!$that->connectionPromises ? ' during DNS lookup' : '') . ' (ECONNABORTED)', \defined('SOCKET_ECONNABORTED') ? \SOCKET_ECONNABORTED : 103)); $_ = $reject = null; $that->cleanUp(); - if ($timer instanceof TimerInterface) { - $that->loop->cancelTimer($timer); - } }); } /** @@ -197,12 +196,14 @@ public function cleanUp() { // clear list of outstanding IPs to avoid creating new connections $this->connectQueue = array(); + // cancel pending connection attempts foreach ($this->connectionPromises as $connectionPromise) { if ($connectionPromise instanceof PromiseInterface && \method_exists($connectionPromise, 'cancel')) { $connectionPromise->cancel(); } } - foreach ($this->resolverPromises as $resolverPromise) { + // cancel pending DNS resolution (cancel IPv4 first in case it is awaiting IPv6 resolution delay) + foreach (\array_reverse($this->resolverPromises) as $resolverPromise) { if ($resolverPromise instanceof PromiseInterface && \method_exists($resolverPromise, 'cancel')) { $resolverPromise->cancel(); } diff --git a/vendor/rector/rector/vendor/react/socket/src/HappyEyeBallsConnector.php b/vendor/rector/rector/vendor/react/socket/src/HappyEyeBallsConnector.php index 58048c6c5..0866d7f1e 100644 --- a/vendor/rector/rector/vendor/react/socket/src/HappyEyeBallsConnector.php +++ b/vendor/rector/rector/vendor/react/socket/src/HappyEyeBallsConnector.php @@ -1,11 +1,11 @@ then($resolve, $reject); }, function ($_, $reject) use(&$promise, $uri, &$connected) { if ($connected) { diff --git a/vendor/rector/rector/vendor/react/socket/src/SecureServer.php b/vendor/rector/rector/vendor/react/socket/src/SecureServer.php index c0ed68449..38d2bc107 100644 --- a/vendor/rector/rector/vendor/react/socket/src/SecureServer.php +++ b/vendor/rector/rector/vendor/react/socket/src/SecureServer.php @@ -1,10 +1,10 @@ services(); $services->set(TypedPropertyRector::class); diff --git a/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php b/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php index d6d1ae33c..1a59bfa46 100644 --- a/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php +++ b/vendor/rector/rector/vendor/rector/extension-installer/src/GeneratedConfig.php @@ -9,7 +9,7 @@ */ final class GeneratedConfig { - public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 9de7d58'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 89c94de'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 9d85ec1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 38014d4')); + public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 9de7d58'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 917085c'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main 90e87f1'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 5f1e96d')); private function __construct() { } diff --git a/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php b/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php index e250d85bd..d35e1f30b 100644 --- a/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php +++ b/vendor/rector/rector/vendor/rector/extension-installer/src/PluginInstaller.php @@ -3,11 +3,11 @@ declare (strict_types=1); namespace Rector\RectorInstaller; -use RectorPrefix202311\Composer\Installer\InstallationManager; -use RectorPrefix202311\Composer\IO\IOInterface; -use RectorPrefix202311\Composer\Package\PackageInterface; -use RectorPrefix202311\Composer\Repository\InstalledRepositoryInterface; -use RectorPrefix202311\Composer\Util\Filesystem as ComposerFilesystem; +use RectorPrefix202312\Composer\Installer\InstallationManager; +use RectorPrefix202312\Composer\IO\IOInterface; +use RectorPrefix202312\Composer\Package\PackageInterface; +use RectorPrefix202312\Composer\Repository\InstalledRepositoryInterface; +use RectorPrefix202312\Composer\Util\Filesystem as ComposerFilesystem; /** * @see \Rector\RectorInstaller\Tests\PluginInstallerTest */ diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-annotations-to-attributes.php b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-annotations-to-attributes.php index 10c5ed287..bbe7cccd3 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-annotations-to-attributes.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/config/sets/doctrine-annotations-to-attributes.php @@ -1,7 +1,7 @@ paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/rules']); $easyCIConfig->typesToSkip([\Rector\Core\Contract\Rector\RectorInterface::class]); diff --git a/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php b/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php index 5f442910d..b7bef06ac 100644 --- a/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php +++ b/vendor/rector/rector/vendor/rector/rector-doctrine/rector.php @@ -1,7 +1,7 @@ phpVersion(PhpVersion::PHP_81); - $rectorConfig->rule(DowngradeReadonlyClassRector::class); + $rectorConfig->rules([DowngradeReadonlyClassRector::class, DowngradeStandaloneNullTrueFalseReturnTypeRector::class]); }; diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php71.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php71.php index d14801a11..a8dab21ae 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php71.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/config/set/level/down-to-php71.php @@ -1,7 +1,7 @@ nodeFactory->createFuncCall('reset', [$array]); - $resetFuncCallExpression = new Expression($resetFuncCall); + $newStmts[] = $this->resolvePrependNewStmt($array, $resetFuncCall, $stmt); $funcCall->name = new Name('key'); if ($originalArray !== $array) { $firstArg = $args[0]; $firstArg->value = $array; } - $newStmts[] = $resetFuncCallExpression; $newStmts[] = $stmt; return $newStmts; } @@ -172,8 +174,7 @@ private function refactorArrayKeyLast(FuncCall $funcCall, $stmt) : ?array $newStmts[] = new Expression(new Assign($array, $originalArray)); } $endFuncCall = $this->nodeFactory->createFuncCall('end', [$array]); - $endFuncCallExpression = new Expression($endFuncCall); - $newStmts[] = $endFuncCallExpression; + $newStmts[] = $this->resolvePrependNewStmt($array, $endFuncCall, $stmt); $funcCall->name = new Name('key'); if ($originalArray !== $array) { $firstArg->value = $array; @@ -181,6 +182,19 @@ private function refactorArrayKeyLast(FuncCall $funcCall, $stmt) : ?array $newStmts[] = $stmt; return $newStmts; } + /** + * @param \PhpParser\Node\Expr|\PhpParser\Node\Expr\Variable $array + * @return \PhpParser\Node\Stmt\Expression|\PhpParser\Node\Stmt\If_ + */ + private function resolvePrependNewStmt($array, FuncCall $funcCall, Stmt $stmt) + { + if (!$stmt instanceof If_ || $stmt->cond instanceof FuncCall || !$stmt->cond instanceof BooleanOr) { + return new Expression($funcCall); + } + $if = new If_($this->nodeFactory->createFuncCall('is_array', [$array])); + $if->stmts[] = new Expression($funcCall); + return $if; + } /** * @return \PhpParser\Node\Expr|\PhpParser\Node\Expr\Variable */ diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php index 0daf6743a..cb9c7adec 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php @@ -21,7 +21,7 @@ use Rector\NodeFactory\DoctrineAnnotationFactory; use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample; use Symplify\RuleDocGenerator\ValueObject\RuleDefinition; -use RectorPrefix202311\Webmozart\Assert\Assert; +use RectorPrefix202312\Webmozart\Assert\Assert; /** * @changelog https://php.watch/articles/php-attributes#syntax * diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php new file mode 100644 index 000000000..b044ee148 --- /dev/null +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/rules/DowngradePhp82/Rector/FunctionLike/DowngradeStandaloneNullTrueFalseReturnTypeRector.php @@ -0,0 +1,159 @@ +phpDocInfoFactory = $phpDocInfoFactory; + $this->phpDocTypeChanger = $phpDocTypeChanger; + $this->astResolver = $astResolver; + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [FunctionLike::class]; + } + public function getRuleDefinition() : RuleDefinition + { + return new RuleDefinition('Downgrade standalone return null, true, or false', [new CodeSample(<<<'CODE_SAMPLE' +final class SomeClass +{ + public function run(): null + { + return null; + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +final class SomeClass +{ + public function run(): mixed + { + return null; + } +} +CODE_SAMPLE +)]); + } + /** + * @param ClassMethod|Function_|Closure|ArrowFunction $node + */ + public function refactor(Node $node) : ?Node + { + $returnType = $node->returnType; + if (!$returnType instanceof Identifier) { + return null; + } + $returnTypeName = $this->getName($returnType); + if (!\in_array($returnTypeName, ['null', 'false', 'true'], \true)) { + return null; + } + // in closure and arrow function can't add `@return null` docblock as they are Expr + // that rely on Stmt + $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); + $this->phpDocTypeChanger->changeReturnType($node, $phpDocInfo, $this->resolveType($returnType)); + $node->returnType = $this->resolveNativeType($node, $returnType); + return $node; + } + private function resolveType(Identifier $identifier) : Type + { + $nodeName = $this->getName($identifier); + if ($nodeName === 'null') { + return new NullType(); + } + if ($nodeName === 'false') { + return new ConstantBooleanType(\false); + } + return new ConstantBooleanType(\true); + } + /** + * @return \PhpParser\Node\ComplexType|\PhpParser\Node\Identifier + */ + private function resolveNativeType(Node $node, Identifier $identifier) + { + if ($node instanceof ClassMethod) { + $returnTypeFromParent = $this->resolveParentNativeReturnType($node); + if ($returnTypeFromParent instanceof UnionType || $returnTypeFromParent instanceof NullableType) { + $this->traverseNodesWithCallable($returnTypeFromParent, static function (Node $subNode) : Node { + $subNode->setAttribute(AttributeKey::ORIGINAL_NODE, null); + return $subNode; + }); + return $returnTypeFromParent; + } + } + $nodeName = $this->getName($identifier); + if ($nodeName === 'null') { + return new Identifier('mixed'); + } + return new Identifier('bool'); + } + private function resolveParentNativeReturnType(ClassMethod $classMethod) : ?Node + { + $scope = $classMethod->getAttribute(AttributeKey::SCOPE); + if ($scope === null) { + return null; + } + $classReflection = $scope->getClassReflection(); + if ($classReflection === null) { + return null; + } + $methodName = $classMethod->name->toString(); + $parents = \array_merge(\is_array($classReflection->getParents()) ? $classReflection->getParents() : \iterator_to_array($classReflection->getParents()), \is_array($classReflection->getInterfaces()) ? $classReflection->getInterfaces() : \iterator_to_array($classReflection->getInterfaces())); + foreach ($parents as $parent) { + if (!$parent->hasMethod($methodName)) { + continue; + } + $parentClassMethod = $this->astResolver->resolveClassMethod($parent->getName(), $methodName); + if (!$parentClassMethod instanceof ClassMethod) { + continue; + } + return $parentClassMethod->returnType; + } + return null; + } +} diff --git a/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php b/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php index bfb4f99e5..753fdffa1 100644 --- a/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php +++ b/vendor/rector/rector/vendor/rector/rector-downgrade-php/stubs/Symfony/Component/Annotation/Route.php @@ -1,7 +1,7 @@ paths([__DIR__ . '/config', __DIR__ . '/src', __DIR__ . '/rules']); $easyCIConfig->typesToSkip([RectorInterface::class, SetListInterface::class]); diff --git a/vendor/rector/rector/vendor/rector/rector-phpunit/rector.php b/vendor/rector/rector/vendor/rector/rector-phpunit/rector.php index e95a9b5e5..5f922b0c2 100644 --- a/vendor/rector/rector/vendor/rector/rector-phpunit/rector.php +++ b/vendor/rector/rector/vendor/rector/rector-phpunit/rector.php @@ -1,7 +1,7 @@ rules([SwiftCreateMessageToNewEmailRector::class, SwiftSetBodyToHtmlPlainMethodCallRector::class]); + $rectorConfig->ruleWithConfiguration(RenameClassRector::class, [ + 'Swift_Mailer' => 'Symfony\\Component\\Mailer\\MailerInterface', + 'Swift_Message' => 'Symfony\\Component\\Mime\\Email', + // message + 'Swift_Mime_SimpleMessage' => 'Symfony\\Component\\Mime\\RawMessage', + // transport + 'Swift_SmtpTransport' => 'Symfony\\Component\\Mailer\\Transport\\Smtp\\EsmtpTransport', + 'Swift_FailoverTransport' => 'Symfony\\Component\\Mailer\\Transport\\FailoverTransport', + 'Swift_SendmailTransport' => 'Symfony\\Component\\Mailer\\Transport\\SendmailTransport', + ]); +}; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/annotations-to-attributes.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/annotations-to-attributes.php index 9c34e666c..99eb245e3 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/annotations-to-attributes.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/annotations-to-attributes.php @@ -1,7 +1,7 @@ sets([SymfonySetList::SYMFONY_64, SymfonyLevelSetList::UP_TO_SYMFONY_63]); +}; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php index 0179bf985..6c071c3af 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony-code-quality.php @@ -1,7 +1,7 @@ rules([ - KernelTestCaseContainerPropertyDeprecationRector::class, - CommandDescriptionToPropertyRector::class, - // @see https://symfony.com/blog/the-end-of-swiftmailer - SwiftCreateMessageToNewEmailRector::class, - SwiftSetBodyToHtmlPlainMethodCallRector::class, - ]); - $rectorConfig->ruleWithConfiguration(RenameClassRector::class, [ - 'Swift_Mailer' => 'Symfony\\Component\\Mailer\\MailerInterface', - 'Swift_Message' => 'Symfony\\Component\\Mime\\Email', - // message - 'Swift_Mime_SimpleMessage' => 'Symfony\\Component\\Mime\\RawMessage', - // transport - 'Swift_SmtpTransport' => 'Symfony\\Component\\Mailer\\Transport\\Smtp\\EsmtpTransport', - 'Swift_FailoverTransport' => 'Symfony\\Component\\Mailer\\Transport\\FailoverTransport', - 'Swift_SendmailTransport' => 'Symfony\\Component\\Mailer\\Transport\\SendmailTransport', - ]); + $rectorConfig->rules([KernelTestCaseContainerPropertyDeprecationRector::class, CommandDescriptionToPropertyRector::class]); }; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony54.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony54.php index 493ca9d20..40a504fdd 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony54.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/symfony/symfony54.php @@ -1,7 +1,7 @@ ruleWithConfiguration(RenameClassRector::class, ['Symfony\\Component\\HttpKernel\\UriSigner' => 'Symfony\\Component\\HttpFoundation\\UriSigner', 'Symfony\\Component\\HttpKernel\\Debug\\FileLinkFormatter' => 'Symfony\\Component\\ErrorHandler\\ErrorRenderer\\FileLinkFormatter']); +}; diff --git a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/twig/level/up-to-twig-112.php b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/twig/level/up-to-twig-112.php index 49eb27b49..0b3b7f19f 100644 --- a/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/twig/level/up-to-twig-112.php +++ b/vendor/rector/rector/vendor/rector/rector-symfony/config/sets/twig/level/up-to-twig-112.php @@ -1,7 +1,7 @@ configureIO($input, $output); try { $exitCode = $this->doRun($input, $output); - } catch (\Exception $e) { - if (!$this->catchExceptions) { + } catch (\Throwable $e) { + if ($e instanceof \Exception && !$this->catchExceptions) { + throw $e; + } + if (!$e instanceof \Exception && !$this->catchErrors) { throw $e; } $renderException($e); @@ -413,6 +420,13 @@ public function setCatchExceptions(bool $boolean) { $this->catchExceptions = $boolean; } + /** + * Sets whether to catch errors or not during commands execution. + */ + public function setCatchErrors(bool $catchErrors = \true) : void + { + $this->catchErrors = $catchErrors; + } /** * Gets whether to automatically exit after a command execution or not. */ @@ -919,7 +933,9 @@ protected function doRunCommand(Command $command, InputInterface $input, OutputI } } if (\false !== $exitCode) { - exit($exitCode); + $event = new ConsoleTerminateEvent($command, $event->getInput(), $event->getOutput(), $exitCode, $signal); + $this->dispatcher->dispatch($event, ConsoleEvents::TERMINATE); + exit($event->getExitCode()); } }); } diff --git a/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php b/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php index 0dc0d959e..5d3aa178f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Attribute/AsCommand.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Attribute; +namespace RectorPrefix202312\Symfony\Component\Console\Attribute; /** * Service tag to autoconfigure commands. diff --git a/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php b/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php index 8618e815e..b0a2a08e9 100644 --- a/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php +++ b/vendor/rector/rector/vendor/symfony/console/CI/GithubActionReporter.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\CI; +namespace RectorPrefix202312\Symfony\Component\Console\CI; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * Utility class for Github actions. * diff --git a/vendor/rector/rector/vendor/symfony/console/Color.php b/vendor/rector/rector/vendor/symfony/console/Color.php index 9f98ee720..551699781 100644 --- a/vendor/rector/rector/vendor/symfony/console/Color.php +++ b/vendor/rector/rector/vendor/symfony/console/Color.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console; +namespace RectorPrefix202312\Symfony\Component\Console; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Fabien Potencier */ diff --git a/vendor/rector/rector/vendor/symfony/console/Command/Command.php b/vendor/rector/rector/vendor/symfony/console/Command/Command.php index 0f17676c5..a67f171f3 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/Command.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/Command.php @@ -8,23 +8,23 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Command; +namespace RectorPrefix202312\Symfony\Component\Console\Command; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202311\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202311\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202311\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202312\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202312\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * Base class for all commands. * @@ -305,7 +305,7 @@ public function run(InputInterface $input, OutputInterface $output) : int \cli_set_process_title($this->processTitle); } } - } elseif (\function_exists('RectorPrefix202311\\setproctitle')) { + } elseif (\function_exists('RectorPrefix202312\\setproctitle')) { setproctitle($this->processTitle); } elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output->getVerbosity()) { $output->writeln('Install the proctitle PECL to be able to change the process title.'); diff --git a/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php index 5749145d0..8b304994c 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/CompleteCommand.php @@ -8,20 +8,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Command; +namespace RectorPrefix202312\Symfony\Component\Console\Command; -use RectorPrefix202311\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Completion\Output\BashCompletionOutput; -use RectorPrefix202311\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Completion\Output\FishCompletionOutput; -use RectorPrefix202311\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; -use RectorPrefix202311\Symfony\Component\Console\Exception\CommandNotFoundException; -use RectorPrefix202311\Symfony\Component\Console\Exception\ExceptionInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Completion\Output\BashCompletionOutput; +use RectorPrefix202312\Symfony\Component\Console\Completion\Output\CompletionOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Completion\Output\FishCompletionOutput; +use RectorPrefix202312\Symfony\Component\Console\Completion\Output\ZshCompletionOutput; +use RectorPrefix202312\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202312\Symfony\Component\Console\Exception\ExceptionInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * Responsible for providing the values to the shell completion. * @@ -38,7 +38,13 @@ final class CompleteCommand extends Command * @deprecated since Symfony 6.1 */ protected static $defaultDescription = 'Internal command to provide shell completion suggestions'; + /** + * @var mixed[] + */ private $completionOutputs; + /** + * @var bool + */ private $isDebug = \false; /** * @param array> $completionOutputs A list of additional completion outputs, with shell name as key and FQCN as value diff --git a/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php index 119e84725..3218da801 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/DumpCompletionCommand.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Command; +namespace RectorPrefix202312\Symfony\Component\Console\Command; -use RectorPrefix202311\Symfony\Component\Console\Attribute\AsCommand; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Process\Process; +use RectorPrefix202312\Symfony\Component\Console\Attribute\AsCommand; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Process\Process; /** * Dumps the completion script for the current shell. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php index 0a6aaaf3b..77fdcbd6e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/HelpCommand.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Command; +namespace RectorPrefix202312\Symfony\Component\Console\Command; -use RectorPrefix202311\Symfony\Component\Console\Descriptor\ApplicationDescription; -use RectorPrefix202311\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202312\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * HelpCommand displays the help for a given command. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php index 4a0033914..e59ba09f2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/LazyCommand.php @@ -8,17 +8,17 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Command; +namespace RectorPrefix202312\Symfony\Component\Console\Command; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202311\Symfony\Component\Console\Helper\HelperInterface; -use RectorPrefix202311\Symfony\Component\Console\Helper\HelperSet; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202312\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202312\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * @author Nicolas Grekas */ diff --git a/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php index bb7a159ca..c8bb59722 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/ListCommand.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Command; - -use RectorPrefix202311\Symfony\Component\Console\Descriptor\ApplicationDescription; -use RectorPrefix202311\Symfony\Component\Console\Helper\DescriptorHelper; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +namespace RectorPrefix202312\Symfony\Component\Console\Command; + +use RectorPrefix202312\Symfony\Component\Console\Descriptor\ApplicationDescription; +use RectorPrefix202312\Symfony\Component\Console\Helper\DescriptorHelper; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * ListCommand displays the list of all available commands for the application. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php b/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php index e49b4ff2e..c932a033a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/LockableTrait.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Command; +namespace RectorPrefix202312\Symfony\Component\Console\Command; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202311\Symfony\Component\Lock\LockFactory; -use RectorPrefix202311\Symfony\Component\Lock\LockInterface; -use RectorPrefix202311\Symfony\Component\Lock\Store\FlockStore; -use RectorPrefix202311\Symfony\Component\Lock\Store\SemaphoreStore; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Lock\LockFactory; +use RectorPrefix202312\Symfony\Component\Lock\LockInterface; +use RectorPrefix202312\Symfony\Component\Lock\Store\FlockStore; +use RectorPrefix202312\Symfony\Component\Lock\Store\SemaphoreStore; /** * Basic lock feature for commands. * diff --git a/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php b/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php index a2af7b4dd..bb6b9dca5 100644 --- a/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Command/SignalableCommandInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Command; +namespace RectorPrefix202312\Symfony\Component\Console\Command; /** * Interface for command reacting to signal. @@ -25,6 +25,7 @@ public function getSubscribedSignals() : array; * The method will be called when the application is signaled. * * @param int|false $previousExitCode + * * @return int|false The exit code to return or false to continue the normal execution */ public function handleSignal(int $signal); diff --git a/vendor/rector/rector/vendor/symfony/console/Command/TraceableCommand.php b/vendor/rector/rector/vendor/symfony/console/Command/TraceableCommand.php new file mode 100644 index 000000000..ceeb740f0 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/console/Command/TraceableCommand.php @@ -0,0 +1,340 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Console\Command; + +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Helper\HelperInterface; +use RectorPrefix202312\Symfony\Component\Console\Helper\HelperSet; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Stopwatch\Stopwatch; +/** + * @internal + * + * @author Jules Pietri + */ +final class TraceableCommand extends Command implements SignalableCommandInterface +{ + /** + * @readonly + * @var \Symfony\Component\Stopwatch\Stopwatch + */ + private $stopwatch; + /** + * @readonly + * @var \Symfony\Component\Console\Command\Command + */ + public $command; + /** + * @var int + */ + public $exitCode; + /** + * @var int|null + */ + public $interruptedBySignal; + /** + * @var bool + */ + public $ignoreValidation; + /** + * @var bool + */ + public $isInteractive = \false; + /** + * @var string + */ + public $duration = 'n/a'; + /** + * @var string + */ + public $maxMemoryUsage = 'n/a'; + /** + * @var \Symfony\Component\Console\Input\InputInterface + */ + public $input; + /** + * @var \Symfony\Component\Console\Output\OutputInterface + */ + public $output; + /** @var array */ + public $arguments; + /** @var array */ + public $options; + /** @var array */ + public $interactiveInputs = []; + /** + * @var mixed[] + */ + public $handledSignals = []; + public function __construct(Command $command, Stopwatch $stopwatch) + { + $this->stopwatch = $stopwatch; + if ($command instanceof LazyCommand) { + $command = $command->getCommand(); + } + $this->command = $command; + // prevent call to self::getDefaultDescription() + $this->setDescription($command->getDescription()); + parent::__construct($command->getName()); + // init below enables calling {@see parent::run()} + [$code, $processTitle, $ignoreValidationErrors] = \Closure::bind(function () { + return [$this->code, $this->processTitle, $this->ignoreValidationErrors]; + }, $command, Command::class)(); + if (\is_callable($code)) { + $this->setCode($code); + } + if ($processTitle) { + parent::setProcessTitle($processTitle); + } + if ($ignoreValidationErrors) { + parent::ignoreValidationErrors(); + } + $this->ignoreValidation = $ignoreValidationErrors; + } + /** + * @return mixed + */ + public function __call(string $name, array $arguments) + { + return $this->command->{$name}(...$arguments); + } + public function getSubscribedSignals() : array + { + return $this->command instanceof SignalableCommandInterface ? $this->command->getSubscribedSignals() : []; + } + /** + * @param int|false $previousExitCode + * @return int|false + */ + public function handleSignal(int $signal, $previousExitCode = 0) + { + if (!$this->command instanceof SignalableCommandInterface) { + return \false; + } + $event = $this->stopwatch->start($this->getName() . '.handle_signal'); + $exit = $this->command->handleSignal($signal, $previousExitCode); + $event->stop(); + if (!isset($this->handledSignals[$signal])) { + $this->handledSignals[$signal] = ['handled' => 0, 'duration' => 0, 'memory' => 0]; + } + ++$this->handledSignals[$signal]['handled']; + $this->handledSignals[$signal]['duration'] += $event->getDuration(); + $this->handledSignals[$signal]['memory'] = \max($this->handledSignals[$signal]['memory'], $event->getMemory() >> 20); + return $exit; + } + /** + * {@inheritdoc} + * + * Calling parent method is required to be used in {@see parent::run()}. + */ + public function ignoreValidationErrors() : void + { + $this->ignoreValidation = \true; + $this->command->ignoreValidationErrors(); + parent::ignoreValidationErrors(); + } + public function setApplication(Application $application = null) : void + { + $this->command->setApplication($application); + } + public function getApplication() : ?Application + { + return $this->command->getApplication(); + } + public function setHelperSet(HelperSet $helperSet) : void + { + $this->command->setHelperSet($helperSet); + } + public function getHelperSet() : ?HelperSet + { + return $this->command->getHelperSet(); + } + public function isEnabled() : bool + { + return $this->command->isEnabled(); + } + public function complete(CompletionInput $input, CompletionSuggestions $suggestions) : void + { + $this->command->complete($input, $suggestions); + } + /** + * {@inheritdoc} + * + * Calling parent method is required to be used in {@see parent::run()}. + * @return static + */ + public function setCode(callable $code) + { + $this->command->setCode($code); + return parent::setCode(function (InputInterface $input, OutputInterface $output) use($code) : int { + $event = $this->stopwatch->start($this->getName() . '.code'); + $this->exitCode = $code($input, $output); + $event->stop(); + return $this->exitCode; + }); + } + /** + * @internal + */ + public function mergeApplicationDefinition(bool $mergeArgs = \true) : void + { + $this->command->mergeApplicationDefinition($mergeArgs); + } + /** + * @param mixed[]|\Symfony\Component\Console\Input\InputDefinition $definition + * @return static + */ + public function setDefinition($definition) + { + $this->command->setDefinition($definition); + return $this; + } + public function getDefinition() : InputDefinition + { + return $this->command->getDefinition(); + } + public function getNativeDefinition() : InputDefinition + { + return $this->command->getNativeDefinition(); + } + /** + * @param mixed[]|\Closure $suggestedValues + * @param mixed $default + * @return static + */ + public function addArgument(string $name, int $mode = null, string $description = '', $default = null, $suggestedValues = []) + { + $this->command->addArgument($name, $mode, $description, $default, $suggestedValues); + return $this; + } + /** + * @param string|mixed[] $shortcut + * @param mixed[]|\Closure $suggestedValues + * @param mixed $default + * @return static + */ + public function addOption(string $name, $shortcut = null, int $mode = null, string $description = '', $default = null, $suggestedValues = []) + { + $this->command->addOption($name, $shortcut, $mode, $description, $default, $suggestedValues); + return $this; + } + /** + * {@inheritdoc} + * + * Calling parent method is required to be used in {@see parent::run()}. + * @return static + */ + public function setProcessTitle(string $title) + { + $this->command->setProcessTitle($title); + return parent::setProcessTitle($title); + } + /** + * @return static + */ + public function setHelp(string $help) + { + $this->command->setHelp($help); + return $this; + } + public function getHelp() : string + { + return $this->command->getHelp(); + } + public function getProcessedHelp() : string + { + return $this->command->getProcessedHelp(); + } + public function getSynopsis(bool $short = \false) : string + { + return $this->command->getSynopsis($short); + } + /** + * @return static + */ + public function addUsage(string $usage) + { + $this->command->addUsage($usage); + return $this; + } + public function getUsages() : array + { + return $this->command->getUsages(); + } + public function getHelper(string $name) : HelperInterface + { + return $this->command->getHelper($name); + } + public function run(InputInterface $input, OutputInterface $output) : int + { + $this->input = $input; + $this->output = $output; + $this->arguments = $input->getArguments(); + $this->options = $input->getOptions(); + $event = $this->stopwatch->start($this->getName(), 'command'); + try { + $this->exitCode = parent::run($input, $output); + } finally { + $event->stop(); + if ($output instanceof ConsoleOutputInterface && $output->isDebug()) { + $output->getErrorOutput()->writeln((string) $event); + } + $this->duration = $event->getDuration() . ' ms'; + $this->maxMemoryUsage = ($event->getMemory() >> 20) . ' MiB'; + if ($this->isInteractive) { + $this->extractInteractiveInputs($input->getArguments(), $input->getOptions()); + } + } + return $this->exitCode; + } + protected function initialize(InputInterface $input, OutputInterface $output) : void + { + $event = $this->stopwatch->start($this->getName() . '.init', 'command'); + $this->command->initialize($input, $output); + $event->stop(); + } + protected function interact(InputInterface $input, OutputInterface $output) : void + { + if (!($this->isInteractive = Command::class !== (new \ReflectionMethod($this->command, 'interact'))->getDeclaringClass()->getName())) { + return; + } + $event = $this->stopwatch->start($this->getName() . '.interact', 'command'); + $this->command->interact($input, $output); + $event->stop(); + } + protected function execute(InputInterface $input, OutputInterface $output) : int + { + $event = $this->stopwatch->start($this->getName() . '.execute', 'command'); + $exitCode = $this->command->execute($input, $output); + $event->stop(); + return $exitCode; + } + private function extractInteractiveInputs(array $arguments, array $options) : void + { + foreach ($arguments as $argName => $argValue) { + if (\array_key_exists($argName, $this->arguments) && $this->arguments[$argName] === $argValue) { + continue; + } + $this->interactiveInputs[$argName] = $argValue; + } + foreach ($options as $optName => $optValue) { + if (\array_key_exists($optName, $this->options) && $this->options[$optName] === $optValue) { + continue; + } + $this->interactiveInputs['--' . $optName] = $optValue; + } + } +} diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php index 0cc6682a9..51e2a3740 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/CommandLoaderInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202312\Symfony\Component\Console\CommandLoader; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Exception\CommandNotFoundException; /** * @author Robin Chalas */ diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php index 60a897898..88bf0cb7a 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/ContainerCommandLoader.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202312\Symfony\Component\Console\CommandLoader; -use RectorPrefix202311\Psr\Container\ContainerInterface; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202312\Psr\Container\ContainerInterface; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Exception\CommandNotFoundException; /** * Loads commands from a PSR-11 container. * diff --git a/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php b/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php index bd5f55a11..75d94c687 100644 --- a/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php +++ b/vendor/rector/rector/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\CommandLoader; +namespace RectorPrefix202312\Symfony\Component\Console\CommandLoader; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Exception\CommandNotFoundException; /** * A simple command loader using factories to instantiate commands lazily. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php index 6c694a297..2b05c2a6e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionInput.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Completion; +namespace RectorPrefix202312\Symfony\Component\Console\Completion; -use RectorPrefix202311\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202311\Symfony\Component\Console\Input\ArgvInput; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Console\Input\ArgvInput; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; /** * An input specialized for shell completion. * @@ -28,10 +28,25 @@ final class CompletionInput extends ArgvInput public const TYPE_OPTION_VALUE = 'option_value'; public const TYPE_OPTION_NAME = 'option_name'; public const TYPE_NONE = 'none'; + /** + * @var mixed[] + */ private $tokens; + /** + * @var int + */ private $currentIndex; + /** + * @var string + */ private $completionType; + /** + * @var string|null + */ private $completionName; + /** + * @var string + */ private $completionValue = ''; /** * Converts a terminal string into tokens. @@ -122,7 +137,9 @@ public function bind(InputDefinition $definition) : void * TYPE_OPTION_NAME when completing the name of an input option * TYPE_NONE when nothing should be completed * - * @return string One of self::TYPE_* constants. TYPE_OPTION_NAME and TYPE_NONE are already implemented by the Console component + * TYPE_OPTION_NAME and TYPE_NONE are already implemented by the Console component. + * + * @return self::TYPE_* */ public function getCompletionType() : string { diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php index 41338e746..81e212a03 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/CompletionSuggestions.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Completion; +namespace RectorPrefix202312\Symfony\Component\Console\Completion; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; /** * Stores all completion suggestions for the current input. * @@ -18,7 +18,13 @@ */ final class CompletionSuggestions { + /** + * @var mixed[] + */ private $valueSuggestions = []; + /** + * @var mixed[] + */ private $optionSuggestions = []; /** * Add a suggested value for an input option or argument. diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php index f4eb1adf8..e239a18a6 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/BashCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Completion\Output; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * @author Wouter de Jong */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php index 6e3a05b89..c3f7c6b9b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/CompletionOutputInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Completion\Output; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * Transforms the {@see CompletionSuggestions} object into output readable by the shell completion. * diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php index d4d30306a..9532fe06a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/FishCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Completion\Output; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * @author Guillaume Aveline */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php b/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php index 370d65d6d..9db085e82 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Output/ZshCompletionOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Completion\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Completion\Output; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * @author Jitendra A */ diff --git a/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php b/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php index 7f27550ff..4bf6ddf4a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Completion/Suggestion.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Completion; +namespace RectorPrefix202312\Symfony\Component\Console\Completion; /** * Represents a single suggested value. diff --git a/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php b/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php index 66b2c89eb..638472171 100644 --- a/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php +++ b/vendor/rector/rector/vendor/symfony/console/ConsoleEvents.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console; +namespace RectorPrefix202312\Symfony\Component\Console; -use RectorPrefix202311\Symfony\Component\Console\Event\ConsoleCommandEvent; -use RectorPrefix202311\Symfony\Component\Console\Event\ConsoleErrorEvent; -use RectorPrefix202311\Symfony\Component\Console\Event\ConsoleSignalEvent; -use RectorPrefix202311\Symfony\Component\Console\Event\ConsoleTerminateEvent; +use RectorPrefix202312\Symfony\Component\Console\Event\ConsoleCommandEvent; +use RectorPrefix202312\Symfony\Component\Console\Event\ConsoleErrorEvent; +use RectorPrefix202312\Symfony\Component\Console\Event\ConsoleSignalEvent; +use RectorPrefix202312\Symfony\Component\Console\Event\ConsoleTerminateEvent; /** * Contains all events dispatched by an Application. * diff --git a/vendor/rector/rector/vendor/symfony/console/Cursor.php b/vendor/rector/rector/vendor/symfony/console/Cursor.php index e86b5812d..b7c3a3f2b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Cursor.php +++ b/vendor/rector/rector/vendor/symfony/console/Cursor.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console; +namespace RectorPrefix202312\Symfony\Component\Console; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * @author Pierre du Plessis */ @@ -20,6 +20,7 @@ final class Cursor * @var \Symfony\Component\Console\Output\OutputInterface */ private $output; + /** @var resource */ private $input; /** * @param resource|null $input diff --git a/vendor/rector/rector/vendor/symfony/console/DataCollector/CommandDataCollector.php b/vendor/rector/rector/vendor/symfony/console/DataCollector/CommandDataCollector.php new file mode 100644 index 000000000..851ef6ee7 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/console/DataCollector/CommandDataCollector.php @@ -0,0 +1,182 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Console\DataCollector; + +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Debug\CliRequest; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\SignalRegistry\SignalMap; +use RectorPrefix202312\Symfony\Component\HttpFoundation\Request; +use RectorPrefix202312\Symfony\Component\HttpFoundation\Response; +use RectorPrefix202312\Symfony\Component\HttpKernel\DataCollector\DataCollector; +use RectorPrefix202312\Symfony\Component\VarDumper\Cloner\Data; +/** + * @internal + * + * @author Jules Pietri + */ +final class CommandDataCollector extends DataCollector +{ + public function collect(Request $request, Response $response, \Throwable $exception = null) : void + { + if (!$request instanceof CliRequest) { + return; + } + $command = $request->command; + $application = $command->getApplication(); + $this->data = ['command' => $this->cloneVar($command->command), 'exit_code' => $command->exitCode, 'interrupted_by_signal' => $command->interruptedBySignal, 'duration' => $command->duration, 'max_memory_usage' => $command->maxMemoryUsage, 'verbosity_level' => (function () use($command) { + switch ($command->output->getVerbosity()) { + case OutputInterface::VERBOSITY_QUIET: + return 'quiet'; + case OutputInterface::VERBOSITY_NORMAL: + return 'normal'; + case OutputInterface::VERBOSITY_VERBOSE: + return 'verbose'; + case OutputInterface::VERBOSITY_VERY_VERBOSE: + return 'very verbose'; + case OutputInterface::VERBOSITY_DEBUG: + return 'debug'; + } + })(), 'interactive' => $command->isInteractive, 'validate_input' => !$command->ignoreValidation, 'enabled' => $command->isEnabled(), 'visible' => !$command->isHidden(), 'input' => $this->cloneVar($command->input), 'output' => $this->cloneVar($command->output), 'interactive_inputs' => \array_map(\Closure::fromCallable([$this, 'cloneVar']), $command->interactiveInputs), 'signalable' => $command->getSubscribedSignals(), 'handled_signals' => $command->handledSignals, 'helper_set' => \array_map(\Closure::fromCallable([$this, 'cloneVar']), \iterator_to_array($command->getHelperSet()))]; + $baseDefinition = $application->getDefinition(); + foreach ($command->arguments as $argName => $argValue) { + if ($baseDefinition->hasArgument($argName)) { + $this->data['application_inputs'][$argName] = $this->cloneVar($argValue); + } else { + $this->data['arguments'][$argName] = $this->cloneVar($argValue); + } + } + foreach ($command->options as $optName => $optValue) { + if ($baseDefinition->hasOption($optName)) { + $this->data['application_inputs']['--' . $optName] = $this->cloneVar($optValue); + } else { + $this->data['options'][$optName] = $this->cloneVar($optValue); + } + } + } + public function getName() : string + { + return 'command'; + } + /** + * @return array{ + * class?: class-string, + * executor?: string, + * file: string, + * line: int, + * } + */ + public function getCommand() : array + { + $class = $this->data['command']->getType(); + $r = new \ReflectionMethod($class, 'execute'); + if (Command::class !== $r->getDeclaringClass()) { + return ['executor' => $class . '::' . $r->name, 'file' => $r->getFileName(), 'line' => $r->getStartLine()]; + } + $r = new \ReflectionClass($class); + return ['class' => $class, 'file' => $r->getFileName(), 'line' => $r->getStartLine()]; + } + public function getInterruptedBySignal() : ?string + { + if (isset($this->data['interrupted_by_signal'])) { + return \sprintf('%s (%d)', SignalMap::getSignalName($this->data['interrupted_by_signal']), $this->data['interrupted_by_signal']); + } + return null; + } + public function getDuration() : string + { + return $this->data['duration']; + } + public function getMaxMemoryUsage() : string + { + return $this->data['max_memory_usage']; + } + public function getVerbosityLevel() : string + { + return $this->data['verbosity_level']; + } + public function getInteractive() : bool + { + return $this->data['interactive']; + } + public function getValidateInput() : bool + { + return $this->data['validate_input']; + } + public function getEnabled() : bool + { + return $this->data['enabled']; + } + public function getVisible() : bool + { + return $this->data['visible']; + } + public function getInput() : Data + { + return $this->data['input']; + } + public function getOutput() : Data + { + return $this->data['output']; + } + /** + * @return Data[] + */ + public function getArguments() : array + { + return $this->data['arguments'] ?? []; + } + /** + * @return Data[] + */ + public function getOptions() : array + { + return $this->data['options'] ?? []; + } + /** + * @return Data[] + */ + public function getApplicationInputs() : array + { + return $this->data['application_inputs'] ?? []; + } + /** + * @return Data[] + */ + public function getInteractiveInputs() : array + { + return $this->data['interactive_inputs'] ?? []; + } + public function getSignalable() : array + { + return \array_map(static function (int $signal) : string { + return \sprintf('%s (%d)', SignalMap::getSignalName($signal), $signal); + }, $this->data['signalable']); + } + public function getHandledSignals() : array + { + $keys = \array_map(static function (int $signal) : string { + return \sprintf('%s (%d)', SignalMap::getSignalName($signal), $signal); + }, \array_keys($this->data['handled_signals'])); + return \array_combine($keys, \array_values($this->data['handled_signals'])); + } + /** + * @return Data[] + */ + public function getHelperSet() : array + { + return $this->data['helper_set'] ?? []; + } + public function reset() : void + { + $this->data = []; + } +} diff --git a/vendor/rector/rector/vendor/symfony/console/Debug/CliRequest.php b/vendor/rector/rector/vendor/symfony/console/Debug/CliRequest.php new file mode 100644 index 000000000..66805ee02 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/console/Debug/CliRequest.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Console\Debug; + +use RectorPrefix202312\Symfony\Component\Console\Command\TraceableCommand; +use RectorPrefix202312\Symfony\Component\HttpFoundation\Request; +use RectorPrefix202312\Symfony\Component\HttpFoundation\Response; +/** + * @internal + */ +final class CliRequest extends Request +{ + /** + * @readonly + * @var \Symfony\Component\Console\Command\TraceableCommand + */ + public $command; + public function __construct(TraceableCommand $command) + { + $this->command = $command; + parent::__construct(attributes: ['_controller' => \get_class($command->command), '_virtual_type' => 'command'], server: $_SERVER); + } + // Methods below allow to populate a profile, thus enable search and filtering + public function getUri() : string + { + if ($this->server->has('SYMFONY_CLI_BINARY_NAME')) { + $binary = $this->server->get('SYMFONY_CLI_BINARY_NAME') . ' console'; + } else { + $binary = $this->server->get('argv')[0]; + } + return $binary . ' ' . $this->command->input; + } + public function getMethod() : string + { + return $this->command->isInteractive ? 'INTERACTIVE' : 'BATCH'; + } + public function getResponse() : Response + { + return new class($this->command->exitCode) extends Response + { + /** + * @readonly + * @var int + */ + private $exitCode; + public function __construct(int $exitCode) + { + $this->exitCode = $exitCode; + parent::__construct(); + } + public function getStatusCode() : int + { + return $this->exitCode; + } + }; + } + public function getClientIp() : string + { + $application = $this->command->getApplication(); + return $application->getName() . ' ' . $application->getVersion(); + } +} diff --git a/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php b/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php index 720914a88..8e9ee3c67 100644 --- a/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php +++ b/vendor/rector/rector/vendor/symfony/console/DependencyInjection/AddConsoleCommandPass.php @@ -8,18 +8,18 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\DependencyInjection; +namespace RectorPrefix202312\Symfony\Component\Console\DependencyInjection; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Command\LazyCommand; -use RectorPrefix202311\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; -use RectorPrefix202311\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; -use RectorPrefix202311\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use RectorPrefix202311\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; -use RectorPrefix202311\Symfony\Component\DependencyInjection\ContainerBuilder; -use RectorPrefix202311\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\DependencyInjection\Reference; -use RectorPrefix202311\Symfony\Component\DependencyInjection\TypedReference; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Command\LazyCommand; +use RectorPrefix202312\Symfony\Component\Console\CommandLoader\ContainerCommandLoader; +use RectorPrefix202312\Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; +use RectorPrefix202312\Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; +use RectorPrefix202312\Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; +use RectorPrefix202312\Symfony\Component\DependencyInjection\ContainerBuilder; +use RectorPrefix202312\Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\DependencyInjection\Reference; +use RectorPrefix202312\Symfony\Component\DependencyInjection\TypedReference; /** * Registers console commands. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php index d6b3a2cd9..367292328 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/ApplicationDescription.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202312\Symfony\Component\Console\Descriptor; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Exception\CommandNotFoundException; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Exception\CommandNotFoundException; /** * @author Jean-François Simon * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php index 534c6253d..ced938c85 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/Descriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202312\Symfony\Component\Console\Descriptor; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * @author Jean-François Simon * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php index 586bbba0b..81d306d2d 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/DescriptorInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202312\Symfony\Component\Console\Descriptor; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * Descriptor interface. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php index 8803e8e9a..2395c6c5a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/JsonDescriptor.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202312\Symfony\Component\Console\Descriptor; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; /** * JSON descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php index c70d7cf55..0c34b949d 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/MarkdownDescriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202312\Symfony\Component\Console\Descriptor; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * Markdown descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php index e9044270b..188cec7b7 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/ReStructuredTextDescriptor.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202312\Symfony\Component\Console\Descriptor; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\String\UnicodeString; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\String\UnicodeString; class ReStructuredTextDescriptor extends Descriptor { //

diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php index 066054e91..50580dd01 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/TextDescriptor.php @@ -8,15 +8,15 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202312\Symfony\Component\Console\Descriptor; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202311\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202312\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; /** * Text descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php b/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php index 6598add6f..ca7a242cb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php +++ b/vendor/rector/rector/vendor/symfony/console/Descriptor/XmlDescriptor.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Descriptor; +namespace RectorPrefix202312\Symfony\Component\Console\Descriptor; -use RectorPrefix202311\Symfony\Component\Console\Application; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputArgument; -use RectorPrefix202311\Symfony\Component\Console\Input\InputDefinition; -use RectorPrefix202311\Symfony\Component\Console\Input\InputOption; +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputArgument; +use RectorPrefix202312\Symfony\Component\Console\Input\InputDefinition; +use RectorPrefix202312\Symfony\Component\Console\Input\InputOption; /** * XML descriptor. * diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php b/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php index 691c0fbdb..075f561cb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/CommandNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Exception; +namespace RectorPrefix202312\Symfony\Component\Console\Exception; /** * Represents an incorrect command name typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php index dfc15f1fe..951b16330 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Exception; +namespace RectorPrefix202312\Symfony\Component\Console\Exception; /** * ExceptionInterface. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php index d1b6c3754..935ea9f52 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Exception; +namespace RectorPrefix202312\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php index de666b798..6cde03f39 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/InvalidOptionException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Exception; +namespace RectorPrefix202312\Symfony\Component\Console\Exception; /** * Represents an incorrect option name or value typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php b/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php index b32425f34..ffbfe884a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/LogicException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Exception; +namespace RectorPrefix202312\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php b/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php index 2383b6758..c389496dc 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/MissingInputException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Exception; +namespace RectorPrefix202312\Symfony\Component\Console\Exception; /** * Represents failure to read input from stdin. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php b/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php index 93bc89328..b2e35258f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/NamespaceNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Exception; +namespace RectorPrefix202312\Symfony\Component\Console\Exception; /** * Represents an incorrect namespace typed in the console. diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/RunCommandFailedException.php b/vendor/rector/rector/vendor/symfony/console/Exception/RunCommandFailedException.php new file mode 100644 index 000000000..d60bd0bc7 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/console/Exception/RunCommandFailedException.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Console\Exception; + +use RectorPrefix202312\Symfony\Component\Console\Messenger\RunCommandContext; +/** + * @author Kevin Bond + */ +final class RunCommandFailedException extends RuntimeException +{ + /** + * @readonly + * @var \Symfony\Component\Console\Messenger\RunCommandContext + */ + public $context; + /** + * @param \Throwable|string $exception + */ + public function __construct($exception, RunCommandContext $context) + { + $this->context = $context; + parent::__construct($exception instanceof \Throwable ? $exception->getMessage() : $exception, $exception instanceof \Throwable ? $exception->getCode() : 0, $exception instanceof \Throwable ? $exception : null); + } +} diff --git a/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php index 1d398cbf5..da029a299 100644 --- a/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/console/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Exception; +namespace RectorPrefix202312\Symfony\Component\Console\Exception; /** * @author Jérôme Tamarelle diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php index 736a62a05..a9e2fc3ef 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatter.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Formatter; +namespace RectorPrefix202312\Symfony\Component\Console\Formatter; /** * @author Tien Xuan Vo diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php index 8b75cf0c5..d78cf5952 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/NullOutputFormatterStyle.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Formatter; +namespace RectorPrefix202312\Symfony\Component\Console\Formatter; /** * @author Tien Xuan Vo diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php index 3ebe42204..948a96c8b 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatter.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Formatter; +namespace RectorPrefix202312\Symfony\Component\Console\Formatter; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use function RectorPrefix202311\Symfony\Component\String\b; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use function RectorPrefix202312\Symfony\Component\String\b; /** * Formatter class for console output. * diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php index bb0ea0634..b1df59031 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Formatter; +namespace RectorPrefix202312\Symfony\Component\Console\Formatter; /** * Formatter interface for console output. diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php index c22d074bb..cd77bb88f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyle.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Formatter; +namespace RectorPrefix202312\Symfony\Component\Console\Formatter; -use RectorPrefix202311\Symfony\Component\Console\Color; +use RectorPrefix202312\Symfony\Component\Console\Color; /** * Formatter style class for defining styles. * diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php index ba59c173f..d58f4a6d2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Formatter; +namespace RectorPrefix202312\Symfony\Component\Console\Formatter; /** * Formatter style interface for defining styles. diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php index 8298f2dfa..bfffed000 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/OutputFormatterStyleStack.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Formatter; +namespace RectorPrefix202312\Symfony\Component\Console\Formatter; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Contracts\Service\ResetInterface; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Contracts\Service\ResetInterface; /** * @author Jean-François Simon */ diff --git a/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php b/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php index 45daf06e5..b098ccef5 100644 --- a/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Formatter/WrappableOutputFormatterInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Formatter; +namespace RectorPrefix202312\Symfony\Component\Console\Formatter; /** * Formatter interface for console output that supports word wrapping. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php index 364de62b5..cc9fe4803 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/DebugFormatterHelper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; /** * Helps outputting debug information when running an external program from a command. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php index 19c52de2b..b3750a075 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/DescriptorHelper.php @@ -8,16 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Descriptor\DescriptorInterface; -use RectorPrefix202311\Symfony\Component\Console\Descriptor\JsonDescriptor; -use RectorPrefix202311\Symfony\Component\Console\Descriptor\MarkdownDescriptor; -use RectorPrefix202311\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; -use RectorPrefix202311\Symfony\Component\Console\Descriptor\TextDescriptor; -use RectorPrefix202311\Symfony\Component\Console\Descriptor\XmlDescriptor; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Descriptor\DescriptorInterface; +use RectorPrefix202312\Symfony\Component\Console\Descriptor\JsonDescriptor; +use RectorPrefix202312\Symfony\Component\Console\Descriptor\MarkdownDescriptor; +use RectorPrefix202312\Symfony\Component\Console\Descriptor\ReStructuredTextDescriptor; +use RectorPrefix202312\Symfony\Component\Console\Descriptor\TextDescriptor; +use RectorPrefix202312\Symfony\Component\Console\Descriptor\XmlDescriptor; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * This class adds helper method to describe objects in various formats. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php b/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php index 47576b3f0..88a998252 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Dumper.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\VarDumper\Cloner\ClonerInterface; -use RectorPrefix202311\Symfony\Component\VarDumper\Cloner\VarCloner; -use RectorPrefix202311\Symfony\Component\VarDumper\Dumper\CliDumper; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\VarDumper\Cloner\ClonerInterface; +use RectorPrefix202312\Symfony\Component\VarDumper\Cloner\VarCloner; +use RectorPrefix202312\Symfony\Component\VarDumper\Dumper\CliDumper; /** * @author Roland Franssen */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php index 544ad0e41..e327a44f4 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/FormatterHelper.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatter; /** * The Formatter class provides helpers to format messages. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php b/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php index 5a6ffe1c6..611259a19 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Helper.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202311\Symfony\Component\String\UnicodeString; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\String\UnicodeString; /** * Helper is the base class for all helper classes. * @@ -81,19 +81,30 @@ public static function substr(?string $string, int $from, int $length = null) : * @return string * @param int|float $secs */ - public static function formatTime($secs) + public static function formatTime($secs, int $precision = 1) { - static $timeFormats = [[0, '< 1 sec'], [1, '1 sec'], [2, 'secs', 1], [60, '1 min'], [120, 'mins', 60], [3600, '1 hr'], [7200, 'hrs', 3600], [86400, '1 day'], [172800, 'days', 86400]]; + $secs = (int) \floor($secs); + if (0 === $secs) { + return '< 1 sec'; + } + static $timeFormats = [[1, '1 sec', 'secs'], [60, '1 min', 'mins'], [3600, '1 hr', 'hrs'], [86400, '1 day', 'days']]; + $times = []; foreach ($timeFormats as $index => $format) { - if ($secs >= $format[0]) { - if (isset($timeFormats[$index + 1]) && $secs < $timeFormats[$index + 1][0] || $index == \count($timeFormats) - 1) { - if (2 == \count($format)) { - return $format[1]; - } - return \floor($secs / $format[2]) . ' ' . $format[1]; - } + $seconds = isset($timeFormats[$index + 1]) ? $secs % $timeFormats[$index + 1][0] : $secs; + if (isset($times[$index - $precision])) { + unset($times[$index - $precision]); + } + if (0 === $seconds) { + continue; + } + $unitCount = $seconds / $format[0]; + $times[$index] = 1 === $unitCount ? $format[1] : $unitCount . ' ' . $format[2]; + if ($secs === $seconds) { + break; } + $secs -= $seconds; } + return \implode(', ', \array_reverse($times)); } /** * @return string diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php b/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php index 37b7abde9..a24493214 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/HelperInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; /** * HelperInterface is the interface all helpers must implement. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php b/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php index 7cb7e765b..29531c85e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/HelperSet.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; /** * HelperSet represents a set of helpers to be used with a command. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php index 0cb3947d2..b19c32b81 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/InputAwareHelper.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Input\InputAwareInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputAwareInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; /** * An implementation of InputAwareInterface for Helpers. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php b/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php index 878f60e54..fe66ae31f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/OutputWrapper.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; /** * Simple output wrapper for "tagged outputs" instead of wordwrap(). This solution is based on a StackOverflow diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php index 2bc858db3..ab09e3885 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProcessHelper.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202311\Symfony\Component\Process\Process; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202312\Symfony\Component\Process\Process; /** * The ProcessHelper class provides helpers to run external processes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php index 825339b37..f7fb6c803 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressBar.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Cursor; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Terminal; +use RectorPrefix202312\Symfony\Component\Console\Cursor; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Terminal; /** * The ProgressBar provides helpers to display progress output. * @@ -337,7 +337,13 @@ public function maxSecondsBetweenRedraws(float $seconds) : void /** * Returns an iterator that will automatically update the progress bar when iterated. * - * @param int|null $max Number of steps to complete the bar (0 if indeterminate), if null it will be inferred from $iterable + * @template TKey + * @template TValue + * + * @param iterable $iterable + * @param int|null $max Number of steps to complete the bar (0 if indeterminate), if null it will be inferred from $iterable + * + * @return iterable */ public function iterate(iterable $iterable, int $max = null) : iterable { @@ -533,17 +539,17 @@ private static function initPlaceholderFormatters() : array } return $display; }, 'elapsed' => function (self $bar) { - return Helper::formatTime(\time() - $bar->getStartTime()); + return Helper::formatTime(\time() - $bar->getStartTime(), 2); }, 'remaining' => function (self $bar) { if (!$bar->getMaxSteps()) { throw new LogicException('Unable to display the remaining time if the maximum number of steps is not set.'); } - return Helper::formatTime($bar->getRemaining()); + return Helper::formatTime($bar->getRemaining(), 2); }, 'estimated' => function (self $bar) { if (!$bar->getMaxSteps()) { throw new LogicException('Unable to display the estimated time if the maximum number of steps is not set.'); } - return Helper::formatTime($bar->getEstimated()); + return Helper::formatTime($bar->getEstimated(), 2); }, 'memory' => function (self $bar) { return Helper::formatMemory(\memory_get_usage(\true)); }, 'current' => function (self $bar) { diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php index e4c5fe14b..122ed7a6c 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/ProgressIndicator.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * @author Kevin Bond */ @@ -217,7 +217,7 @@ private static function initPlaceholderFormatters() : array }, 'message' => function (self $indicator) { return $indicator->message; }, 'elapsed' => function (self $indicator) { - return Helper::formatTime(\time() - $indicator->startTime); + return Helper::formatTime(\time() - $indicator->startTime, 2); }, 'memory' => function () { return Helper::formatMemory(\memory_get_usage(\true)); }]; diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php index dfcc09015..c58bdf61d 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/QuestionHelper.php @@ -8,22 +8,22 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Cursor; -use RectorPrefix202311\Symfony\Component\Console\Exception\MissingInputException; -use RectorPrefix202311\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterStyle; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Input\StreamableInputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202311\Symfony\Component\Console\Question\Question; -use RectorPrefix202311\Symfony\Component\Console\Terminal; -use function RectorPrefix202311\Symfony\Component\String\s; +use RectorPrefix202312\Symfony\Component\Console\Cursor; +use RectorPrefix202312\Symfony\Component\Console\Exception\MissingInputException; +use RectorPrefix202312\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterStyle; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Input\StreamableInputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202312\Symfony\Component\Console\Question\Question; +use RectorPrefix202312\Symfony\Component\Console\Terminal; +use function RectorPrefix202312\Symfony\Component\String\s; /** * The QuestionHelper class provides helpers to interact with the user. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php b/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php index 49e0cc123..06294bf28 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/SymfonyQuestionHelper.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202311\Symfony\Component\Console\Question\ConfirmationQuestion; -use RectorPrefix202311\Symfony\Component\Console\Question\Question; -use RectorPrefix202311\Symfony\Component\Console\Style\SymfonyStyle; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202312\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202312\Symfony\Component\Console\Question\Question; +use RectorPrefix202312\Symfony\Component\Console\Style\SymfonyStyle; /** * Symfony Style Guide compliant question helper. * diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/Table.php b/vendor/rector/rector/vendor/symfony/console/Helper/Table.php index bcc780139..f58223c2e 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/Table.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/Table.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202311\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202312\Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * Provides helpers to display a table. * @@ -361,10 +361,17 @@ public function render() $maxRows = \max(\count($headers), \count($row)); for ($i = 0; $i < $maxRows; ++$i) { $cell = (string) ($row[$i] ?? ''); - if ($headers && !$containsColspan) { - $rows[] = [\sprintf('%s: %s', \str_pad($headers[$i] ?? '', $maxHeaderLength, ' ', \STR_PAD_LEFT), $cell)]; - } elseif ('' !== $cell) { - $rows[] = [$cell]; + $parts = \explode("\n", $cell); + foreach ($parts as $idx => $part) { + if ($headers && !$containsColspan) { + if (0 === $idx) { + $rows[] = [\sprintf('%s: %s', \str_pad($headers[$i] ?? '', $maxHeaderLength, ' ', \STR_PAD_LEFT), $part)]; + } else { + $rows[] = [\sprintf('%s %s', \str_pad('', $maxHeaderLength, ' ', \STR_PAD_LEFT), $part)]; + } + } elseif ('' !== $cell) { + $rows[] = [$part]; + } } } } diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php index 5d0a25697..cae70ad73 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableCell.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Abdellatif Ait boudad */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php index 7aba48913..e9ae0c379 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableCellStyle.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; /** * @author Yewhen Khoptynskyi */ diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php index ef496914c..fd00b26aa 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableRows.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; /** * @internal diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php index c4b97d332..c2909f3b1 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableSeparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; /** * Marks a row as being a separator. diff --git a/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php b/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php index f1b98bb1a..2a94d0878 100644 --- a/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Helper/TableStyle.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Helper; +namespace RectorPrefix202312\Symfony\Component\Console\Helper; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; /** * Defines the styles for a Table. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php b/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php index 2ad00336e..2a70dbc44 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/ArgvInput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; -use RectorPrefix202311\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Console\Exception\RuntimeException; /** * ArgvInput represents an input coming from the CLI arguments. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php b/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php index 2c8a20761..e1c13d6c2 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/ArrayInput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidOptionException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidOptionException; /** * ArrayInput represents an input provided as an array. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/Input.php b/vendor/rector/rector/vendor/symfony/console/Input/Input.php index 8bbec78f0..2a56afdce 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/Input.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/Input.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\RuntimeException; /** * Input is the base class for all concrete Input classes. * @@ -26,6 +26,7 @@ abstract class Input implements InputInterface, StreamableInputInterface { protected $definition; + /** @var resource */ protected $stream; protected $options = []; protected $arguments = []; diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php b/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php index 2ded29f04..cbb3235e5 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputArgument.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line argument. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php index 7a77c2577..af34e2a46 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputAwareInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; /** * InputAwareInterface should be implemented by classes that depends on the diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php b/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php index e3da90da2..b0b48174a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputDefinition.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; /** * A InputDefinition represents a set of valid command line arguments and options. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php index 4091477a5..5d44c9831 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputInterface.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\RuntimeException; /** * InputInterface is the interface implemented by all input classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php b/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php index 6816f3210..49b1526aa 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/InputOption.php @@ -8,14 +8,14 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionInput; -use RectorPrefix202311\Symfony\Component\Console\Completion\CompletionSuggestions; -use RectorPrefix202311\Symfony\Component\Console\Completion\Suggestion; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionInput; +use RectorPrefix202312\Symfony\Component\Console\Completion\CompletionSuggestions; +use RectorPrefix202312\Symfony\Component\Console\Completion\Suggestion; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; /** * Represents a command line option. * diff --git a/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php b/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php index 656f2354b..c38c0eb78 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/StreamableInputInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; /** * StreamableInputInterface is the interface implemented by all input classes diff --git a/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php b/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php index f78942818..18cf62187 100644 --- a/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php +++ b/vendor/rector/rector/vendor/symfony/console/Input/StringInput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Input; +namespace RectorPrefix202312\Symfony\Component\Console\Input; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; /** * StringInput represents an input provided as a string. * diff --git a/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php b/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php index 81b6049dd..2178bfc40 100644 --- a/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php +++ b/vendor/rector/rector/vendor/symfony/console/Logger/ConsoleLogger.php @@ -8,13 +8,13 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Logger; +namespace RectorPrefix202312\Symfony\Component\Console\Logger; -use RectorPrefix202311\Psr\Log\AbstractLogger; -use RectorPrefix202311\Psr\Log\InvalidArgumentException; -use RectorPrefix202311\Psr\Log\LogLevel; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Psr\Log\AbstractLogger; +use RectorPrefix202312\Psr\Log\InvalidArgumentException; +use RectorPrefix202312\Psr\Log\LogLevel; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * PSR-3 compliant console logger. * diff --git a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandContext.php b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandContext.php new file mode 100644 index 000000000..c68f2833d --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandContext.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Console\Messenger; + +/** + * @author Kevin Bond + */ +final class RunCommandContext +{ + /** + * @readonly + * @var \Symfony\Component\Console\Messenger\RunCommandMessage + */ + public $message; + /** + * @readonly + * @var int + */ + public $exitCode; + /** + * @readonly + * @var string + */ + public $output; + public function __construct(RunCommandMessage $message, int $exitCode, string $output) + { + $this->message = $message; + $this->exitCode = $exitCode; + $this->output = $output; + } +} diff --git a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessage.php b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessage.php new file mode 100644 index 000000000..9e48012fc --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessage.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Console\Messenger; + +use RectorPrefix202312\Symfony\Component\Console\Exception\RunCommandFailedException; +/** + * @author Kevin Bond + */ +class RunCommandMessage +{ + /** + * @readonly + * @var string + */ + public $input; + /** + * @var bool + * @readonly + */ + public $throwOnFailure = \true; + /** + * @var bool + * @readonly + */ + public $catchExceptions = \false; + /** + * @param bool $throwOnFailure If the command has a non-zero exit code, throw {@see RunCommandFailedException} + * @param bool $catchExceptions @see Application::setCatchExceptions() + */ + public function __construct(string $input, bool $throwOnFailure = \true, bool $catchExceptions = \false) + { + $this->input = $input; + $this->throwOnFailure = $throwOnFailure; + $this->catchExceptions = $catchExceptions; + } + public function __toString() : string + { + return $this->input; + } +} diff --git a/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessageHandler.php b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessageHandler.php new file mode 100644 index 000000000..cbb3d376e --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/console/Messenger/RunCommandMessageHandler.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Console\Messenger; + +use RectorPrefix202312\Symfony\Component\Console\Application; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Exception\RunCommandFailedException; +use RectorPrefix202312\Symfony\Component\Console\Input\StringInput; +use RectorPrefix202312\Symfony\Component\Console\Output\BufferedOutput; +/** + * @author Kevin Bond + */ +final class RunCommandMessageHandler +{ + /** + * @readonly + * @var \Symfony\Component\Console\Application + */ + private $application; + public function __construct(Application $application) + { + $this->application = $application; + } + public function __invoke(RunCommandMessage $message) : RunCommandContext + { + $input = new StringInput($message->input); + $output = new BufferedOutput(); + $this->application->setCatchExceptions($message->catchExceptions); + try { + $exitCode = $this->application->run($input, $output); + } catch (\Throwable $e) { + throw new RunCommandFailedException($e, new RunCommandContext($message, Command::FAILURE, $output->fetch())); + } + if ($message->throwOnFailure && Command::SUCCESS !== $exitCode) { + throw new RunCommandFailedException(\sprintf('Command "%s" exited with code "%s".', $message->input, $exitCode), new RunCommandContext($message, $exitCode, $output->fetch())); + } + return new RunCommandContext($message, $exitCode, $output->fetch()); + } +} diff --git a/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php b/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php index ba74e02df..594e213b6 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/AnsiColorMode.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; class AnsiColorMode { public const Ansi4 = 'ansi4'; diff --git a/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php index 3ce157e86..c7d87eac5 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/BufferedOutput.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; /** * @author Jean-François Simon diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php index d3b494cc7..250fa324c 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutput.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * ConsoleOutput is the default class for all CLI output. It uses STDOUT and STDERR. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php index fb8ffb076..f266c1664 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleOutputInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; /** * ConsoleOutputInterface is the interface implemented by ConsoleOutput class. diff --git a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php index 8c1796932..6741e436d 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/ConsoleSectionOutput.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202311\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202311\Symfony\Component\Console\Terminal; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202312\Symfony\Component\Console\Terminal; /** * @author Pierre du Plessis * @author Gabriel Ostrolucký diff --git a/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php index 1886f07e8..cb7432667 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/NullOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; -use RectorPrefix202311\Symfony\Component\Console\Formatter\NullOutputFormatter; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Formatter\NullOutputFormatter; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * NullOutput suppresses all output. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/Output.php b/vendor/rector/rector/vendor/symfony/console/Output/Output.php index 5341e3981..d98de2066 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/Output.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/Output.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * Base class for output classes. * diff --git a/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php b/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php index ba1c17caf..9f790e69d 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/OutputInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * OutputInterface is the interface implemented by all Output classes. * @@ -50,11 +50,15 @@ public function writeln($messages, int $options = 0); /** * Sets the verbosity of the output. * + * @param self::VERBOSITY_* $level + * * @return void */ public function setVerbosity(int $level); /** * Gets the current verbosity of the output. + * + * @return self::VERBOSITY_* */ public function getVerbosity() : int; /** diff --git a/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php index 619c6e32c..cb8ffb26f 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/StreamOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * StreamOutput writes the output to a given stream. * @@ -27,6 +27,7 @@ */ class StreamOutput extends Output { + /** @var resource */ private $stream; /** * @param resource $stream A stream resource diff --git a/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php b/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php index be7113646..a2afbbfbb 100644 --- a/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php +++ b/vendor/rector/rector/vendor/symfony/console/Output/TrimmedBufferOutput.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Output; +namespace RectorPrefix202312\Symfony\Component\Console\Output; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; /** * A BufferedOutput that keeps only the last N chars. * diff --git a/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php b/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php index a0d6a793c..73df2ce49 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/ChoiceQuestion.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Question; +namespace RectorPrefix202312\Symfony\Component\Console\Question; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; /** * Represents a choice question. * diff --git a/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php b/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php index 364ae7d20..a5837748a 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/ConfirmationQuestion.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Question; +namespace RectorPrefix202312\Symfony\Component\Console\Question; /** * Represents a yes/no question. diff --git a/vendor/rector/rector/vendor/symfony/console/Question/Question.php b/vendor/rector/rector/vendor/symfony/console/Question/Question.php index 48664f618..2275f77d9 100644 --- a/vendor/rector/rector/vendor/symfony/console/Question/Question.php +++ b/vendor/rector/rector/vendor/symfony/console/Question/Question.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Question; +namespace RectorPrefix202312\Symfony\Component\Console\Question; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\LogicException; /** * Represents a Question. * diff --git a/vendor/rector/rector/vendor/symfony/console/README.md b/vendor/rector/rector/vendor/symfony/console/README.md index bfd488109..e9013182a 100644 --- a/vendor/rector/rector/vendor/symfony/console/README.md +++ b/vendor/rector/rector/vendor/symfony/console/README.md @@ -7,7 +7,7 @@ interfaces. Sponsor ------- -The Console component for Symfony 6.3 is [backed][1] by [Les-Tilleuls.coop][2]. +The Console component for Symfony 6.4 is [backed][1] by [Les-Tilleuls.coop][2]. Les-Tilleuls.coop is a team of 70+ Symfony experts who can help you design, develop and fix your projects. They provide a wide range of professional services including development, diff --git a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php new file mode 100644 index 000000000..4a009fa6d --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalMap.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Console\SignalRegistry; + +/** + * @author Grégoire Pineau + */ +class SignalMap +{ + /** + * @var mixed[] + */ + private static $map; + public static function getSignalName(int $signal) : ?string + { + if (!\extension_loaded('pcntl')) { + return null; + } + if (!isset(self::$map)) { + $r = new \ReflectionExtension('pcntl'); + $c = $r->getConstants(); + $map = \array_filter($c, function ($k) { + return \strncmp($k, 'SIG', \strlen('SIG')) === 0 && \strncmp($k, 'SIG_', \strlen('SIG_')) !== 0; + }, \ARRAY_FILTER_USE_KEY); + self::$map = \array_flip($map); + } + return self::$map[$signal] ?? null; + } +} diff --git a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php index c417ba321..8b7fadde5 100644 --- a/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php +++ b/vendor/rector/rector/vendor/symfony/console/SignalRegistry/SignalRegistry.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\SignalRegistry; +namespace RectorPrefix202312\Symfony\Component\Console\SignalRegistry; final class SignalRegistry { diff --git a/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php b/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php index 97fc4e29e..0dc8442c4 100644 --- a/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php +++ b/vendor/rector/rector/vendor/symfony/console/SingleCommandApplication.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console; +namespace RectorPrefix202312\Symfony\Component\Console; -use RectorPrefix202311\Symfony\Component\Console\Command\Command; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Command\Command; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * @author Grégoire Pineau */ diff --git a/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php b/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php index 158c56f3e..1befffb6d 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/OutputStyle.php @@ -8,12 +8,12 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Style; +namespace RectorPrefix202312\Symfony\Component\Console\Style; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatterInterface; -use RectorPrefix202311\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatterInterface; +use RectorPrefix202312\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; /** * Decorates output to add console style guide helpers. * diff --git a/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php b/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php index 03de01124..8a2437735 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/StyleInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Style; +namespace RectorPrefix202312\Symfony\Component\Console\Style; /** * Output style helpers. diff --git a/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php b/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php index 966f72848..9f89cc685 100644 --- a/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php +++ b/vendor/rector/rector/vendor/symfony/console/Style/SymfonyStyle.php @@ -8,27 +8,27 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console\Style; +namespace RectorPrefix202312\Symfony\Component\Console\Style; -use RectorPrefix202311\Symfony\Component\Console\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Console\Exception\RuntimeException; -use RectorPrefix202311\Symfony\Component\Console\Formatter\OutputFormatter; -use RectorPrefix202311\Symfony\Component\Console\Helper\Helper; -use RectorPrefix202311\Symfony\Component\Console\Helper\OutputWrapper; -use RectorPrefix202311\Symfony\Component\Console\Helper\ProgressBar; -use RectorPrefix202311\Symfony\Component\Console\Helper\SymfonyQuestionHelper; -use RectorPrefix202311\Symfony\Component\Console\Helper\Table; -use RectorPrefix202311\Symfony\Component\Console\Helper\TableCell; -use RectorPrefix202311\Symfony\Component\Console\Helper\TableSeparator; -use RectorPrefix202311\Symfony\Component\Console\Input\InputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleOutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\ConsoleSectionOutput; -use RectorPrefix202311\Symfony\Component\Console\Output\OutputInterface; -use RectorPrefix202311\Symfony\Component\Console\Output\TrimmedBufferOutput; -use RectorPrefix202311\Symfony\Component\Console\Question\ChoiceQuestion; -use RectorPrefix202311\Symfony\Component\Console\Question\ConfirmationQuestion; -use RectorPrefix202311\Symfony\Component\Console\Question\Question; -use RectorPrefix202311\Symfony\Component\Console\Terminal; +use RectorPrefix202312\Symfony\Component\Console\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Console\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Console\Formatter\OutputFormatter; +use RectorPrefix202312\Symfony\Component\Console\Helper\Helper; +use RectorPrefix202312\Symfony\Component\Console\Helper\OutputWrapper; +use RectorPrefix202312\Symfony\Component\Console\Helper\ProgressBar; +use RectorPrefix202312\Symfony\Component\Console\Helper\SymfonyQuestionHelper; +use RectorPrefix202312\Symfony\Component\Console\Helper\Table; +use RectorPrefix202312\Symfony\Component\Console\Helper\TableCell; +use RectorPrefix202312\Symfony\Component\Console\Helper\TableSeparator; +use RectorPrefix202312\Symfony\Component\Console\Input\InputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleOutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\ConsoleSectionOutput; +use RectorPrefix202312\Symfony\Component\Console\Output\OutputInterface; +use RectorPrefix202312\Symfony\Component\Console\Output\TrimmedBufferOutput; +use RectorPrefix202312\Symfony\Component\Console\Question\ChoiceQuestion; +use RectorPrefix202312\Symfony\Component\Console\Question\ConfirmationQuestion; +use RectorPrefix202312\Symfony\Component\Console\Question\Question; +use RectorPrefix202312\Symfony\Component\Console\Terminal; /** * Output decorator helpers for the Symfony Style Guide. * @@ -312,6 +312,14 @@ public function createProgressBar(int $max = 0) : ProgressBar } /** * @see ProgressBar::iterate() + * + * @template TKey + * @template TValue + * + * @param iterable $iterable + * @param int|null $max Number of steps to complete the bar (0 if indeterminate), if null it will be inferred from $iterable + * + * @return iterable */ public function progressIterate(iterable $iterable, int $max = null) : iterable { diff --git a/vendor/rector/rector/vendor/symfony/console/Terminal.php b/vendor/rector/rector/vendor/symfony/console/Terminal.php index 6ed621e10..9c5bb29d0 100644 --- a/vendor/rector/rector/vendor/symfony/console/Terminal.php +++ b/vendor/rector/rector/vendor/symfony/console/Terminal.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Console; +namespace RectorPrefix202312\Symfony\Component\Console; -use RectorPrefix202311\Symfony\Component\Console\Output\AnsiColorMode; +use RectorPrefix202312\Symfony\Component\Console\Output\AnsiColorMode; class Terminal { public const DEFAULT_COLOR_MODE = AnsiColorMode::Ansi4; diff --git a/vendor/rector/rector/vendor/symfony/console/composer.json b/vendor/rector/rector/vendor/symfony/console/composer.json index 32db0500e..269c74584 100644 --- a/vendor/rector/rector/vendor/symfony/console/composer.json +++ b/vendor/rector/rector/vendor/symfony/console/composer.json @@ -25,15 +25,19 @@ "symfony\/deprecation-contracts": "^2.5|^3", "symfony\/polyfill-mbstring": "~1.0", "symfony\/service-contracts": "^2.5|^3", - "symfony\/string": "^5.4|^6.0" + "symfony\/string": "^5.4|^6.0|^7.0" }, "require-dev": { - "symfony\/config": "^5.4|^6.0", - "symfony\/event-dispatcher": "^5.4|^6.0", - "symfony\/dependency-injection": "^5.4|^6.0", - "symfony\/lock": "^5.4|^6.0", - "symfony\/process": "^5.4|^6.0", - "symfony\/var-dumper": "^5.4|^6.0", + "symfony\/config": "^5.4|^6.0|^7.0", + "symfony\/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony\/dependency-injection": "^5.4|^6.0|^7.0", + "symfony\/http-foundation": "^6.4|^7.0", + "symfony\/http-kernel": "^6.4|^7.0", + "symfony\/lock": "^5.4|^6.0|^7.0", + "symfony\/messenger": "^5.4|^6.0|^7.0", + "symfony\/process": "^5.4|^6.0|^7.0", + "symfony\/stopwatch": "^5.4|^6.0|^7.0", + "symfony\/var-dumper": "^5.4|^6.0|^7.0", "psr\/log": "^1|^2|^3" }, "provide": { @@ -48,7 +52,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Component\\Console\\": "" + "RectorPrefix202312\\Symfony\\Component\\Console\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/ExceptionInterface.php index 8a607ba4f..3aaab6eb3 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202312\Symfony\Component\Filesystem\Exception; /** * Exception interface for all exceptions thrown by the component. diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/FileNotFoundException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/FileNotFoundException.php index 5a9b2ba05..71bb284a4 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/FileNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/FileNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202312\Symfony\Component\Filesystem\Exception; /** * Exception class thrown when a file couldn't be found. diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOException.php index 0f0d3be8e..54762ab04 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202312\Symfony\Component\Filesystem\Exception; /** * Exception class thrown when a filesystem operation failure happens. diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOExceptionInterface.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOExceptionInterface.php index 7d2e3ec57..d2bcbc252 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/IOExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202312\Symfony\Component\Filesystem\Exception; /** * IOException interface for file and input/output stream related exceptions thrown by the component. diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/InvalidArgumentException.php index 45a020b4a..85b086dda 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202312\Symfony\Component\Filesystem\Exception; /** * @author Christian Flothmann diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php index 4c9b6a0cd..fe0aa2064 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Filesystem\Exception; +namespace RectorPrefix202312\Symfony\Component\Filesystem\Exception; /** * @author Théo Fidry diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php b/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php index 0bcf9bf83..d27dd443c 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Filesystem.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Filesystem; +namespace RectorPrefix202312\Symfony\Component\Filesystem; -use RectorPrefix202311\Symfony\Component\Filesystem\Exception\FileNotFoundException; -use RectorPrefix202311\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Filesystem\Exception\IOException; +use RectorPrefix202312\Symfony\Component\Filesystem\Exception\FileNotFoundException; +use RectorPrefix202312\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Filesystem\Exception\IOException; /** * Provides basic utility to manipulate the file system. * @@ -20,6 +20,9 @@ */ class Filesystem { + /** + * @var string|null + */ private static $lastError; /** * Copies a file. @@ -650,7 +653,7 @@ private static function box(string $func, ...$args) { self::assertFunctionExists($func); self::$lastError = null; - \set_error_handler(__CLASS__ . '::handleError'); + \set_error_handler(\Closure::fromCallable([self::class, 'handleError'])); try { return $func(...$args); } finally { diff --git a/vendor/rector/rector/vendor/symfony/filesystem/Path.php b/vendor/rector/rector/vendor/symfony/filesystem/Path.php index acbc7095c..d8932af23 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/Path.php +++ b/vendor/rector/rector/vendor/symfony/filesystem/Path.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Filesystem; +namespace RectorPrefix202312\Symfony\Component\Filesystem; -use RectorPrefix202311\Symfony\Component\Filesystem\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Filesystem\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Filesystem\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Filesystem\Exception\RuntimeException; /** * Contains utility methods for handling path strings. * diff --git a/vendor/rector/rector/vendor/symfony/filesystem/composer.json b/vendor/rector/rector/vendor/symfony/filesystem/composer.json index 140e5810c..c42f0a975 100644 --- a/vendor/rector/rector/vendor/symfony/filesystem/composer.json +++ b/vendor/rector/rector/vendor/symfony/filesystem/composer.json @@ -22,7 +22,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Component\\Filesystem\\": "" + "RectorPrefix202312\\Symfony\\Component\\Filesystem\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php index 5dff5f38a..f8a950295 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/Comparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202312\Symfony\Component\Finder\Comparator; /** * @author Fabien Potencier diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php index 021a47f83..e5aac58e9 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/DateComparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202312\Symfony\Component\Finder\Comparator; /** * DateCompare compiles date comparisons. diff --git a/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php b/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php index 051d666dd..912c5b0dd 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Comparator/NumberComparator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Comparator; +namespace RectorPrefix202312\Symfony\Component\Finder\Comparator; /** * NumberComparator compiles a simple comparison to an anonymous diff --git a/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php b/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php index d4488f7e5..a5c5592ee 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php +++ b/vendor/rector/rector/vendor/symfony/finder/Exception/AccessDeniedException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Exception; +namespace RectorPrefix202312\Symfony\Component\Finder\Exception; /** * @author Jean-François Simon diff --git a/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php b/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php index 46d392f5d..de68e02b2 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php +++ b/vendor/rector/rector/vendor/symfony/finder/Exception/DirectoryNotFoundException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Exception; +namespace RectorPrefix202312\Symfony\Component\Finder\Exception; /** * @author Andreas Erhard diff --git a/vendor/rector/rector/vendor/symfony/finder/Finder.php b/vendor/rector/rector/vendor/symfony/finder/Finder.php index 6f4a64780..df751a890 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Finder.php +++ b/vendor/rector/rector/vendor/symfony/finder/Finder.php @@ -8,20 +8,20 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder; +namespace RectorPrefix202312\Symfony\Component\Finder; -use RectorPrefix202311\Symfony\Component\Finder\Comparator\DateComparator; -use RectorPrefix202311\Symfony\Component\Finder\Comparator\NumberComparator; -use RectorPrefix202311\Symfony\Component\Finder\Exception\DirectoryNotFoundException; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\CustomFilterIterator; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\FilenameFilterIterator; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\LazyIterator; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; -use RectorPrefix202311\Symfony\Component\Finder\Iterator\SortableIterator; +use RectorPrefix202312\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202312\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202312\Symfony\Component\Finder\Exception\DirectoryNotFoundException; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\CustomFilterIterator; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\DateRangeFilterIterator; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\DepthRangeFilterIterator; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\FilecontentFilterIterator; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\FilenameFilterIterator; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\LazyIterator; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\SizeRangeFilterIterator; +use RectorPrefix202312\Symfony\Component\Finder\Iterator\SortableIterator; /** * Finder allows to build rules to find files and directories. * @@ -62,6 +62,10 @@ class Finder implements \IteratorAggregate, \Countable * @var mixed[] */ private $filters = []; + /** + * @var mixed[] + */ + private $pruneFilters = []; /** * @var mixed[] */ @@ -582,13 +586,20 @@ public function sortByModifiedTime() * The anonymous function receives a \SplFileInfo and must return false * to remove files. * + * @param \Closure(SplFileInfo): bool $closure + * @param bool $prune Whether to skip traversing directories further + * * @return $this * * @see CustomFilterIterator */ public function filter(\Closure $closure) { + $prune = 1 < \func_num_args() ? \func_get_arg(1) : \false; $this->filters[] = $closure; + if ($prune) { + $this->pruneFilters[] = $closure; + } return $this; } /** @@ -721,6 +732,9 @@ private function searchInDirectory(string $dir) : \Iterator { $exclude = $this->exclude; $notPaths = $this->notPaths; + if ($this->pruneFilters) { + $exclude = \array_merge($exclude, $this->pruneFilters); + } if (static::IGNORE_VCS_FILES === (static::IGNORE_VCS_FILES & $this->ignore)) { $exclude = \array_merge($exclude, self::$vcsPatterns); } diff --git a/vendor/rector/rector/vendor/symfony/finder/Gitignore.php b/vendor/rector/rector/vendor/symfony/finder/Gitignore.php index 17e4523d8..f609871c5 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Gitignore.php +++ b/vendor/rector/rector/vendor/symfony/finder/Gitignore.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder; +namespace RectorPrefix202312\Symfony\Component\Finder; /** * Gitignore matches against text. diff --git a/vendor/rector/rector/vendor/symfony/finder/Glob.php b/vendor/rector/rector/vendor/symfony/finder/Glob.php index 0f180dacb..8aec50530 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Glob.php +++ b/vendor/rector/rector/vendor/symfony/finder/Glob.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder; +namespace RectorPrefix202312\Symfony\Component\Finder; /** * Glob matches globbing patterns against text. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php index e99e8d7d0..1fd6b853c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/CustomFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; /** * CustomFilterIterator filters files by applying anonymous functions. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php index 40bc10d5e..2bb79c45d 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; -use RectorPrefix202311\Symfony\Component\Finder\Comparator\DateComparator; +use RectorPrefix202312\Symfony\Component\Finder\Comparator\DateComparator; /** * DateRangeFilterIterator filters out files that are not in the given date range (last modified dates). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php index 563c10746..d1efc975c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; /** * DepthRangeFilterIterator limits the directory depth. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php index ad4c875fa..afde600e1 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; -use RectorPrefix202311\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202312\Symfony\Component\Finder\SplFileInfo; /** * ExcludeDirectoryFilterIterator filters out directories. * @@ -28,17 +28,17 @@ class ExcludeDirectoryFilterIterator extends \FilterIterator implements \Recursi * @var bool */ private $isRecursive; - /** - * @var mixed[] - */ + /** @var array */ private $excludedDirs = []; /** * @var string|null */ private $excludedPattern; + /** @var list */ + private $pruneFilters = []; /** - * @param \Iterator $iterator The Iterator to filter - * @param string[] $directories An array of directories to exclude + * @param \Iterator $iterator The Iterator to filter + * @param list $directories An array of directories to exclude */ public function __construct(\Iterator $iterator, array $directories) { @@ -46,6 +46,13 @@ public function __construct(\Iterator $iterator, array $directories) $this->isRecursive = $iterator instanceof \RecursiveIterator; $patterns = []; foreach ($directories as $directory) { + if (!\is_string($directory)) { + if (!\is_callable($directory)) { + throw new \InvalidArgumentException('Invalid PHP callback.'); + } + $this->pruneFilters[] = $directory; + continue; + } $directory = \rtrim($directory, '/'); if (!$this->isRecursive || \strpos($directory, '/') !== \false) { $patterns[] = \preg_quote($directory, '#'); @@ -71,6 +78,13 @@ public function accept() : bool $path = \str_replace('\\', '/', $path); return !\preg_match($this->excludedPattern, $path); } + if ($this->pruneFilters && $this->hasChildren()) { + foreach ($this->pruneFilters as $pruneFilter) { + if (!$pruneFilter($this->current())) { + return \false; + } + } + } return \true; } public function hasChildren() : bool diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php index 500051d39..c9e0350b4 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; /** * FileTypeFilterIterator only keeps files, directories, or both. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php index 47d064789..b85e707bf 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilecontentFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; -use RectorPrefix202311\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202312\Symfony\Component\Finder\SplFileInfo; /** * FilecontentFilterIterator filters files by their contents using patterns (regexps or strings). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php index df8febd1e..c34cfbad2 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/FilenameFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; -use RectorPrefix202311\Symfony\Component\Finder\Glob; +use RectorPrefix202312\Symfony\Component\Finder\Glob; /** * FilenameFilterIterator filters files by patterns (a regexp, a glob, or a string). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php index 9e2044e33..7724889e3 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/LazyIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; /** * @author Jérémy Derussé diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php index be4207cd3..0ada02011 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/MultiplePcreFilterIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; /** * MultiplePcreFilterIterator filters files using patterns (regexps, globs or strings). diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php index 2b07ad588..c477ff23b 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/PathFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; -use RectorPrefix202311\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202312\Symfony\Component\Finder\SplFileInfo; /** * PathFilterIterator filters files by path patterns (e.g. some/special/dir). * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php index 05948d1e3..91730c37c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; -use RectorPrefix202311\Symfony\Component\Finder\Exception\AccessDeniedException; -use RectorPrefix202311\Symfony\Component\Finder\SplFileInfo; +use RectorPrefix202312\Symfony\Component\Finder\Exception\AccessDeniedException; +use RectorPrefix202312\Symfony\Component\Finder\SplFileInfo; /** * Extends the \RecursiveDirectoryIterator to support relative paths. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php index ecc12d993..24cf96611 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/SizeRangeFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; -use RectorPrefix202311\Symfony\Component\Finder\Comparator\NumberComparator; +use RectorPrefix202312\Symfony\Component\Finder\Comparator\NumberComparator; /** * SizeRangeFilterIterator filters out files that are not in the given size range. * diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php index 0846f5f98..785275e5a 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/SortableIterator.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; /** * SortableIterator applies a sort on a given Iterator. diff --git a/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php b/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php index fa14b53f2..157e1f642 100644 --- a/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php +++ b/vendor/rector/rector/vendor/symfony/finder/Iterator/VcsIgnoredFilterIterator.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder\Iterator; +namespace RectorPrefix202312\Symfony\Component\Finder\Iterator; -use RectorPrefix202311\Symfony\Component\Finder\Gitignore; +use RectorPrefix202312\Symfony\Component\Finder\Gitignore; /** * @extends \FilterIterator */ diff --git a/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php b/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php index ef0a5227d..41b424b0c 100644 --- a/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php +++ b/vendor/rector/rector/vendor/symfony/finder/SplFileInfo.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Finder; +namespace RectorPrefix202312\Symfony\Component\Finder; /** * Extends \SplFileInfo to support relative paths. diff --git a/vendor/rector/rector/vendor/symfony/finder/composer.json b/vendor/rector/rector/vendor/symfony/finder/composer.json index e0220a95d..707397494 100644 --- a/vendor/rector/rector/vendor/symfony/finder/composer.json +++ b/vendor/rector/rector/vendor/symfony/finder/composer.json @@ -19,11 +19,11 @@ "php": ">=8.1" }, "require-dev": { - "symfony\/filesystem": "^6.0" + "symfony\/filesystem": "^6.0|^7.0" }, "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Component\\Finder\\": "" + "RectorPrefix202312\\Symfony\\Component\\Finder\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php index 7fa1855f6..ce0cd5020 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php @@ -1,5 +1,5 @@ 'i̇', 'µ' => 'μ', 'ſ' => 's', 'ͅ' => 'ι', 'ς' => 'σ', 'ϐ' => 'β', 'ϑ' => 'θ', 'ϕ' => 'φ', 'ϖ' => 'π', 'ϰ' => 'κ', 'ϱ' => 'ρ', 'ϵ' => 'ε', 'ẛ' => 'ṡ', 'ι' => 'ι', 'ß' => 'ss', 'ʼn' => 'ʼn', 'ǰ' => 'ǰ', 'ΐ' => 'ΐ', 'ΰ' => 'ΰ', 'և' => 'եւ', 'ẖ' => 'ẖ', 'ẗ' => 'ẗ', 'ẘ' => 'ẘ', 'ẙ' => 'ẙ', 'ẚ' => 'aʾ', 'ẞ' => 'ss', 'ὐ' => 'ὐ', 'ὒ' => 'ὒ', 'ὔ' => 'ὔ', 'ὖ' => 'ὖ', 'ᾀ' => 'ἀι', 'ᾁ' => 'ἁι', 'ᾂ' => 'ἂι', 'ᾃ' => 'ἃι', 'ᾄ' => 'ἄι', 'ᾅ' => 'ἅι', 'ᾆ' => 'ἆι', 'ᾇ' => 'ἇι', 'ᾈ' => 'ἀι', 'ᾉ' => 'ἁι', 'ᾊ' => 'ἂι', 'ᾋ' => 'ἃι', 'ᾌ' => 'ἄι', 'ᾍ' => 'ἅι', 'ᾎ' => 'ἆι', 'ᾏ' => 'ἇι', 'ᾐ' => 'ἠι', 'ᾑ' => 'ἡι', 'ᾒ' => 'ἢι', 'ᾓ' => 'ἣι', 'ᾔ' => 'ἤι', 'ᾕ' => 'ἥι', 'ᾖ' => 'ἦι', 'ᾗ' => 'ἧι', 'ᾘ' => 'ἠι', 'ᾙ' => 'ἡι', 'ᾚ' => 'ἢι', 'ᾛ' => 'ἣι', 'ᾜ' => 'ἤι', 'ᾝ' => 'ἥι', 'ᾞ' => 'ἦι', 'ᾟ' => 'ἧι', 'ᾠ' => 'ὠι', 'ᾡ' => 'ὡι', 'ᾢ' => 'ὢι', 'ᾣ' => 'ὣι', 'ᾤ' => 'ὤι', 'ᾥ' => 'ὥι', 'ᾦ' => 'ὦι', 'ᾧ' => 'ὧι', 'ᾨ' => 'ὠι', 'ᾩ' => 'ὡι', 'ᾪ' => 'ὢι', 'ᾫ' => 'ὣι', 'ᾬ' => 'ὤι', 'ᾭ' => 'ὥι', 'ᾮ' => 'ὦι', 'ᾯ' => 'ὧι', 'ᾲ' => 'ὰι', 'ᾳ' => 'αι', 'ᾴ' => 'άι', 'ᾶ' => 'ᾶ', 'ᾷ' => 'ᾶι', 'ᾼ' => 'αι', 'ῂ' => 'ὴι', 'ῃ' => 'ηι', 'ῄ' => 'ήι', 'ῆ' => 'ῆ', 'ῇ' => 'ῆι', 'ῌ' => 'ηι', 'ῒ' => 'ῒ', 'ῖ' => 'ῖ', 'ῗ' => 'ῗ', 'ῢ' => 'ῢ', 'ῤ' => 'ῤ', 'ῦ' => 'ῦ', 'ῧ' => 'ῧ', 'ῲ' => 'ὼι', 'ῳ' => 'ωι', 'ῴ' => 'ώι', 'ῶ' => 'ῶ', 'ῷ' => 'ῶι', 'ῼ' => 'ωι', 'ff' => 'ff', 'fi' => 'fi', 'fl' => 'fl', 'ffi' => 'ffi', 'ffl' => 'ffl', 'ſt' => 'st', 'st' => 'st', 'ﬓ' => 'մն', 'ﬔ' => 'մե', 'ﬕ' => 'մի', 'ﬖ' => 'վն', 'ﬗ' => 'մխ']; diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php index e9b308989..5a3f76e08 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php @@ -1,5 +1,5 @@ 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', 'À' => 'à', 'Á' => 'á', 'Â' => 'â', 'Ã' => 'ã', 'Ä' => 'ä', 'Å' => 'å', 'Æ' => 'æ', 'Ç' => 'ç', 'È' => 'è', 'É' => 'é', 'Ê' => 'ê', 'Ë' => 'ë', 'Ì' => 'ì', 'Í' => 'í', 'Î' => 'î', 'Ï' => 'ï', 'Ð' => 'ð', 'Ñ' => 'ñ', 'Ò' => 'ò', 'Ó' => 'ó', 'Ô' => 'ô', 'Õ' => 'õ', 'Ö' => 'ö', 'Ø' => 'ø', 'Ù' => 'ù', 'Ú' => 'ú', 'Û' => 'û', 'Ü' => 'ü', 'Ý' => 'ý', 'Þ' => 'þ', 'Ā' => 'ā', 'Ă' => 'ă', 'Ą' => 'ą', 'Ć' => 'ć', 'Ĉ' => 'ĉ', 'Ċ' => 'ċ', 'Č' => 'č', 'Ď' => 'ď', 'Đ' => 'đ', 'Ē' => 'ē', 'Ĕ' => 'ĕ', 'Ė' => 'ė', 'Ę' => 'ę', 'Ě' => 'ě', 'Ĝ' => 'ĝ', 'Ğ' => 'ğ', 'Ġ' => 'ġ', 'Ģ' => 'ģ', 'Ĥ' => 'ĥ', 'Ħ' => 'ħ', 'Ĩ' => 'ĩ', 'Ī' => 'ī', 'Ĭ' => 'ĭ', 'Į' => 'į', 'İ' => 'i̇', 'IJ' => 'ij', 'Ĵ' => 'ĵ', 'Ķ' => 'ķ', 'Ĺ' => 'ĺ', 'Ļ' => 'ļ', 'Ľ' => 'ľ', 'Ŀ' => 'ŀ', 'Ł' => 'ł', 'Ń' => 'ń', 'Ņ' => 'ņ', 'Ň' => 'ň', 'Ŋ' => 'ŋ', 'Ō' => 'ō', 'Ŏ' => 'ŏ', 'Ő' => 'ő', 'Œ' => 'œ', 'Ŕ' => 'ŕ', 'Ŗ' => 'ŗ', 'Ř' => 'ř', 'Ś' => 'ś', 'Ŝ' => 'ŝ', 'Ş' => 'ş', 'Š' => 'š', 'Ţ' => 'ţ', 'Ť' => 'ť', 'Ŧ' => 'ŧ', 'Ũ' => 'ũ', 'Ū' => 'ū', 'Ŭ' => 'ŭ', 'Ů' => 'ů', 'Ű' => 'ű', 'Ų' => 'ų', 'Ŵ' => 'ŵ', 'Ŷ' => 'ŷ', 'Ÿ' => 'ÿ', 'Ź' => 'ź', 'Ż' => 'ż', 'Ž' => 'ž', 'Ɓ' => 'ɓ', 'Ƃ' => 'ƃ', 'Ƅ' => 'ƅ', 'Ɔ' => 'ɔ', 'Ƈ' => 'ƈ', 'Ɖ' => 'ɖ', 'Ɗ' => 'ɗ', 'Ƌ' => 'ƌ', 'Ǝ' => 'ǝ', 'Ə' => 'ə', 'Ɛ' => 'ɛ', 'Ƒ' => 'ƒ', 'Ɠ' => 'ɠ', 'Ɣ' => 'ɣ', 'Ɩ' => 'ɩ', 'Ɨ' => 'ɨ', 'Ƙ' => 'ƙ', 'Ɯ' => 'ɯ', 'Ɲ' => 'ɲ', 'Ɵ' => 'ɵ', 'Ơ' => 'ơ', 'Ƣ' => 'ƣ', 'Ƥ' => 'ƥ', 'Ʀ' => 'ʀ', 'Ƨ' => 'ƨ', 'Ʃ' => 'ʃ', 'Ƭ' => 'ƭ', 'Ʈ' => 'ʈ', 'Ư' => 'ư', 'Ʊ' => 'ʊ', 'Ʋ' => 'ʋ', 'Ƴ' => 'ƴ', 'Ƶ' => 'ƶ', 'Ʒ' => 'ʒ', 'Ƹ' => 'ƹ', 'Ƽ' => 'ƽ', 'DŽ' => 'dž', 'Dž' => 'dž', 'LJ' => 'lj', 'Lj' => 'lj', 'NJ' => 'nj', 'Nj' => 'nj', 'Ǎ' => 'ǎ', 'Ǐ' => 'ǐ', 'Ǒ' => 'ǒ', 'Ǔ' => 'ǔ', 'Ǖ' => 'ǖ', 'Ǘ' => 'ǘ', 'Ǚ' => 'ǚ', 'Ǜ' => 'ǜ', 'Ǟ' => 'ǟ', 'Ǡ' => 'ǡ', 'Ǣ' => 'ǣ', 'Ǥ' => 'ǥ', 'Ǧ' => 'ǧ', 'Ǩ' => 'ǩ', 'Ǫ' => 'ǫ', 'Ǭ' => 'ǭ', 'Ǯ' => 'ǯ', 'DZ' => 'dz', 'Dz' => 'dz', 'Ǵ' => 'ǵ', 'Ƕ' => 'ƕ', 'Ƿ' => 'ƿ', 'Ǹ' => 'ǹ', 'Ǻ' => 'ǻ', 'Ǽ' => 'ǽ', 'Ǿ' => 'ǿ', 'Ȁ' => 'ȁ', 'Ȃ' => 'ȃ', 'Ȅ' => 'ȅ', 'Ȇ' => 'ȇ', 'Ȉ' => 'ȉ', 'Ȋ' => 'ȋ', 'Ȍ' => 'ȍ', 'Ȏ' => 'ȏ', 'Ȑ' => 'ȑ', 'Ȓ' => 'ȓ', 'Ȕ' => 'ȕ', 'Ȗ' => 'ȗ', 'Ș' => 'ș', 'Ț' => 'ț', 'Ȝ' => 'ȝ', 'Ȟ' => 'ȟ', 'Ƞ' => 'ƞ', 'Ȣ' => 'ȣ', 'Ȥ' => 'ȥ', 'Ȧ' => 'ȧ', 'Ȩ' => 'ȩ', 'Ȫ' => 'ȫ', 'Ȭ' => 'ȭ', 'Ȯ' => 'ȯ', 'Ȱ' => 'ȱ', 'Ȳ' => 'ȳ', 'Ⱥ' => 'ⱥ', 'Ȼ' => 'ȼ', 'Ƚ' => 'ƚ', 'Ⱦ' => 'ⱦ', 'Ɂ' => 'ɂ', 'Ƀ' => 'ƀ', 'Ʉ' => 'ʉ', 'Ʌ' => 'ʌ', 'Ɇ' => 'ɇ', 'Ɉ' => 'ɉ', 'Ɋ' => 'ɋ', 'Ɍ' => 'ɍ', 'Ɏ' => 'ɏ', 'Ͱ' => 'ͱ', 'Ͳ' => 'ͳ', 'Ͷ' => 'ͷ', 'Ϳ' => 'ϳ', 'Ά' => 'ά', 'Έ' => 'έ', 'Ή' => 'ή', 'Ί' => 'ί', 'Ό' => 'ό', 'Ύ' => 'ύ', 'Ώ' => 'ώ', 'Α' => 'α', 'Β' => 'β', 'Γ' => 'γ', 'Δ' => 'δ', 'Ε' => 'ε', 'Ζ' => 'ζ', 'Η' => 'η', 'Θ' => 'θ', 'Ι' => 'ι', 'Κ' => 'κ', 'Λ' => 'λ', 'Μ' => 'μ', 'Ν' => 'ν', 'Ξ' => 'ξ', 'Ο' => 'ο', 'Π' => 'π', 'Ρ' => 'ρ', 'Σ' => 'σ', 'Τ' => 'τ', 'Υ' => 'υ', 'Φ' => 'φ', 'Χ' => 'χ', 'Ψ' => 'ψ', 'Ω' => 'ω', 'Ϊ' => 'ϊ', 'Ϋ' => 'ϋ', 'Ϗ' => 'ϗ', 'Ϙ' => 'ϙ', 'Ϛ' => 'ϛ', 'Ϝ' => 'ϝ', 'Ϟ' => 'ϟ', 'Ϡ' => 'ϡ', 'Ϣ' => 'ϣ', 'Ϥ' => 'ϥ', 'Ϧ' => 'ϧ', 'Ϩ' => 'ϩ', 'Ϫ' => 'ϫ', 'Ϭ' => 'ϭ', 'Ϯ' => 'ϯ', 'ϴ' => 'θ', 'Ϸ' => 'ϸ', 'Ϲ' => 'ϲ', 'Ϻ' => 'ϻ', 'Ͻ' => 'ͻ', 'Ͼ' => 'ͼ', 'Ͽ' => 'ͽ', 'Ѐ' => 'ѐ', 'Ё' => 'ё', 'Ђ' => 'ђ', 'Ѓ' => 'ѓ', 'Є' => 'є', 'Ѕ' => 'ѕ', 'І' => 'і', 'Ї' => 'ї', 'Ј' => 'ј', 'Љ' => 'љ', 'Њ' => 'њ', 'Ћ' => 'ћ', 'Ќ' => 'ќ', 'Ѝ' => 'ѝ', 'Ў' => 'ў', 'Џ' => 'џ', 'А' => 'а', 'Б' => 'б', 'В' => 'в', 'Г' => 'г', 'Д' => 'д', 'Е' => 'е', 'Ж' => 'ж', 'З' => 'з', 'И' => 'и', 'Й' => 'й', 'К' => 'к', 'Л' => 'л', 'М' => 'м', 'Н' => 'н', 'О' => 'о', 'П' => 'п', 'Р' => 'р', 'С' => 'с', 'Т' => 'т', 'У' => 'у', 'Ф' => 'ф', 'Х' => 'х', 'Ц' => 'ц', 'Ч' => 'ч', 'Ш' => 'ш', 'Щ' => 'щ', 'Ъ' => 'ъ', 'Ы' => 'ы', 'Ь' => 'ь', 'Э' => 'э', 'Ю' => 'ю', 'Я' => 'я', 'Ѡ' => 'ѡ', 'Ѣ' => 'ѣ', 'Ѥ' => 'ѥ', 'Ѧ' => 'ѧ', 'Ѩ' => 'ѩ', 'Ѫ' => 'ѫ', 'Ѭ' => 'ѭ', 'Ѯ' => 'ѯ', 'Ѱ' => 'ѱ', 'Ѳ' => 'ѳ', 'Ѵ' => 'ѵ', 'Ѷ' => 'ѷ', 'Ѹ' => 'ѹ', 'Ѻ' => 'ѻ', 'Ѽ' => 'ѽ', 'Ѿ' => 'ѿ', 'Ҁ' => 'ҁ', 'Ҋ' => 'ҋ', 'Ҍ' => 'ҍ', 'Ҏ' => 'ҏ', 'Ґ' => 'ґ', 'Ғ' => 'ғ', 'Ҕ' => 'ҕ', 'Җ' => 'җ', 'Ҙ' => 'ҙ', 'Қ' => 'қ', 'Ҝ' => 'ҝ', 'Ҟ' => 'ҟ', 'Ҡ' => 'ҡ', 'Ң' => 'ң', 'Ҥ' => 'ҥ', 'Ҧ' => 'ҧ', 'Ҩ' => 'ҩ', 'Ҫ' => 'ҫ', 'Ҭ' => 'ҭ', 'Ү' => 'ү', 'Ұ' => 'ұ', 'Ҳ' => 'ҳ', 'Ҵ' => 'ҵ', 'Ҷ' => 'ҷ', 'Ҹ' => 'ҹ', 'Һ' => 'һ', 'Ҽ' => 'ҽ', 'Ҿ' => 'ҿ', 'Ӏ' => 'ӏ', 'Ӂ' => 'ӂ', 'Ӄ' => 'ӄ', 'Ӆ' => 'ӆ', 'Ӈ' => 'ӈ', 'Ӊ' => 'ӊ', 'Ӌ' => 'ӌ', 'Ӎ' => 'ӎ', 'Ӑ' => 'ӑ', 'Ӓ' => 'ӓ', 'Ӕ' => 'ӕ', 'Ӗ' => 'ӗ', 'Ә' => 'ә', 'Ӛ' => 'ӛ', 'Ӝ' => 'ӝ', 'Ӟ' => 'ӟ', 'Ӡ' => 'ӡ', 'Ӣ' => 'ӣ', 'Ӥ' => 'ӥ', 'Ӧ' => 'ӧ', 'Ө' => 'ө', 'Ӫ' => 'ӫ', 'Ӭ' => 'ӭ', 'Ӯ' => 'ӯ', 'Ӱ' => 'ӱ', 'Ӳ' => 'ӳ', 'Ӵ' => 'ӵ', 'Ӷ' => 'ӷ', 'Ӹ' => 'ӹ', 'Ӻ' => 'ӻ', 'Ӽ' => 'ӽ', 'Ӿ' => 'ӿ', 'Ԁ' => 'ԁ', 'Ԃ' => 'ԃ', 'Ԅ' => 'ԅ', 'Ԇ' => 'ԇ', 'Ԉ' => 'ԉ', 'Ԋ' => 'ԋ', 'Ԍ' => 'ԍ', 'Ԏ' => 'ԏ', 'Ԑ' => 'ԑ', 'Ԓ' => 'ԓ', 'Ԕ' => 'ԕ', 'Ԗ' => 'ԗ', 'Ԙ' => 'ԙ', 'Ԛ' => 'ԛ', 'Ԝ' => 'ԝ', 'Ԟ' => 'ԟ', 'Ԡ' => 'ԡ', 'Ԣ' => 'ԣ', 'Ԥ' => 'ԥ', 'Ԧ' => 'ԧ', 'Ԩ' => 'ԩ', 'Ԫ' => 'ԫ', 'Ԭ' => 'ԭ', 'Ԯ' => 'ԯ', 'Ա' => 'ա', 'Բ' => 'բ', 'Գ' => 'գ', 'Դ' => 'դ', 'Ե' => 'ե', 'Զ' => 'զ', 'Է' => 'է', 'Ը' => 'ը', 'Թ' => 'թ', 'Ժ' => 'ժ', 'Ի' => 'ի', 'Լ' => 'լ', 'Խ' => 'խ', 'Ծ' => 'ծ', 'Կ' => 'կ', 'Հ' => 'հ', 'Ձ' => 'ձ', 'Ղ' => 'ղ', 'Ճ' => 'ճ', 'Մ' => 'մ', 'Յ' => 'յ', 'Ն' => 'ն', 'Շ' => 'շ', 'Ո' => 'ո', 'Չ' => 'չ', 'Պ' => 'պ', 'Ջ' => 'ջ', 'Ռ' => 'ռ', 'Ս' => 'ս', 'Վ' => 'վ', 'Տ' => 'տ', 'Ր' => 'ր', 'Ց' => 'ց', 'Ւ' => 'ւ', 'Փ' => 'փ', 'Ք' => 'ք', 'Օ' => 'օ', 'Ֆ' => 'ֆ', 'Ⴀ' => 'ⴀ', 'Ⴁ' => 'ⴁ', 'Ⴂ' => 'ⴂ', 'Ⴃ' => 'ⴃ', 'Ⴄ' => 'ⴄ', 'Ⴅ' => 'ⴅ', 'Ⴆ' => 'ⴆ', 'Ⴇ' => 'ⴇ', 'Ⴈ' => 'ⴈ', 'Ⴉ' => 'ⴉ', 'Ⴊ' => 'ⴊ', 'Ⴋ' => 'ⴋ', 'Ⴌ' => 'ⴌ', 'Ⴍ' => 'ⴍ', 'Ⴎ' => 'ⴎ', 'Ⴏ' => 'ⴏ', 'Ⴐ' => 'ⴐ', 'Ⴑ' => 'ⴑ', 'Ⴒ' => 'ⴒ', 'Ⴓ' => 'ⴓ', 'Ⴔ' => 'ⴔ', 'Ⴕ' => 'ⴕ', 'Ⴖ' => 'ⴖ', 'Ⴗ' => 'ⴗ', 'Ⴘ' => 'ⴘ', 'Ⴙ' => 'ⴙ', 'Ⴚ' => 'ⴚ', 'Ⴛ' => 'ⴛ', 'Ⴜ' => 'ⴜ', 'Ⴝ' => 'ⴝ', 'Ⴞ' => 'ⴞ', 'Ⴟ' => 'ⴟ', 'Ⴠ' => 'ⴠ', 'Ⴡ' => 'ⴡ', 'Ⴢ' => 'ⴢ', 'Ⴣ' => 'ⴣ', 'Ⴤ' => 'ⴤ', 'Ⴥ' => 'ⴥ', 'Ⴧ' => 'ⴧ', 'Ⴭ' => 'ⴭ', 'Ꭰ' => 'ꭰ', 'Ꭱ' => 'ꭱ', 'Ꭲ' => 'ꭲ', 'Ꭳ' => 'ꭳ', 'Ꭴ' => 'ꭴ', 'Ꭵ' => 'ꭵ', 'Ꭶ' => 'ꭶ', 'Ꭷ' => 'ꭷ', 'Ꭸ' => 'ꭸ', 'Ꭹ' => 'ꭹ', 'Ꭺ' => 'ꭺ', 'Ꭻ' => 'ꭻ', 'Ꭼ' => 'ꭼ', 'Ꭽ' => 'ꭽ', 'Ꭾ' => 'ꭾ', 'Ꭿ' => 'ꭿ', 'Ꮀ' => 'ꮀ', 'Ꮁ' => 'ꮁ', 'Ꮂ' => 'ꮂ', 'Ꮃ' => 'ꮃ', 'Ꮄ' => 'ꮄ', 'Ꮅ' => 'ꮅ', 'Ꮆ' => 'ꮆ', 'Ꮇ' => 'ꮇ', 'Ꮈ' => 'ꮈ', 'Ꮉ' => 'ꮉ', 'Ꮊ' => 'ꮊ', 'Ꮋ' => 'ꮋ', 'Ꮌ' => 'ꮌ', 'Ꮍ' => 'ꮍ', 'Ꮎ' => 'ꮎ', 'Ꮏ' => 'ꮏ', 'Ꮐ' => 'ꮐ', 'Ꮑ' => 'ꮑ', 'Ꮒ' => 'ꮒ', 'Ꮓ' => 'ꮓ', 'Ꮔ' => 'ꮔ', 'Ꮕ' => 'ꮕ', 'Ꮖ' => 'ꮖ', 'Ꮗ' => 'ꮗ', 'Ꮘ' => 'ꮘ', 'Ꮙ' => 'ꮙ', 'Ꮚ' => 'ꮚ', 'Ꮛ' => 'ꮛ', 'Ꮜ' => 'ꮜ', 'Ꮝ' => 'ꮝ', 'Ꮞ' => 'ꮞ', 'Ꮟ' => 'ꮟ', 'Ꮠ' => 'ꮠ', 'Ꮡ' => 'ꮡ', 'Ꮢ' => 'ꮢ', 'Ꮣ' => 'ꮣ', 'Ꮤ' => 'ꮤ', 'Ꮥ' => 'ꮥ', 'Ꮦ' => 'ꮦ', 'Ꮧ' => 'ꮧ', 'Ꮨ' => 'ꮨ', 'Ꮩ' => 'ꮩ', 'Ꮪ' => 'ꮪ', 'Ꮫ' => 'ꮫ', 'Ꮬ' => 'ꮬ', 'Ꮭ' => 'ꮭ', 'Ꮮ' => 'ꮮ', 'Ꮯ' => 'ꮯ', 'Ꮰ' => 'ꮰ', 'Ꮱ' => 'ꮱ', 'Ꮲ' => 'ꮲ', 'Ꮳ' => 'ꮳ', 'Ꮴ' => 'ꮴ', 'Ꮵ' => 'ꮵ', 'Ꮶ' => 'ꮶ', 'Ꮷ' => 'ꮷ', 'Ꮸ' => 'ꮸ', 'Ꮹ' => 'ꮹ', 'Ꮺ' => 'ꮺ', 'Ꮻ' => 'ꮻ', 'Ꮼ' => 'ꮼ', 'Ꮽ' => 'ꮽ', 'Ꮾ' => 'ꮾ', 'Ꮿ' => 'ꮿ', 'Ᏸ' => 'ᏸ', 'Ᏹ' => 'ᏹ', 'Ᏺ' => 'ᏺ', 'Ᏻ' => 'ᏻ', 'Ᏼ' => 'ᏼ', 'Ᏽ' => 'ᏽ', 'Ა' => 'ა', 'Ბ' => 'ბ', 'Გ' => 'გ', 'Დ' => 'დ', 'Ე' => 'ე', 'Ვ' => 'ვ', 'Ზ' => 'ზ', 'Თ' => 'თ', 'Ი' => 'ი', 'Კ' => 'კ', 'Ლ' => 'ლ', 'Მ' => 'მ', 'Ნ' => 'ნ', 'Ო' => 'ო', 'Პ' => 'პ', 'Ჟ' => 'ჟ', 'Რ' => 'რ', 'Ს' => 'ს', 'Ტ' => 'ტ', 'Უ' => 'უ', 'Ფ' => 'ფ', 'Ქ' => 'ქ', 'Ღ' => 'ღ', 'Ყ' => 'ყ', 'Შ' => 'შ', 'Ჩ' => 'ჩ', 'Ც' => 'ც', 'Ძ' => 'ძ', 'Წ' => 'წ', 'Ჭ' => 'ჭ', 'Ხ' => 'ხ', 'Ჯ' => 'ჯ', 'Ჰ' => 'ჰ', 'Ჱ' => 'ჱ', 'Ჲ' => 'ჲ', 'Ჳ' => 'ჳ', 'Ჴ' => 'ჴ', 'Ჵ' => 'ჵ', 'Ჶ' => 'ჶ', 'Ჷ' => 'ჷ', 'Ჸ' => 'ჸ', 'Ჹ' => 'ჹ', 'Ჺ' => 'ჺ', 'Ჽ' => 'ჽ', 'Ჾ' => 'ჾ', 'Ჿ' => 'ჿ', 'Ḁ' => 'ḁ', 'Ḃ' => 'ḃ', 'Ḅ' => 'ḅ', 'Ḇ' => 'ḇ', 'Ḉ' => 'ḉ', 'Ḋ' => 'ḋ', 'Ḍ' => 'ḍ', 'Ḏ' => 'ḏ', 'Ḑ' => 'ḑ', 'Ḓ' => 'ḓ', 'Ḕ' => 'ḕ', 'Ḗ' => 'ḗ', 'Ḙ' => 'ḙ', 'Ḛ' => 'ḛ', 'Ḝ' => 'ḝ', 'Ḟ' => 'ḟ', 'Ḡ' => 'ḡ', 'Ḣ' => 'ḣ', 'Ḥ' => 'ḥ', 'Ḧ' => 'ḧ', 'Ḩ' => 'ḩ', 'Ḫ' => 'ḫ', 'Ḭ' => 'ḭ', 'Ḯ' => 'ḯ', 'Ḱ' => 'ḱ', 'Ḳ' => 'ḳ', 'Ḵ' => 'ḵ', 'Ḷ' => 'ḷ', 'Ḹ' => 'ḹ', 'Ḻ' => 'ḻ', 'Ḽ' => 'ḽ', 'Ḿ' => 'ḿ', 'Ṁ' => 'ṁ', 'Ṃ' => 'ṃ', 'Ṅ' => 'ṅ', 'Ṇ' => 'ṇ', 'Ṉ' => 'ṉ', 'Ṋ' => 'ṋ', 'Ṍ' => 'ṍ', 'Ṏ' => 'ṏ', 'Ṑ' => 'ṑ', 'Ṓ' => 'ṓ', 'Ṕ' => 'ṕ', 'Ṗ' => 'ṗ', 'Ṙ' => 'ṙ', 'Ṛ' => 'ṛ', 'Ṝ' => 'ṝ', 'Ṟ' => 'ṟ', 'Ṡ' => 'ṡ', 'Ṣ' => 'ṣ', 'Ṥ' => 'ṥ', 'Ṧ' => 'ṧ', 'Ṩ' => 'ṩ', 'Ṫ' => 'ṫ', 'Ṭ' => 'ṭ', 'Ṯ' => 'ṯ', 'Ṱ' => 'ṱ', 'Ṳ' => 'ṳ', 'Ṵ' => 'ṵ', 'Ṷ' => 'ṷ', 'Ṹ' => 'ṹ', 'Ṻ' => 'ṻ', 'Ṽ' => 'ṽ', 'Ṿ' => 'ṿ', 'Ẁ' => 'ẁ', 'Ẃ' => 'ẃ', 'Ẅ' => 'ẅ', 'Ẇ' => 'ẇ', 'Ẉ' => 'ẉ', 'Ẋ' => 'ẋ', 'Ẍ' => 'ẍ', 'Ẏ' => 'ẏ', 'Ẑ' => 'ẑ', 'Ẓ' => 'ẓ', 'Ẕ' => 'ẕ', 'ẞ' => 'ß', 'Ạ' => 'ạ', 'Ả' => 'ả', 'Ấ' => 'ấ', 'Ầ' => 'ầ', 'Ẩ' => 'ẩ', 'Ẫ' => 'ẫ', 'Ậ' => 'ậ', 'Ắ' => 'ắ', 'Ằ' => 'ằ', 'Ẳ' => 'ẳ', 'Ẵ' => 'ẵ', 'Ặ' => 'ặ', 'Ẹ' => 'ẹ', 'Ẻ' => 'ẻ', 'Ẽ' => 'ẽ', 'Ế' => 'ế', 'Ề' => 'ề', 'Ể' => 'ể', 'Ễ' => 'ễ', 'Ệ' => 'ệ', 'Ỉ' => 'ỉ', 'Ị' => 'ị', 'Ọ' => 'ọ', 'Ỏ' => 'ỏ', 'Ố' => 'ố', 'Ồ' => 'ồ', 'Ổ' => 'ổ', 'Ỗ' => 'ỗ', 'Ộ' => 'ộ', 'Ớ' => 'ớ', 'Ờ' => 'ờ', 'Ở' => 'ở', 'Ỡ' => 'ỡ', 'Ợ' => 'ợ', 'Ụ' => 'ụ', 'Ủ' => 'ủ', 'Ứ' => 'ứ', 'Ừ' => 'ừ', 'Ử' => 'ử', 'Ữ' => 'ữ', 'Ự' => 'ự', 'Ỳ' => 'ỳ', 'Ỵ' => 'ỵ', 'Ỷ' => 'ỷ', 'Ỹ' => 'ỹ', 'Ỻ' => 'ỻ', 'Ỽ' => 'ỽ', 'Ỿ' => 'ỿ', 'Ἀ' => 'ἀ', 'Ἁ' => 'ἁ', 'Ἂ' => 'ἂ', 'Ἃ' => 'ἃ', 'Ἄ' => 'ἄ', 'Ἅ' => 'ἅ', 'Ἆ' => 'ἆ', 'Ἇ' => 'ἇ', 'Ἐ' => 'ἐ', 'Ἑ' => 'ἑ', 'Ἒ' => 'ἒ', 'Ἓ' => 'ἓ', 'Ἔ' => 'ἔ', 'Ἕ' => 'ἕ', 'Ἠ' => 'ἠ', 'Ἡ' => 'ἡ', 'Ἢ' => 'ἢ', 'Ἣ' => 'ἣ', 'Ἤ' => 'ἤ', 'Ἥ' => 'ἥ', 'Ἦ' => 'ἦ', 'Ἧ' => 'ἧ', 'Ἰ' => 'ἰ', 'Ἱ' => 'ἱ', 'Ἲ' => 'ἲ', 'Ἳ' => 'ἳ', 'Ἴ' => 'ἴ', 'Ἵ' => 'ἵ', 'Ἶ' => 'ἶ', 'Ἷ' => 'ἷ', 'Ὀ' => 'ὀ', 'Ὁ' => 'ὁ', 'Ὂ' => 'ὂ', 'Ὃ' => 'ὃ', 'Ὄ' => 'ὄ', 'Ὅ' => 'ὅ', 'Ὑ' => 'ὑ', 'Ὓ' => 'ὓ', 'Ὕ' => 'ὕ', 'Ὗ' => 'ὗ', 'Ὠ' => 'ὠ', 'Ὡ' => 'ὡ', 'Ὢ' => 'ὢ', 'Ὣ' => 'ὣ', 'Ὤ' => 'ὤ', 'Ὥ' => 'ὥ', 'Ὦ' => 'ὦ', 'Ὧ' => 'ὧ', 'ᾈ' => 'ᾀ', 'ᾉ' => 'ᾁ', 'ᾊ' => 'ᾂ', 'ᾋ' => 'ᾃ', 'ᾌ' => 'ᾄ', 'ᾍ' => 'ᾅ', 'ᾎ' => 'ᾆ', 'ᾏ' => 'ᾇ', 'ᾘ' => 'ᾐ', 'ᾙ' => 'ᾑ', 'ᾚ' => 'ᾒ', 'ᾛ' => 'ᾓ', 'ᾜ' => 'ᾔ', 'ᾝ' => 'ᾕ', 'ᾞ' => 'ᾖ', 'ᾟ' => 'ᾗ', 'ᾨ' => 'ᾠ', 'ᾩ' => 'ᾡ', 'ᾪ' => 'ᾢ', 'ᾫ' => 'ᾣ', 'ᾬ' => 'ᾤ', 'ᾭ' => 'ᾥ', 'ᾮ' => 'ᾦ', 'ᾯ' => 'ᾧ', 'Ᾰ' => 'ᾰ', 'Ᾱ' => 'ᾱ', 'Ὰ' => 'ὰ', 'Ά' => 'ά', 'ᾼ' => 'ᾳ', 'Ὲ' => 'ὲ', 'Έ' => 'έ', 'Ὴ' => 'ὴ', 'Ή' => 'ή', 'ῌ' => 'ῃ', 'Ῐ' => 'ῐ', 'Ῑ' => 'ῑ', 'Ὶ' => 'ὶ', 'Ί' => 'ί', 'Ῠ' => 'ῠ', 'Ῡ' => 'ῡ', 'Ὺ' => 'ὺ', 'Ύ' => 'ύ', 'Ῥ' => 'ῥ', 'Ὸ' => 'ὸ', 'Ό' => 'ό', 'Ὼ' => 'ὼ', 'Ώ' => 'ώ', 'ῼ' => 'ῳ', 'Ω' => 'ω', 'K' => 'k', 'Å' => 'å', 'Ⅎ' => 'ⅎ', 'Ⅰ' => 'ⅰ', 'Ⅱ' => 'ⅱ', 'Ⅲ' => 'ⅲ', 'Ⅳ' => 'ⅳ', 'Ⅴ' => 'ⅴ', 'Ⅵ' => 'ⅵ', 'Ⅶ' => 'ⅶ', 'Ⅷ' => 'ⅷ', 'Ⅸ' => 'ⅸ', 'Ⅹ' => 'ⅹ', 'Ⅺ' => 'ⅺ', 'Ⅻ' => 'ⅻ', 'Ⅼ' => 'ⅼ', 'Ⅽ' => 'ⅽ', 'Ⅾ' => 'ⅾ', 'Ⅿ' => 'ⅿ', 'Ↄ' => 'ↄ', 'Ⓐ' => 'ⓐ', 'Ⓑ' => 'ⓑ', 'Ⓒ' => 'ⓒ', 'Ⓓ' => 'ⓓ', 'Ⓔ' => 'ⓔ', 'Ⓕ' => 'ⓕ', 'Ⓖ' => 'ⓖ', 'Ⓗ' => 'ⓗ', 'Ⓘ' => 'ⓘ', 'Ⓙ' => 'ⓙ', 'Ⓚ' => 'ⓚ', 'Ⓛ' => 'ⓛ', 'Ⓜ' => 'ⓜ', 'Ⓝ' => 'ⓝ', 'Ⓞ' => 'ⓞ', 'Ⓟ' => 'ⓟ', 'Ⓠ' => 'ⓠ', 'Ⓡ' => 'ⓡ', 'Ⓢ' => 'ⓢ', 'Ⓣ' => 'ⓣ', 'Ⓤ' => 'ⓤ', 'Ⓥ' => 'ⓥ', 'Ⓦ' => 'ⓦ', 'Ⓧ' => 'ⓧ', 'Ⓨ' => 'ⓨ', 'Ⓩ' => 'ⓩ', 'Ⰰ' => 'ⰰ', 'Ⰱ' => 'ⰱ', 'Ⰲ' => 'ⰲ', 'Ⰳ' => 'ⰳ', 'Ⰴ' => 'ⰴ', 'Ⰵ' => 'ⰵ', 'Ⰶ' => 'ⰶ', 'Ⰷ' => 'ⰷ', 'Ⰸ' => 'ⰸ', 'Ⰹ' => 'ⰹ', 'Ⰺ' => 'ⰺ', 'Ⰻ' => 'ⰻ', 'Ⰼ' => 'ⰼ', 'Ⰽ' => 'ⰽ', 'Ⰾ' => 'ⰾ', 'Ⰿ' => 'ⰿ', 'Ⱀ' => 'ⱀ', 'Ⱁ' => 'ⱁ', 'Ⱂ' => 'ⱂ', 'Ⱃ' => 'ⱃ', 'Ⱄ' => 'ⱄ', 'Ⱅ' => 'ⱅ', 'Ⱆ' => 'ⱆ', 'Ⱇ' => 'ⱇ', 'Ⱈ' => 'ⱈ', 'Ⱉ' => 'ⱉ', 'Ⱊ' => 'ⱊ', 'Ⱋ' => 'ⱋ', 'Ⱌ' => 'ⱌ', 'Ⱍ' => 'ⱍ', 'Ⱎ' => 'ⱎ', 'Ⱏ' => 'ⱏ', 'Ⱐ' => 'ⱐ', 'Ⱑ' => 'ⱑ', 'Ⱒ' => 'ⱒ', 'Ⱓ' => 'ⱓ', 'Ⱔ' => 'ⱔ', 'Ⱕ' => 'ⱕ', 'Ⱖ' => 'ⱖ', 'Ⱗ' => 'ⱗ', 'Ⱘ' => 'ⱘ', 'Ⱙ' => 'ⱙ', 'Ⱚ' => 'ⱚ', 'Ⱛ' => 'ⱛ', 'Ⱜ' => 'ⱜ', 'Ⱝ' => 'ⱝ', 'Ⱞ' => 'ⱞ', 'Ⱡ' => 'ⱡ', 'Ɫ' => 'ɫ', 'Ᵽ' => 'ᵽ', 'Ɽ' => 'ɽ', 'Ⱨ' => 'ⱨ', 'Ⱪ' => 'ⱪ', 'Ⱬ' => 'ⱬ', 'Ɑ' => 'ɑ', 'Ɱ' => 'ɱ', 'Ɐ' => 'ɐ', 'Ɒ' => 'ɒ', 'Ⱳ' => 'ⱳ', 'Ⱶ' => 'ⱶ', 'Ȿ' => 'ȿ', 'Ɀ' => 'ɀ', 'Ⲁ' => 'ⲁ', 'Ⲃ' => 'ⲃ', 'Ⲅ' => 'ⲅ', 'Ⲇ' => 'ⲇ', 'Ⲉ' => 'ⲉ', 'Ⲋ' => 'ⲋ', 'Ⲍ' => 'ⲍ', 'Ⲏ' => 'ⲏ', 'Ⲑ' => 'ⲑ', 'Ⲓ' => 'ⲓ', 'Ⲕ' => 'ⲕ', 'Ⲗ' => 'ⲗ', 'Ⲙ' => 'ⲙ', 'Ⲛ' => 'ⲛ', 'Ⲝ' => 'ⲝ', 'Ⲟ' => 'ⲟ', 'Ⲡ' => 'ⲡ', 'Ⲣ' => 'ⲣ', 'Ⲥ' => 'ⲥ', 'Ⲧ' => 'ⲧ', 'Ⲩ' => 'ⲩ', 'Ⲫ' => 'ⲫ', 'Ⲭ' => 'ⲭ', 'Ⲯ' => 'ⲯ', 'Ⲱ' => 'ⲱ', 'Ⲳ' => 'ⲳ', 'Ⲵ' => 'ⲵ', 'Ⲷ' => 'ⲷ', 'Ⲹ' => 'ⲹ', 'Ⲻ' => 'ⲻ', 'Ⲽ' => 'ⲽ', 'Ⲿ' => 'ⲿ', 'Ⳁ' => 'ⳁ', 'Ⳃ' => 'ⳃ', 'Ⳅ' => 'ⳅ', 'Ⳇ' => 'ⳇ', 'Ⳉ' => 'ⳉ', 'Ⳋ' => 'ⳋ', 'Ⳍ' => 'ⳍ', 'Ⳏ' => 'ⳏ', 'Ⳑ' => 'ⳑ', 'Ⳓ' => 'ⳓ', 'Ⳕ' => 'ⳕ', 'Ⳗ' => 'ⳗ', 'Ⳙ' => 'ⳙ', 'Ⳛ' => 'ⳛ', 'Ⳝ' => 'ⳝ', 'Ⳟ' => 'ⳟ', 'Ⳡ' => 'ⳡ', 'Ⳣ' => 'ⳣ', 'Ⳬ' => 'ⳬ', 'Ⳮ' => 'ⳮ', 'Ⳳ' => 'ⳳ', 'Ꙁ' => 'ꙁ', 'Ꙃ' => 'ꙃ', 'Ꙅ' => 'ꙅ', 'Ꙇ' => 'ꙇ', 'Ꙉ' => 'ꙉ', 'Ꙋ' => 'ꙋ', 'Ꙍ' => 'ꙍ', 'Ꙏ' => 'ꙏ', 'Ꙑ' => 'ꙑ', 'Ꙓ' => 'ꙓ', 'Ꙕ' => 'ꙕ', 'Ꙗ' => 'ꙗ', 'Ꙙ' => 'ꙙ', 'Ꙛ' => 'ꙛ', 'Ꙝ' => 'ꙝ', 'Ꙟ' => 'ꙟ', 'Ꙡ' => 'ꙡ', 'Ꙣ' => 'ꙣ', 'Ꙥ' => 'ꙥ', 'Ꙧ' => 'ꙧ', 'Ꙩ' => 'ꙩ', 'Ꙫ' => 'ꙫ', 'Ꙭ' => 'ꙭ', 'Ꚁ' => 'ꚁ', 'Ꚃ' => 'ꚃ', 'Ꚅ' => 'ꚅ', 'Ꚇ' => 'ꚇ', 'Ꚉ' => 'ꚉ', 'Ꚋ' => 'ꚋ', 'Ꚍ' => 'ꚍ', 'Ꚏ' => 'ꚏ', 'Ꚑ' => 'ꚑ', 'Ꚓ' => 'ꚓ', 'Ꚕ' => 'ꚕ', 'Ꚗ' => 'ꚗ', 'Ꚙ' => 'ꚙ', 'Ꚛ' => 'ꚛ', 'Ꜣ' => 'ꜣ', 'Ꜥ' => 'ꜥ', 'Ꜧ' => 'ꜧ', 'Ꜩ' => 'ꜩ', 'Ꜫ' => 'ꜫ', 'Ꜭ' => 'ꜭ', 'Ꜯ' => 'ꜯ', 'Ꜳ' => 'ꜳ', 'Ꜵ' => 'ꜵ', 'Ꜷ' => 'ꜷ', 'Ꜹ' => 'ꜹ', 'Ꜻ' => 'ꜻ', 'Ꜽ' => 'ꜽ', 'Ꜿ' => 'ꜿ', 'Ꝁ' => 'ꝁ', 'Ꝃ' => 'ꝃ', 'Ꝅ' => 'ꝅ', 'Ꝇ' => 'ꝇ', 'Ꝉ' => 'ꝉ', 'Ꝋ' => 'ꝋ', 'Ꝍ' => 'ꝍ', 'Ꝏ' => 'ꝏ', 'Ꝑ' => 'ꝑ', 'Ꝓ' => 'ꝓ', 'Ꝕ' => 'ꝕ', 'Ꝗ' => 'ꝗ', 'Ꝙ' => 'ꝙ', 'Ꝛ' => 'ꝛ', 'Ꝝ' => 'ꝝ', 'Ꝟ' => 'ꝟ', 'Ꝡ' => 'ꝡ', 'Ꝣ' => 'ꝣ', 'Ꝥ' => 'ꝥ', 'Ꝧ' => 'ꝧ', 'Ꝩ' => 'ꝩ', 'Ꝫ' => 'ꝫ', 'Ꝭ' => 'ꝭ', 'Ꝯ' => 'ꝯ', 'Ꝺ' => 'ꝺ', 'Ꝼ' => 'ꝼ', 'Ᵹ' => 'ᵹ', 'Ꝿ' => 'ꝿ', 'Ꞁ' => 'ꞁ', 'Ꞃ' => 'ꞃ', 'Ꞅ' => 'ꞅ', 'Ꞇ' => 'ꞇ', 'Ꞌ' => 'ꞌ', 'Ɥ' => 'ɥ', 'Ꞑ' => 'ꞑ', 'Ꞓ' => 'ꞓ', 'Ꞗ' => 'ꞗ', 'Ꞙ' => 'ꞙ', 'Ꞛ' => 'ꞛ', 'Ꞝ' => 'ꞝ', 'Ꞟ' => 'ꞟ', 'Ꞡ' => 'ꞡ', 'Ꞣ' => 'ꞣ', 'Ꞥ' => 'ꞥ', 'Ꞧ' => 'ꞧ', 'Ꞩ' => 'ꞩ', 'Ɦ' => 'ɦ', 'Ɜ' => 'ɜ', 'Ɡ' => 'ɡ', 'Ɬ' => 'ɬ', 'Ɪ' => 'ɪ', 'Ʞ' => 'ʞ', 'Ʇ' => 'ʇ', 'Ʝ' => 'ʝ', 'Ꭓ' => 'ꭓ', 'Ꞵ' => 'ꞵ', 'Ꞷ' => 'ꞷ', 'Ꞹ' => 'ꞹ', 'Ꞻ' => 'ꞻ', 'Ꞽ' => 'ꞽ', 'Ꞿ' => 'ꞿ', 'Ꟃ' => 'ꟃ', 'Ꞔ' => 'ꞔ', 'Ʂ' => 'ʂ', 'Ᶎ' => 'ᶎ', 'Ꟈ' => 'ꟈ', 'Ꟊ' => 'ꟊ', 'Ꟶ' => 'ꟶ', 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', '𐐀' => '𐐨', '𐐁' => '𐐩', '𐐂' => '𐐪', '𐐃' => '𐐫', '𐐄' => '𐐬', '𐐅' => '𐐭', '𐐆' => '𐐮', '𐐇' => '𐐯', '𐐈' => '𐐰', '𐐉' => '𐐱', '𐐊' => '𐐲', '𐐋' => '𐐳', '𐐌' => '𐐴', '𐐍' => '𐐵', '𐐎' => '𐐶', '𐐏' => '𐐷', '𐐐' => '𐐸', '𐐑' => '𐐹', '𐐒' => '𐐺', '𐐓' => '𐐻', '𐐔' => '𐐼', '𐐕' => '𐐽', '𐐖' => '𐐾', '𐐗' => '𐐿', '𐐘' => '𐑀', '𐐙' => '𐑁', '𐐚' => '𐑂', '𐐛' => '𐑃', '𐐜' => '𐑄', '𐐝' => '𐑅', '𐐞' => '𐑆', '𐐟' => '𐑇', '𐐠' => '𐑈', '𐐡' => '𐑉', '𐐢' => '𐑊', '𐐣' => '𐑋', '𐐤' => '𐑌', '𐐥' => '𐑍', '𐐦' => '𐑎', '𐐧' => '𐑏', '𐒰' => '𐓘', '𐒱' => '𐓙', '𐒲' => '𐓚', '𐒳' => '𐓛', '𐒴' => '𐓜', '𐒵' => '𐓝', '𐒶' => '𐓞', '𐒷' => '𐓟', '𐒸' => '𐓠', '𐒹' => '𐓡', '𐒺' => '𐓢', '𐒻' => '𐓣', '𐒼' => '𐓤', '𐒽' => '𐓥', '𐒾' => '𐓦', '𐒿' => '𐓧', '𐓀' => '𐓨', '𐓁' => '𐓩', '𐓂' => '𐓪', '𐓃' => '𐓫', '𐓄' => '𐓬', '𐓅' => '𐓭', '𐓆' => '𐓮', '𐓇' => '𐓯', '𐓈' => '𐓰', '𐓉' => '𐓱', '𐓊' => '𐓲', '𐓋' => '𐓳', '𐓌' => '𐓴', '𐓍' => '𐓵', '𐓎' => '𐓶', '𐓏' => '𐓷', '𐓐' => '𐓸', '𐓑' => '𐓹', '𐓒' => '𐓺', '𐓓' => '𐓻', '𐲀' => '𐳀', '𐲁' => '𐳁', '𐲂' => '𐳂', '𐲃' => '𐳃', '𐲄' => '𐳄', '𐲅' => '𐳅', '𐲆' => '𐳆', '𐲇' => '𐳇', '𐲈' => '𐳈', '𐲉' => '𐳉', '𐲊' => '𐳊', '𐲋' => '𐳋', '𐲌' => '𐳌', '𐲍' => '𐳍', '𐲎' => '𐳎', '𐲏' => '𐳏', '𐲐' => '𐳐', '𐲑' => '𐳑', '𐲒' => '𐳒', '𐲓' => '𐳓', '𐲔' => '𐳔', '𐲕' => '𐳕', '𐲖' => '𐳖', '𐲗' => '𐳗', '𐲘' => '𐳘', '𐲙' => '𐳙', '𐲚' => '𐳚', '𐲛' => '𐳛', '𐲜' => '𐳜', '𐲝' => '𐳝', '𐲞' => '𐳞', '𐲟' => '𐳟', '𐲠' => '𐳠', '𐲡' => '𐳡', '𐲢' => '𐳢', '𐲣' => '𐳣', '𐲤' => '𐳤', '𐲥' => '𐳥', '𐲦' => '𐳦', '𐲧' => '𐳧', '𐲨' => '𐳨', '𐲩' => '𐳩', '𐲪' => '𐳪', '𐲫' => '𐳫', '𐲬' => '𐳬', '𐲭' => '𐳭', '𐲮' => '𐳮', '𐲯' => '𐳯', '𐲰' => '𐳰', '𐲱' => '𐳱', '𐲲' => '𐳲', '𑢠' => '𑣀', '𑢡' => '𑣁', '𑢢' => '𑣂', '𑢣' => '𑣃', '𑢤' => '𑣄', '𑢥' => '𑣅', '𑢦' => '𑣆', '𑢧' => '𑣇', '𑢨' => '𑣈', '𑢩' => '𑣉', '𑢪' => '𑣊', '𑢫' => '𑣋', '𑢬' => '𑣌', '𑢭' => '𑣍', '𑢮' => '𑣎', '𑢯' => '𑣏', '𑢰' => '𑣐', '𑢱' => '𑣑', '𑢲' => '𑣒', '𑢳' => '𑣓', '𑢴' => '𑣔', '𑢵' => '𑣕', '𑢶' => '𑣖', '𑢷' => '𑣗', '𑢸' => '𑣘', '𑢹' => '𑣙', '𑢺' => '𑣚', '𑢻' => '𑣛', '𑢼' => '𑣜', '𑢽' => '𑣝', '𑢾' => '𑣞', '𑢿' => '𑣟', '𖹀' => '𖹠', '𖹁' => '𖹡', '𖹂' => '𖹢', '𖹃' => '𖹣', '𖹄' => '𖹤', '𖹅' => '𖹥', '𖹆' => '𖹦', '𖹇' => '𖹧', '𖹈' => '𖹨', '𖹉' => '𖹩', '𖹊' => '𖹪', '𖹋' => '𖹫', '𖹌' => '𖹬', '𖹍' => '𖹭', '𖹎' => '𖹮', '𖹏' => '𖹯', '𖹐' => '𖹰', '𖹑' => '𖹱', '𖹒' => '𖹲', '𖹓' => '𖹳', '𖹔' => '𖹴', '𖹕' => '𖹵', '𖹖' => '𖹶', '𖹗' => '𖹷', '𖹘' => '𖹸', '𖹙' => '𖹹', '𖹚' => '𖹺', '𖹛' => '𖹻', '𖹜' => '𖹼', '𖹝' => '𖹽', '𖹞' => '𖹾', '𖹟' => '𖹿', '𞤀' => '𞤢', '𞤁' => '𞤣', '𞤂' => '𞤤', '𞤃' => '𞤥', '𞤄' => '𞤦', '𞤅' => '𞤧', '𞤆' => '𞤨', '𞤇' => '𞤩', '𞤈' => '𞤪', '𞤉' => '𞤫', '𞤊' => '𞤬', '𞤋' => '𞤭', '𞤌' => '𞤮', '𞤍' => '𞤯', '𞤎' => '𞤰', '𞤏' => '𞤱', '𞤐' => '𞤲', '𞤑' => '𞤳', '𞤒' => '𞤴', '𞤓' => '𞤵', '𞤔' => '𞤶', '𞤕' => '𞤷', '𞤖' => '𞤸', '𞤗' => '𞤹', '𞤘' => '𞤺', '𞤙' => '𞤻', '𞤚' => '𞤼', '𞤛' => '𞤽', '𞤜' => '𞤾', '𞤝' => '𞤿', '𞤞' => '𞥀', '𞤟' => '𞥁', '𞤠' => '𞥂', '𞤡' => '𞥃'); diff --git a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php index 183a17b7a..195a775f2 100644 --- a/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +++ b/vendor/rector/rector/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php @@ -1,6 +1,6 @@ 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D', 'e' => 'E', 'f' => 'F', 'g' => 'G', 'h' => 'H', 'i' => 'I', 'j' => 'J', 'k' => 'K', 'l' => 'L', 'm' => 'M', 'n' => 'N', 'o' => 'O', 'p' => 'P', 'q' => 'Q', 'r' => 'R', 's' => 'S', 't' => 'T', 'u' => 'U', 'v' => 'V', 'w' => 'W', 'x' => 'X', 'y' => 'Y', 'z' => 'Z', 'µ' => 'Μ', 'à' => 'À', 'á' => 'Á', 'â' => 'Â', 'ã' => 'Ã', 'ä' => 'Ä', 'å' => 'Å', 'æ' => 'Æ', 'ç' => 'Ç', 'è' => 'È', 'é' => 'É', 'ê' => 'Ê', 'ë' => 'Ë', 'ì' => 'Ì', 'í' => 'Í', 'î' => 'Î', 'ï' => 'Ï', 'ð' => 'Ð', 'ñ' => 'Ñ', 'ò' => 'Ò', 'ó' => 'Ó', 'ô' => 'Ô', 'õ' => 'Õ', 'ö' => 'Ö', 'ø' => 'Ø', 'ù' => 'Ù', 'ú' => 'Ú', 'û' => 'Û', 'ü' => 'Ü', 'ý' => 'Ý', 'þ' => 'Þ', 'ÿ' => 'Ÿ', 'ā' => 'Ā', 'ă' => 'Ă', 'ą' => 'Ą', 'ć' => 'Ć', 'ĉ' => 'Ĉ', 'ċ' => 'Ċ', 'č' => 'Č', 'ď' => 'Ď', 'đ' => 'Đ', 'ē' => 'Ē', 'ĕ' => 'Ĕ', 'ė' => 'Ė', 'ę' => 'Ę', 'ě' => 'Ě', 'ĝ' => 'Ĝ', 'ğ' => 'Ğ', 'ġ' => 'Ġ', 'ģ' => 'Ģ', 'ĥ' => 'Ĥ', 'ħ' => 'Ħ', 'ĩ' => 'Ĩ', 'ī' => 'Ī', 'ĭ' => 'Ĭ', 'į' => 'Į', 'ı' => 'I', 'ij' => 'IJ', 'ĵ' => 'Ĵ', 'ķ' => 'Ķ', 'ĺ' => 'Ĺ', 'ļ' => 'Ļ', 'ľ' => 'Ľ', 'ŀ' => 'Ŀ', 'ł' => 'Ł', 'ń' => 'Ń', 'ņ' => 'Ņ', 'ň' => 'Ň', 'ŋ' => 'Ŋ', 'ō' => 'Ō', 'ŏ' => 'Ŏ', 'ő' => 'Ő', 'œ' => 'Œ', 'ŕ' => 'Ŕ', 'ŗ' => 'Ŗ', 'ř' => 'Ř', 'ś' => 'Ś', 'ŝ' => 'Ŝ', 'ş' => 'Ş', 'š' => 'Š', 'ţ' => 'Ţ', 'ť' => 'Ť', 'ŧ' => 'Ŧ', 'ũ' => 'Ũ', 'ū' => 'Ū', 'ŭ' => 'Ŭ', 'ů' => 'Ů', 'ű' => 'Ű', 'ų' => 'Ų', 'ŵ' => 'Ŵ', 'ŷ' => 'Ŷ', 'ź' => 'Ź', 'ż' => 'Ż', 'ž' => 'Ž', 'ſ' => 'S', 'ƀ' => 'Ƀ', 'ƃ' => 'Ƃ', 'ƅ' => 'Ƅ', 'ƈ' => 'Ƈ', 'ƌ' => 'Ƌ', 'ƒ' => 'Ƒ', 'ƕ' => 'Ƕ', 'ƙ' => 'Ƙ', 'ƚ' => 'Ƚ', 'ƞ' => 'Ƞ', 'ơ' => 'Ơ', 'ƣ' => 'Ƣ', 'ƥ' => 'Ƥ', 'ƨ' => 'Ƨ', 'ƭ' => 'Ƭ', 'ư' => 'Ư', 'ƴ' => 'Ƴ', 'ƶ' => 'Ƶ', 'ƹ' => 'Ƹ', 'ƽ' => 'Ƽ', 'ƿ' => 'Ƿ', 'Dž' => 'DŽ', 'dž' => 'DŽ', 'Lj' => 'LJ', 'lj' => 'LJ', 'Nj' => 'NJ', 'nj' => 'NJ', 'ǎ' => 'Ǎ', 'ǐ' => 'Ǐ', 'ǒ' => 'Ǒ', 'ǔ' => 'Ǔ', 'ǖ' => 'Ǖ', 'ǘ' => 'Ǘ', 'ǚ' => 'Ǚ', 'ǜ' => 'Ǜ', 'ǝ' => 'Ǝ', 'ǟ' => 'Ǟ', 'ǡ' => 'Ǡ', 'ǣ' => 'Ǣ', 'ǥ' => 'Ǥ', 'ǧ' => 'Ǧ', 'ǩ' => 'Ǩ', 'ǫ' => 'Ǫ', 'ǭ' => 'Ǭ', 'ǯ' => 'Ǯ', 'Dz' => 'DZ', 'dz' => 'DZ', 'ǵ' => 'Ǵ', 'ǹ' => 'Ǹ', 'ǻ' => 'Ǻ', 'ǽ' => 'Ǽ', 'ǿ' => 'Ǿ', 'ȁ' => 'Ȁ', 'ȃ' => 'Ȃ', 'ȅ' => 'Ȅ', 'ȇ' => 'Ȇ', 'ȉ' => 'Ȉ', 'ȋ' => 'Ȋ', 'ȍ' => 'Ȍ', 'ȏ' => 'Ȏ', 'ȑ' => 'Ȑ', 'ȓ' => 'Ȓ', 'ȕ' => 'Ȕ', 'ȗ' => 'Ȗ', 'ș' => 'Ș', 'ț' => 'Ț', 'ȝ' => 'Ȝ', 'ȟ' => 'Ȟ', 'ȣ' => 'Ȣ', 'ȥ' => 'Ȥ', 'ȧ' => 'Ȧ', 'ȩ' => 'Ȩ', 'ȫ' => 'Ȫ', 'ȭ' => 'Ȭ', 'ȯ' => 'Ȯ', 'ȱ' => 'Ȱ', 'ȳ' => 'Ȳ', 'ȼ' => 'Ȼ', 'ȿ' => 'Ȿ', 'ɀ' => 'Ɀ', 'ɂ' => 'Ɂ', 'ɇ' => 'Ɇ', 'ɉ' => 'Ɉ', 'ɋ' => 'Ɋ', 'ɍ' => 'Ɍ', 'ɏ' => 'Ɏ', 'ɐ' => 'Ɐ', 'ɑ' => 'Ɑ', 'ɒ' => 'Ɒ', 'ɓ' => 'Ɓ', 'ɔ' => 'Ɔ', 'ɖ' => 'Ɖ', 'ɗ' => 'Ɗ', 'ə' => 'Ə', 'ɛ' => 'Ɛ', 'ɜ' => 'Ɜ', 'ɠ' => 'Ɠ', 'ɡ' => 'Ɡ', 'ɣ' => 'Ɣ', 'ɥ' => 'Ɥ', 'ɦ' => 'Ɦ', 'ɨ' => 'Ɨ', 'ɩ' => 'Ɩ', 'ɪ' => 'Ɪ', 'ɫ' => 'Ɫ', 'ɬ' => 'Ɬ', 'ɯ' => 'Ɯ', 'ɱ' => 'Ɱ', 'ɲ' => 'Ɲ', 'ɵ' => 'Ɵ', 'ɽ' => 'Ɽ', 'ʀ' => 'Ʀ', 'ʂ' => 'Ʂ', 'ʃ' => 'Ʃ', 'ʇ' => 'Ʇ', 'ʈ' => 'Ʈ', 'ʉ' => 'Ʉ', 'ʊ' => 'Ʊ', 'ʋ' => 'Ʋ', 'ʌ' => 'Ʌ', 'ʒ' => 'Ʒ', 'ʝ' => 'Ʝ', 'ʞ' => 'Ʞ', 'ͅ' => 'Ι', 'ͱ' => 'Ͱ', 'ͳ' => 'Ͳ', 'ͷ' => 'Ͷ', 'ͻ' => 'Ͻ', 'ͼ' => 'Ͼ', 'ͽ' => 'Ͽ', 'ά' => 'Ά', 'έ' => 'Έ', 'ή' => 'Ή', 'ί' => 'Ί', 'α' => 'Α', 'β' => 'Β', 'γ' => 'Γ', 'δ' => 'Δ', 'ε' => 'Ε', 'ζ' => 'Ζ', 'η' => 'Η', 'θ' => 'Θ', 'ι' => 'Ι', 'κ' => 'Κ', 'λ' => 'Λ', 'μ' => 'Μ', 'ν' => 'Ν', 'ξ' => 'Ξ', 'ο' => 'Ο', 'π' => 'Π', 'ρ' => 'Ρ', 'ς' => 'Σ', 'σ' => 'Σ', 'τ' => 'Τ', 'υ' => 'Υ', 'φ' => 'Φ', 'χ' => 'Χ', 'ψ' => 'Ψ', 'ω' => 'Ω', 'ϊ' => 'Ϊ', 'ϋ' => 'Ϋ', 'ό' => 'Ό', 'ύ' => 'Ύ', 'ώ' => 'Ώ', 'ϐ' => 'Β', 'ϑ' => 'Θ', 'ϕ' => 'Φ', 'ϖ' => 'Π', 'ϗ' => 'Ϗ', 'ϙ' => 'Ϙ', 'ϛ' => 'Ϛ', 'ϝ' => 'Ϝ', 'ϟ' => 'Ϟ', 'ϡ' => 'Ϡ', 'ϣ' => 'Ϣ', 'ϥ' => 'Ϥ', 'ϧ' => 'Ϧ', 'ϩ' => 'Ϩ', 'ϫ' => 'Ϫ', 'ϭ' => 'Ϭ', 'ϯ' => 'Ϯ', 'ϰ' => 'Κ', 'ϱ' => 'Ρ', 'ϲ' => 'Ϲ', 'ϳ' => 'Ϳ', 'ϵ' => 'Ε', 'ϸ' => 'Ϸ', 'ϻ' => 'Ϻ', 'а' => 'А', 'б' => 'Б', 'в' => 'В', 'г' => 'Г', 'д' => 'Д', 'е' => 'Е', 'ж' => 'Ж', 'з' => 'З', 'и' => 'И', 'й' => 'Й', 'к' => 'К', 'л' => 'Л', 'м' => 'М', 'н' => 'Н', 'о' => 'О', 'п' => 'П', 'р' => 'Р', 'с' => 'С', 'т' => 'Т', 'у' => 'У', 'ф' => 'Ф', 'х' => 'Х', 'ц' => 'Ц', 'ч' => 'Ч', 'ш' => 'Ш', 'щ' => 'Щ', 'ъ' => 'Ъ', 'ы' => 'Ы', 'ь' => 'Ь', 'э' => 'Э', 'ю' => 'Ю', 'я' => 'Я', 'ѐ' => 'Ѐ', 'ё' => 'Ё', 'ђ' => 'Ђ', 'ѓ' => 'Ѓ', 'є' => 'Є', 'ѕ' => 'Ѕ', 'і' => 'І', 'ї' => 'Ї', 'ј' => 'Ј', 'љ' => 'Љ', 'њ' => 'Њ', 'ћ' => 'Ћ', 'ќ' => 'Ќ', 'ѝ' => 'Ѝ', 'ў' => 'Ў', 'џ' => 'Џ', 'ѡ' => 'Ѡ', 'ѣ' => 'Ѣ', 'ѥ' => 'Ѥ', 'ѧ' => 'Ѧ', 'ѩ' => 'Ѩ', 'ѫ' => 'Ѫ', 'ѭ' => 'Ѭ', 'ѯ' => 'Ѯ', 'ѱ' => 'Ѱ', 'ѳ' => 'Ѳ', 'ѵ' => 'Ѵ', 'ѷ' => 'Ѷ', 'ѹ' => 'Ѹ', 'ѻ' => 'Ѻ', 'ѽ' => 'Ѽ', 'ѿ' => 'Ѿ', 'ҁ' => 'Ҁ', 'ҋ' => 'Ҋ', 'ҍ' => 'Ҍ', 'ҏ' => 'Ҏ', 'ґ' => 'Ґ', 'ғ' => 'Ғ', 'ҕ' => 'Ҕ', 'җ' => 'Җ', 'ҙ' => 'Ҙ', 'қ' => 'Қ', 'ҝ' => 'Ҝ', 'ҟ' => 'Ҟ', 'ҡ' => 'Ҡ', 'ң' => 'Ң', 'ҥ' => 'Ҥ', 'ҧ' => 'Ҧ', 'ҩ' => 'Ҩ', 'ҫ' => 'Ҫ', 'ҭ' => 'Ҭ', 'ү' => 'Ү', 'ұ' => 'Ұ', 'ҳ' => 'Ҳ', 'ҵ' => 'Ҵ', 'ҷ' => 'Ҷ', 'ҹ' => 'Ҹ', 'һ' => 'Һ', 'ҽ' => 'Ҽ', 'ҿ' => 'Ҿ', 'ӂ' => 'Ӂ', 'ӄ' => 'Ӄ', 'ӆ' => 'Ӆ', 'ӈ' => 'Ӈ', 'ӊ' => 'Ӊ', 'ӌ' => 'Ӌ', 'ӎ' => 'Ӎ', 'ӏ' => 'Ӏ', 'ӑ' => 'Ӑ', 'ӓ' => 'Ӓ', 'ӕ' => 'Ӕ', 'ӗ' => 'Ӗ', 'ә' => 'Ә', 'ӛ' => 'Ӛ', 'ӝ' => 'Ӝ', 'ӟ' => 'Ӟ', 'ӡ' => 'Ӡ', 'ӣ' => 'Ӣ', 'ӥ' => 'Ӥ', 'ӧ' => 'Ӧ', 'ө' => 'Ө', 'ӫ' => 'Ӫ', 'ӭ' => 'Ӭ', 'ӯ' => 'Ӯ', 'ӱ' => 'Ӱ', 'ӳ' => 'Ӳ', 'ӵ' => 'Ӵ', 'ӷ' => 'Ӷ', 'ӹ' => 'Ӹ', 'ӻ' => 'Ӻ', 'ӽ' => 'Ӽ', 'ӿ' => 'Ӿ', 'ԁ' => 'Ԁ', 'ԃ' => 'Ԃ', 'ԅ' => 'Ԅ', 'ԇ' => 'Ԇ', 'ԉ' => 'Ԉ', 'ԋ' => 'Ԋ', 'ԍ' => 'Ԍ', 'ԏ' => 'Ԏ', 'ԑ' => 'Ԑ', 'ԓ' => 'Ԓ', 'ԕ' => 'Ԕ', 'ԗ' => 'Ԗ', 'ԙ' => 'Ԙ', 'ԛ' => 'Ԛ', 'ԝ' => 'Ԝ', 'ԟ' => 'Ԟ', 'ԡ' => 'Ԡ', 'ԣ' => 'Ԣ', 'ԥ' => 'Ԥ', 'ԧ' => 'Ԧ', 'ԩ' => 'Ԩ', 'ԫ' => 'Ԫ', 'ԭ' => 'Ԭ', 'ԯ' => 'Ԯ', 'ա' => 'Ա', 'բ' => 'Բ', 'գ' => 'Գ', 'դ' => 'Դ', 'ե' => 'Ե', 'զ' => 'Զ', 'է' => 'Է', 'ը' => 'Ը', 'թ' => 'Թ', 'ժ' => 'Ժ', 'ի' => 'Ի', 'լ' => 'Լ', 'խ' => 'Խ', 'ծ' => 'Ծ', 'կ' => 'Կ', 'հ' => 'Հ', 'ձ' => 'Ձ', 'ղ' => 'Ղ', 'ճ' => 'Ճ', 'մ' => 'Մ', 'յ' => 'Յ', 'ն' => 'Ն', 'շ' => 'Շ', 'ո' => 'Ո', 'չ' => 'Չ', 'պ' => 'Պ', 'ջ' => 'Ջ', 'ռ' => 'Ռ', 'ս' => 'Ս', 'վ' => 'Վ', 'տ' => 'Տ', 'ր' => 'Ր', 'ց' => 'Ց', 'ւ' => 'Ւ', 'փ' => 'Փ', 'ք' => 'Ք', 'օ' => 'Օ', 'ֆ' => 'Ֆ', 'ა' => 'Ა', 'ბ' => 'Ბ', 'გ' => 'Გ', 'დ' => 'Დ', 'ე' => 'Ე', 'ვ' => 'Ვ', 'ზ' => 'Ზ', 'თ' => 'Თ', 'ი' => 'Ი', 'კ' => 'Კ', 'ლ' => 'Ლ', 'მ' => 'Მ', 'ნ' => 'Ნ', 'ო' => 'Ო', 'პ' => 'Პ', 'ჟ' => 'Ჟ', 'რ' => 'Რ', 'ს' => 'Ს', 'ტ' => 'Ტ', 'უ' => 'Უ', 'ფ' => 'Ფ', 'ქ' => 'Ქ', 'ღ' => 'Ღ', 'ყ' => 'Ყ', 'შ' => 'Შ', 'ჩ' => 'Ჩ', 'ც' => 'Ც', 'ძ' => 'Ძ', 'წ' => 'Წ', 'ჭ' => 'Ჭ', 'ხ' => 'Ხ', 'ჯ' => 'Ჯ', 'ჰ' => 'Ჰ', 'ჱ' => 'Ჱ', 'ჲ' => 'Ჲ', 'ჳ' => 'Ჳ', 'ჴ' => 'Ჴ', 'ჵ' => 'Ჵ', 'ჶ' => 'Ჶ', 'ჷ' => 'Ჷ', 'ჸ' => 'Ჸ', 'ჹ' => 'Ჹ', 'ჺ' => 'Ჺ', 'ჽ' => 'Ჽ', 'ჾ' => 'Ჾ', 'ჿ' => 'Ჿ', 'ᏸ' => 'Ᏸ', 'ᏹ' => 'Ᏹ', 'ᏺ' => 'Ᏺ', 'ᏻ' => 'Ᏻ', 'ᏼ' => 'Ᏼ', 'ᏽ' => 'Ᏽ', 'ᲀ' => 'В', 'ᲁ' => 'Д', 'ᲂ' => 'О', 'ᲃ' => 'С', 'ᲄ' => 'Т', 'ᲅ' => 'Т', 'ᲆ' => 'Ъ', 'ᲇ' => 'Ѣ', 'ᲈ' => 'Ꙋ', 'ᵹ' => 'Ᵹ', 'ᵽ' => 'Ᵽ', 'ᶎ' => 'Ᶎ', 'ḁ' => 'Ḁ', 'ḃ' => 'Ḃ', 'ḅ' => 'Ḅ', 'ḇ' => 'Ḇ', 'ḉ' => 'Ḉ', 'ḋ' => 'Ḋ', 'ḍ' => 'Ḍ', 'ḏ' => 'Ḏ', 'ḑ' => 'Ḑ', 'ḓ' => 'Ḓ', 'ḕ' => 'Ḕ', 'ḗ' => 'Ḗ', 'ḙ' => 'Ḙ', 'ḛ' => 'Ḛ', 'ḝ' => 'Ḝ', 'ḟ' => 'Ḟ', 'ḡ' => 'Ḡ', 'ḣ' => 'Ḣ', 'ḥ' => 'Ḥ', 'ḧ' => 'Ḧ', 'ḩ' => 'Ḩ', 'ḫ' => 'Ḫ', 'ḭ' => 'Ḭ', 'ḯ' => 'Ḯ', 'ḱ' => 'Ḱ', 'ḳ' => 'Ḳ', 'ḵ' => 'Ḵ', 'ḷ' => 'Ḷ', 'ḹ' => 'Ḹ', 'ḻ' => 'Ḻ', 'ḽ' => 'Ḽ', 'ḿ' => 'Ḿ', 'ṁ' => 'Ṁ', 'ṃ' => 'Ṃ', 'ṅ' => 'Ṅ', 'ṇ' => 'Ṇ', 'ṉ' => 'Ṉ', 'ṋ' => 'Ṋ', 'ṍ' => 'Ṍ', 'ṏ' => 'Ṏ', 'ṑ' => 'Ṑ', 'ṓ' => 'Ṓ', 'ṕ' => 'Ṕ', 'ṗ' => 'Ṗ', 'ṙ' => 'Ṙ', 'ṛ' => 'Ṛ', 'ṝ' => 'Ṝ', 'ṟ' => 'Ṟ', 'ṡ' => 'Ṡ', 'ṣ' => 'Ṣ', 'ṥ' => 'Ṥ', 'ṧ' => 'Ṧ', 'ṩ' => 'Ṩ', 'ṫ' => 'Ṫ', 'ṭ' => 'Ṭ', 'ṯ' => 'Ṯ', 'ṱ' => 'Ṱ', 'ṳ' => 'Ṳ', 'ṵ' => 'Ṵ', 'ṷ' => 'Ṷ', 'ṹ' => 'Ṹ', 'ṻ' => 'Ṻ', 'ṽ' => 'Ṽ', 'ṿ' => 'Ṿ', 'ẁ' => 'Ẁ', 'ẃ' => 'Ẃ', 'ẅ' => 'Ẅ', 'ẇ' => 'Ẇ', 'ẉ' => 'Ẉ', 'ẋ' => 'Ẋ', 'ẍ' => 'Ẍ', 'ẏ' => 'Ẏ', 'ẑ' => 'Ẑ', 'ẓ' => 'Ẓ', 'ẕ' => 'Ẕ', 'ẛ' => 'Ṡ', 'ạ' => 'Ạ', 'ả' => 'Ả', 'ấ' => 'Ấ', 'ầ' => 'Ầ', 'ẩ' => 'Ẩ', 'ẫ' => 'Ẫ', 'ậ' => 'Ậ', 'ắ' => 'Ắ', 'ằ' => 'Ằ', 'ẳ' => 'Ẳ', 'ẵ' => 'Ẵ', 'ặ' => 'Ặ', 'ẹ' => 'Ẹ', 'ẻ' => 'Ẻ', 'ẽ' => 'Ẽ', 'ế' => 'Ế', 'ề' => 'Ề', 'ể' => 'Ể', 'ễ' => 'Ễ', 'ệ' => 'Ệ', 'ỉ' => 'Ỉ', 'ị' => 'Ị', 'ọ' => 'Ọ', 'ỏ' => 'Ỏ', 'ố' => 'Ố', 'ồ' => 'Ồ', 'ổ' => 'Ổ', 'ỗ' => 'Ỗ', 'ộ' => 'Ộ', 'ớ' => 'Ớ', 'ờ' => 'Ờ', 'ở' => 'Ở', 'ỡ' => 'Ỡ', 'ợ' => 'Ợ', 'ụ' => 'Ụ', 'ủ' => 'Ủ', 'ứ' => 'Ứ', 'ừ' => 'Ừ', 'ử' => 'Ử', 'ữ' => 'Ữ', 'ự' => 'Ự', 'ỳ' => 'Ỳ', 'ỵ' => 'Ỵ', 'ỷ' => 'Ỷ', 'ỹ' => 'Ỹ', 'ỻ' => 'Ỻ', 'ỽ' => 'Ỽ', 'ỿ' => 'Ỿ', 'ἀ' => 'Ἀ', 'ἁ' => 'Ἁ', 'ἂ' => 'Ἂ', 'ἃ' => 'Ἃ', 'ἄ' => 'Ἄ', 'ἅ' => 'Ἅ', 'ἆ' => 'Ἆ', 'ἇ' => 'Ἇ', 'ἐ' => 'Ἐ', 'ἑ' => 'Ἑ', 'ἒ' => 'Ἒ', 'ἓ' => 'Ἓ', 'ἔ' => 'Ἔ', 'ἕ' => 'Ἕ', 'ἠ' => 'Ἠ', 'ἡ' => 'Ἡ', 'ἢ' => 'Ἢ', 'ἣ' => 'Ἣ', 'ἤ' => 'Ἤ', 'ἥ' => 'Ἥ', 'ἦ' => 'Ἦ', 'ἧ' => 'Ἧ', 'ἰ' => 'Ἰ', 'ἱ' => 'Ἱ', 'ἲ' => 'Ἲ', 'ἳ' => 'Ἳ', 'ἴ' => 'Ἴ', 'ἵ' => 'Ἵ', 'ἶ' => 'Ἶ', 'ἷ' => 'Ἷ', 'ὀ' => 'Ὀ', 'ὁ' => 'Ὁ', 'ὂ' => 'Ὂ', 'ὃ' => 'Ὃ', 'ὄ' => 'Ὄ', 'ὅ' => 'Ὅ', 'ὑ' => 'Ὑ', 'ὓ' => 'Ὓ', 'ὕ' => 'Ὕ', 'ὗ' => 'Ὗ', 'ὠ' => 'Ὠ', 'ὡ' => 'Ὡ', 'ὢ' => 'Ὢ', 'ὣ' => 'Ὣ', 'ὤ' => 'Ὤ', 'ὥ' => 'Ὥ', 'ὦ' => 'Ὦ', 'ὧ' => 'Ὧ', 'ὰ' => 'Ὰ', 'ά' => 'Ά', 'ὲ' => 'Ὲ', 'έ' => 'Έ', 'ὴ' => 'Ὴ', 'ή' => 'Ή', 'ὶ' => 'Ὶ', 'ί' => 'Ί', 'ὸ' => 'Ὸ', 'ό' => 'Ό', 'ὺ' => 'Ὺ', 'ύ' => 'Ύ', 'ὼ' => 'Ὼ', 'ώ' => 'Ώ', 'ᾀ' => 'ἈΙ', 'ᾁ' => 'ἉΙ', 'ᾂ' => 'ἊΙ', 'ᾃ' => 'ἋΙ', 'ᾄ' => 'ἌΙ', 'ᾅ' => 'ἍΙ', 'ᾆ' => 'ἎΙ', 'ᾇ' => 'ἏΙ', 'ᾐ' => 'ἨΙ', 'ᾑ' => 'ἩΙ', 'ᾒ' => 'ἪΙ', 'ᾓ' => 'ἫΙ', 'ᾔ' => 'ἬΙ', 'ᾕ' => 'ἭΙ', 'ᾖ' => 'ἮΙ', 'ᾗ' => 'ἯΙ', 'ᾠ' => 'ὨΙ', 'ᾡ' => 'ὩΙ', 'ᾢ' => 'ὪΙ', 'ᾣ' => 'ὫΙ', 'ᾤ' => 'ὬΙ', 'ᾥ' => 'ὭΙ', 'ᾦ' => 'ὮΙ', 'ᾧ' => 'ὯΙ', 'ᾰ' => 'Ᾰ', 'ᾱ' => 'Ᾱ', 'ᾳ' => 'ΑΙ', 'ι' => 'Ι', 'ῃ' => 'ΗΙ', 'ῐ' => 'Ῐ', 'ῑ' => 'Ῑ', 'ῠ' => 'Ῠ', 'ῡ' => 'Ῡ', 'ῥ' => 'Ῥ', 'ῳ' => 'ΩΙ', 'ⅎ' => 'Ⅎ', 'ⅰ' => 'Ⅰ', 'ⅱ' => 'Ⅱ', 'ⅲ' => 'Ⅲ', 'ⅳ' => 'Ⅳ', 'ⅴ' => 'Ⅴ', 'ⅵ' => 'Ⅵ', 'ⅶ' => 'Ⅶ', 'ⅷ' => 'Ⅷ', 'ⅸ' => 'Ⅸ', 'ⅹ' => 'Ⅹ', 'ⅺ' => 'Ⅺ', 'ⅻ' => 'Ⅻ', 'ⅼ' => 'Ⅼ', 'ⅽ' => 'Ⅽ', 'ⅾ' => 'Ⅾ', 'ⅿ' => 'Ⅿ', 'ↄ' => 'Ↄ', 'ⓐ' => 'Ⓐ', 'ⓑ' => 'Ⓑ', 'ⓒ' => 'Ⓒ', 'ⓓ' => 'Ⓓ', 'ⓔ' => 'Ⓔ', 'ⓕ' => 'Ⓕ', 'ⓖ' => 'Ⓖ', 'ⓗ' => 'Ⓗ', 'ⓘ' => 'Ⓘ', 'ⓙ' => 'Ⓙ', 'ⓚ' => 'Ⓚ', 'ⓛ' => 'Ⓛ', 'ⓜ' => 'Ⓜ', 'ⓝ' => 'Ⓝ', 'ⓞ' => 'Ⓞ', 'ⓟ' => 'Ⓟ', 'ⓠ' => 'Ⓠ', 'ⓡ' => 'Ⓡ', 'ⓢ' => 'Ⓢ', 'ⓣ' => 'Ⓣ', 'ⓤ' => 'Ⓤ', 'ⓥ' => 'Ⓥ', 'ⓦ' => 'Ⓦ', 'ⓧ' => 'Ⓧ', 'ⓨ' => 'Ⓨ', 'ⓩ' => 'Ⓩ', 'ⰰ' => 'Ⰰ', 'ⰱ' => 'Ⰱ', 'ⰲ' => 'Ⰲ', 'ⰳ' => 'Ⰳ', 'ⰴ' => 'Ⰴ', 'ⰵ' => 'Ⰵ', 'ⰶ' => 'Ⰶ', 'ⰷ' => 'Ⰷ', 'ⰸ' => 'Ⰸ', 'ⰹ' => 'Ⰹ', 'ⰺ' => 'Ⰺ', 'ⰻ' => 'Ⰻ', 'ⰼ' => 'Ⰼ', 'ⰽ' => 'Ⰽ', 'ⰾ' => 'Ⰾ', 'ⰿ' => 'Ⰿ', 'ⱀ' => 'Ⱀ', 'ⱁ' => 'Ⱁ', 'ⱂ' => 'Ⱂ', 'ⱃ' => 'Ⱃ', 'ⱄ' => 'Ⱄ', 'ⱅ' => 'Ⱅ', 'ⱆ' => 'Ⱆ', 'ⱇ' => 'Ⱇ', 'ⱈ' => 'Ⱈ', 'ⱉ' => 'Ⱉ', 'ⱊ' => 'Ⱊ', 'ⱋ' => 'Ⱋ', 'ⱌ' => 'Ⱌ', 'ⱍ' => 'Ⱍ', 'ⱎ' => 'Ⱎ', 'ⱏ' => 'Ⱏ', 'ⱐ' => 'Ⱐ', 'ⱑ' => 'Ⱑ', 'ⱒ' => 'Ⱒ', 'ⱓ' => 'Ⱓ', 'ⱔ' => 'Ⱔ', 'ⱕ' => 'Ⱕ', 'ⱖ' => 'Ⱖ', 'ⱗ' => 'Ⱗ', 'ⱘ' => 'Ⱘ', 'ⱙ' => 'Ⱙ', 'ⱚ' => 'Ⱚ', 'ⱛ' => 'Ⱛ', 'ⱜ' => 'Ⱜ', 'ⱝ' => 'Ⱝ', 'ⱞ' => 'Ⱞ', 'ⱡ' => 'Ⱡ', 'ⱥ' => 'Ⱥ', 'ⱦ' => 'Ⱦ', 'ⱨ' => 'Ⱨ', 'ⱪ' => 'Ⱪ', 'ⱬ' => 'Ⱬ', 'ⱳ' => 'Ⱳ', 'ⱶ' => 'Ⱶ', 'ⲁ' => 'Ⲁ', 'ⲃ' => 'Ⲃ', 'ⲅ' => 'Ⲅ', 'ⲇ' => 'Ⲇ', 'ⲉ' => 'Ⲉ', 'ⲋ' => 'Ⲋ', 'ⲍ' => 'Ⲍ', 'ⲏ' => 'Ⲏ', 'ⲑ' => 'Ⲑ', 'ⲓ' => 'Ⲓ', 'ⲕ' => 'Ⲕ', 'ⲗ' => 'Ⲗ', 'ⲙ' => 'Ⲙ', 'ⲛ' => 'Ⲛ', 'ⲝ' => 'Ⲝ', 'ⲟ' => 'Ⲟ', 'ⲡ' => 'Ⲡ', 'ⲣ' => 'Ⲣ', 'ⲥ' => 'Ⲥ', 'ⲧ' => 'Ⲧ', 'ⲩ' => 'Ⲩ', 'ⲫ' => 'Ⲫ', 'ⲭ' => 'Ⲭ', 'ⲯ' => 'Ⲯ', 'ⲱ' => 'Ⲱ', 'ⲳ' => 'Ⲳ', 'ⲵ' => 'Ⲵ', 'ⲷ' => 'Ⲷ', 'ⲹ' => 'Ⲹ', 'ⲻ' => 'Ⲻ', 'ⲽ' => 'Ⲽ', 'ⲿ' => 'Ⲿ', 'ⳁ' => 'Ⳁ', 'ⳃ' => 'Ⳃ', 'ⳅ' => 'Ⳅ', 'ⳇ' => 'Ⳇ', 'ⳉ' => 'Ⳉ', 'ⳋ' => 'Ⳋ', 'ⳍ' => 'Ⳍ', 'ⳏ' => 'Ⳏ', 'ⳑ' => 'Ⳑ', 'ⳓ' => 'Ⳓ', 'ⳕ' => 'Ⳕ', 'ⳗ' => 'Ⳗ', 'ⳙ' => 'Ⳙ', 'ⳛ' => 'Ⳛ', 'ⳝ' => 'Ⳝ', 'ⳟ' => 'Ⳟ', 'ⳡ' => 'Ⳡ', 'ⳣ' => 'Ⳣ', 'ⳬ' => 'Ⳬ', 'ⳮ' => 'Ⳮ', 'ⳳ' => 'Ⳳ', 'ⴀ' => 'Ⴀ', 'ⴁ' => 'Ⴁ', 'ⴂ' => 'Ⴂ', 'ⴃ' => 'Ⴃ', 'ⴄ' => 'Ⴄ', 'ⴅ' => 'Ⴅ', 'ⴆ' => 'Ⴆ', 'ⴇ' => 'Ⴇ', 'ⴈ' => 'Ⴈ', 'ⴉ' => 'Ⴉ', 'ⴊ' => 'Ⴊ', 'ⴋ' => 'Ⴋ', 'ⴌ' => 'Ⴌ', 'ⴍ' => 'Ⴍ', 'ⴎ' => 'Ⴎ', 'ⴏ' => 'Ⴏ', 'ⴐ' => 'Ⴐ', 'ⴑ' => 'Ⴑ', 'ⴒ' => 'Ⴒ', 'ⴓ' => 'Ⴓ', 'ⴔ' => 'Ⴔ', 'ⴕ' => 'Ⴕ', 'ⴖ' => 'Ⴖ', 'ⴗ' => 'Ⴗ', 'ⴘ' => 'Ⴘ', 'ⴙ' => 'Ⴙ', 'ⴚ' => 'Ⴚ', 'ⴛ' => 'Ⴛ', 'ⴜ' => 'Ⴜ', 'ⴝ' => 'Ⴝ', 'ⴞ' => 'Ⴞ', 'ⴟ' => 'Ⴟ', 'ⴠ' => 'Ⴠ', 'ⴡ' => 'Ⴡ', 'ⴢ' => 'Ⴢ', 'ⴣ' => 'Ⴣ', 'ⴤ' => 'Ⴤ', 'ⴥ' => 'Ⴥ', 'ⴧ' => 'Ⴧ', 'ⴭ' => 'Ⴭ', 'ꙁ' => 'Ꙁ', 'ꙃ' => 'Ꙃ', 'ꙅ' => 'Ꙅ', 'ꙇ' => 'Ꙇ', 'ꙉ' => 'Ꙉ', 'ꙋ' => 'Ꙋ', 'ꙍ' => 'Ꙍ', 'ꙏ' => 'Ꙏ', 'ꙑ' => 'Ꙑ', 'ꙓ' => 'Ꙓ', 'ꙕ' => 'Ꙕ', 'ꙗ' => 'Ꙗ', 'ꙙ' => 'Ꙙ', 'ꙛ' => 'Ꙛ', 'ꙝ' => 'Ꙝ', 'ꙟ' => 'Ꙟ', 'ꙡ' => 'Ꙡ', 'ꙣ' => 'Ꙣ', 'ꙥ' => 'Ꙥ', 'ꙧ' => 'Ꙧ', 'ꙩ' => 'Ꙩ', 'ꙫ' => 'Ꙫ', 'ꙭ' => 'Ꙭ', 'ꚁ' => 'Ꚁ', 'ꚃ' => 'Ꚃ', 'ꚅ' => 'Ꚅ', 'ꚇ' => 'Ꚇ', 'ꚉ' => 'Ꚉ', 'ꚋ' => 'Ꚋ', 'ꚍ' => 'Ꚍ', 'ꚏ' => 'Ꚏ', 'ꚑ' => 'Ꚑ', 'ꚓ' => 'Ꚓ', 'ꚕ' => 'Ꚕ', 'ꚗ' => 'Ꚗ', 'ꚙ' => 'Ꚙ', 'ꚛ' => 'Ꚛ', 'ꜣ' => 'Ꜣ', 'ꜥ' => 'Ꜥ', 'ꜧ' => 'Ꜧ', 'ꜩ' => 'Ꜩ', 'ꜫ' => 'Ꜫ', 'ꜭ' => 'Ꜭ', 'ꜯ' => 'Ꜯ', 'ꜳ' => 'Ꜳ', 'ꜵ' => 'Ꜵ', 'ꜷ' => 'Ꜷ', 'ꜹ' => 'Ꜹ', 'ꜻ' => 'Ꜻ', 'ꜽ' => 'Ꜽ', 'ꜿ' => 'Ꜿ', 'ꝁ' => 'Ꝁ', 'ꝃ' => 'Ꝃ', 'ꝅ' => 'Ꝅ', 'ꝇ' => 'Ꝇ', 'ꝉ' => 'Ꝉ', 'ꝋ' => 'Ꝋ', 'ꝍ' => 'Ꝍ', 'ꝏ' => 'Ꝏ', 'ꝑ' => 'Ꝑ', 'ꝓ' => 'Ꝓ', 'ꝕ' => 'Ꝕ', 'ꝗ' => 'Ꝗ', 'ꝙ' => 'Ꝙ', 'ꝛ' => 'Ꝛ', 'ꝝ' => 'Ꝝ', 'ꝟ' => 'Ꝟ', 'ꝡ' => 'Ꝡ', 'ꝣ' => 'Ꝣ', 'ꝥ' => 'Ꝥ', 'ꝧ' => 'Ꝧ', 'ꝩ' => 'Ꝩ', 'ꝫ' => 'Ꝫ', 'ꝭ' => 'Ꝭ', 'ꝯ' => 'Ꝯ', 'ꝺ' => 'Ꝺ', 'ꝼ' => 'Ꝼ', 'ꝿ' => 'Ꝿ', 'ꞁ' => 'Ꞁ', 'ꞃ' => 'Ꞃ', 'ꞅ' => 'Ꞅ', 'ꞇ' => 'Ꞇ', 'ꞌ' => 'Ꞌ', 'ꞑ' => 'Ꞑ', 'ꞓ' => 'Ꞓ', 'ꞔ' => 'Ꞔ', 'ꞗ' => 'Ꞗ', 'ꞙ' => 'Ꞙ', 'ꞛ' => 'Ꞛ', 'ꞝ' => 'Ꞝ', 'ꞟ' => 'Ꞟ', 'ꞡ' => 'Ꞡ', 'ꞣ' => 'Ꞣ', 'ꞥ' => 'Ꞥ', 'ꞧ' => 'Ꞧ', 'ꞩ' => 'Ꞩ', 'ꞵ' => 'Ꞵ', 'ꞷ' => 'Ꞷ', 'ꞹ' => 'Ꞹ', 'ꞻ' => 'Ꞻ', 'ꞽ' => 'Ꞽ', 'ꞿ' => 'Ꞿ', 'ꟃ' => 'Ꟃ', 'ꟈ' => 'Ꟈ', 'ꟊ' => 'Ꟊ', 'ꟶ' => 'Ꟶ', 'ꭓ' => 'Ꭓ', 'ꭰ' => 'Ꭰ', 'ꭱ' => 'Ꭱ', 'ꭲ' => 'Ꭲ', 'ꭳ' => 'Ꭳ', 'ꭴ' => 'Ꭴ', 'ꭵ' => 'Ꭵ', 'ꭶ' => 'Ꭶ', 'ꭷ' => 'Ꭷ', 'ꭸ' => 'Ꭸ', 'ꭹ' => 'Ꭹ', 'ꭺ' => 'Ꭺ', 'ꭻ' => 'Ꭻ', 'ꭼ' => 'Ꭼ', 'ꭽ' => 'Ꭽ', 'ꭾ' => 'Ꭾ', 'ꭿ' => 'Ꭿ', 'ꮀ' => 'Ꮀ', 'ꮁ' => 'Ꮁ', 'ꮂ' => 'Ꮂ', 'ꮃ' => 'Ꮃ', 'ꮄ' => 'Ꮄ', 'ꮅ' => 'Ꮅ', 'ꮆ' => 'Ꮆ', 'ꮇ' => 'Ꮇ', 'ꮈ' => 'Ꮈ', 'ꮉ' => 'Ꮉ', 'ꮊ' => 'Ꮊ', 'ꮋ' => 'Ꮋ', 'ꮌ' => 'Ꮌ', 'ꮍ' => 'Ꮍ', 'ꮎ' => 'Ꮎ', 'ꮏ' => 'Ꮏ', 'ꮐ' => 'Ꮐ', 'ꮑ' => 'Ꮑ', 'ꮒ' => 'Ꮒ', 'ꮓ' => 'Ꮓ', 'ꮔ' => 'Ꮔ', 'ꮕ' => 'Ꮕ', 'ꮖ' => 'Ꮖ', 'ꮗ' => 'Ꮗ', 'ꮘ' => 'Ꮘ', 'ꮙ' => 'Ꮙ', 'ꮚ' => 'Ꮚ', 'ꮛ' => 'Ꮛ', 'ꮜ' => 'Ꮜ', 'ꮝ' => 'Ꮝ', 'ꮞ' => 'Ꮞ', 'ꮟ' => 'Ꮟ', 'ꮠ' => 'Ꮠ', 'ꮡ' => 'Ꮡ', 'ꮢ' => 'Ꮢ', 'ꮣ' => 'Ꮣ', 'ꮤ' => 'Ꮤ', 'ꮥ' => 'Ꮥ', 'ꮦ' => 'Ꮦ', 'ꮧ' => 'Ꮧ', 'ꮨ' => 'Ꮨ', 'ꮩ' => 'Ꮩ', 'ꮪ' => 'Ꮪ', 'ꮫ' => 'Ꮫ', 'ꮬ' => 'Ꮬ', 'ꮭ' => 'Ꮭ', 'ꮮ' => 'Ꮮ', 'ꮯ' => 'Ꮯ', 'ꮰ' => 'Ꮰ', 'ꮱ' => 'Ꮱ', 'ꮲ' => 'Ꮲ', 'ꮳ' => 'Ꮳ', 'ꮴ' => 'Ꮴ', 'ꮵ' => 'Ꮵ', 'ꮶ' => 'Ꮶ', 'ꮷ' => 'Ꮷ', 'ꮸ' => 'Ꮸ', 'ꮹ' => 'Ꮹ', 'ꮺ' => 'Ꮺ', 'ꮻ' => 'Ꮻ', 'ꮼ' => 'Ꮼ', 'ꮽ' => 'Ꮽ', 'ꮾ' => 'Ꮾ', 'ꮿ' => 'Ꮿ', 'a' => 'A', 'b' => 'B', 'c' => 'C', 'd' => 'D', 'e' => 'E', 'f' => 'F', 'g' => 'G', 'h' => 'H', 'i' => 'I', 'j' => 'J', 'k' => 'K', 'l' => 'L', 'm' => 'M', 'n' => 'N', 'o' => 'O', 'p' => 'P', 'q' => 'Q', 'r' => 'R', 's' => 'S', 't' => 'T', 'u' => 'U', 'v' => 'V', 'w' => 'W', 'x' => 'X', 'y' => 'Y', 'z' => 'Z', '𐐨' => '𐐀', '𐐩' => '𐐁', '𐐪' => '𐐂', '𐐫' => '𐐃', '𐐬' => '𐐄', '𐐭' => '𐐅', '𐐮' => '𐐆', '𐐯' => '𐐇', '𐐰' => '𐐈', '𐐱' => '𐐉', '𐐲' => '𐐊', '𐐳' => '𐐋', '𐐴' => '𐐌', '𐐵' => '𐐍', '𐐶' => '𐐎', '𐐷' => '𐐏', '𐐸' => '𐐐', '𐐹' => '𐐑', '𐐺' => '𐐒', '𐐻' => '𐐓', '𐐼' => '𐐔', '𐐽' => '𐐕', '𐐾' => '𐐖', '𐐿' => '𐐗', '𐑀' => '𐐘', '𐑁' => '𐐙', '𐑂' => '𐐚', '𐑃' => '𐐛', '𐑄' => '𐐜', '𐑅' => '𐐝', '𐑆' => '𐐞', '𐑇' => '𐐟', '𐑈' => '𐐠', '𐑉' => '𐐡', '𐑊' => '𐐢', '𐑋' => '𐐣', '𐑌' => '𐐤', '𐑍' => '𐐥', '𐑎' => '𐐦', '𐑏' => '𐐧', '𐓘' => '𐒰', '𐓙' => '𐒱', '𐓚' => '𐒲', '𐓛' => '𐒳', '𐓜' => '𐒴', '𐓝' => '𐒵', '𐓞' => '𐒶', '𐓟' => '𐒷', '𐓠' => '𐒸', '𐓡' => '𐒹', '𐓢' => '𐒺', '𐓣' => '𐒻', '𐓤' => '𐒼', '𐓥' => '𐒽', '𐓦' => '𐒾', '𐓧' => '𐒿', '𐓨' => '𐓀', '𐓩' => '𐓁', '𐓪' => '𐓂', '𐓫' => '𐓃', '𐓬' => '𐓄', '𐓭' => '𐓅', '𐓮' => '𐓆', '𐓯' => '𐓇', '𐓰' => '𐓈', '𐓱' => '𐓉', '𐓲' => '𐓊', '𐓳' => '𐓋', '𐓴' => '𐓌', '𐓵' => '𐓍', '𐓶' => '𐓎', '𐓷' => '𐓏', '𐓸' => '𐓐', '𐓹' => '𐓑', '𐓺' => '𐓒', '𐓻' => '𐓓', '𐳀' => '𐲀', '𐳁' => '𐲁', '𐳂' => '𐲂', '𐳃' => '𐲃', '𐳄' => '𐲄', '𐳅' => '𐲅', '𐳆' => '𐲆', '𐳇' => '𐲇', '𐳈' => '𐲈', '𐳉' => '𐲉', '𐳊' => '𐲊', '𐳋' => '𐲋', '𐳌' => '𐲌', '𐳍' => '𐲍', '𐳎' => '𐲎', '𐳏' => '𐲏', '𐳐' => '𐲐', '𐳑' => '𐲑', '𐳒' => '𐲒', '𐳓' => '𐲓', '𐳔' => '𐲔', '𐳕' => '𐲕', '𐳖' => '𐲖', '𐳗' => '𐲗', '𐳘' => '𐲘', '𐳙' => '𐲙', '𐳚' => '𐲚', '𐳛' => '𐲛', '𐳜' => '𐲜', '𐳝' => '𐲝', '𐳞' => '𐲞', '𐳟' => '𐲟', '𐳠' => '𐲠', '𐳡' => '𐲡', '𐳢' => '𐲢', '𐳣' => '𐲣', '𐳤' => '𐲤', '𐳥' => '𐲥', '𐳦' => '𐲦', '𐳧' => '𐲧', '𐳨' => '𐲨', '𐳩' => '𐲩', '𐳪' => '𐲪', '𐳫' => '𐲫', '𐳬' => '𐲬', '𐳭' => '𐲭', '𐳮' => '𐲮', '𐳯' => '𐲯', '𐳰' => '𐲰', '𐳱' => '𐲱', '𐳲' => '𐲲', '𑣀' => '𑢠', '𑣁' => '𑢡', '𑣂' => '𑢢', '𑣃' => '𑢣', '𑣄' => '𑢤', '𑣅' => '𑢥', '𑣆' => '𑢦', '𑣇' => '𑢧', '𑣈' => '𑢨', '𑣉' => '𑢩', '𑣊' => '𑢪', '𑣋' => '𑢫', '𑣌' => '𑢬', '𑣍' => '𑢭', '𑣎' => '𑢮', '𑣏' => '𑢯', '𑣐' => '𑢰', '𑣑' => '𑢱', '𑣒' => '𑢲', '𑣓' => '𑢳', '𑣔' => '𑢴', '𑣕' => '𑢵', '𑣖' => '𑢶', '𑣗' => '𑢷', '𑣘' => '𑢸', '𑣙' => '𑢹', '𑣚' => '𑢺', '𑣛' => '𑢻', '𑣜' => '𑢼', '𑣝' => '𑢽', '𑣞' => '𑢾', '𑣟' => '𑢿', '𖹠' => '𖹀', '𖹡' => '𖹁', '𖹢' => '𖹂', '𖹣' => '𖹃', '𖹤' => '𖹄', '𖹥' => '𖹅', '𖹦' => '𖹆', '𖹧' => '𖹇', '𖹨' => '𖹈', '𖹩' => '𖹉', '𖹪' => '𖹊', '𖹫' => '𖹋', '𖹬' => '𖹌', '𖹭' => '𖹍', '𖹮' => '𖹎', '𖹯' => '𖹏', '𖹰' => '𖹐', '𖹱' => '𖹑', '𖹲' => '𖹒', '𖹳' => '𖹓', '𖹴' => '𖹔', '𖹵' => '𖹕', '𖹶' => '𖹖', '𖹷' => '𖹗', '𖹸' => '𖹘', '𖹹' => '𖹙', '𖹺' => '𖹚', '𖹻' => '𖹛', '𖹼' => '𖹜', '𖹽' => '𖹝', '𖹾' => '𖹞', '𖹿' => '𖹟', '𞤢' => '𞤀', '𞤣' => '𞤁', '𞤤' => '𞤂', '𞤥' => '𞤃', '𞤦' => '𞤄', '𞤧' => '𞤅', '𞤨' => '𞤆', '𞤩' => '𞤇', '𞤪' => '𞤈', '𞤫' => '𞤉', '𞤬' => '𞤊', '𞤭' => '𞤋', '𞤮' => '𞤌', '𞤯' => '𞤍', '𞤰' => '𞤎', '𞤱' => '𞤏', '𞤲' => '𞤐', '𞤳' => '𞤑', '𞤴' => '𞤒', '𞤵' => '𞤓', '𞤶' => '𞤔', '𞤷' => '𞤕', '𞤸' => '𞤖', '𞤹' => '𞤗', '𞤺' => '𞤘', '𞤻' => '𞤙', '𞤼' => '𞤚', '𞤽' => '𞤛', '𞤾' => '𞤜', '𞤿' => '𞤝', '𞥀' => '𞤞', '𞥁' => '𞤟', '𞥂' => '𞤠', '𞥃' => '𞤡', 'ß' => 'SS', 'ff' => 'FF', 'fi' => 'FI', 'fl' => 'FL', 'ffi' => 'FFI', 'ffl' => 'FFL', 'ſt' => 'ST', 'st' => 'ST', 'և' => 'ԵՒ', 'ﬓ' => 'ՄՆ', 'ﬔ' => 'ՄԵ', 'ﬕ' => 'ՄԻ', 'ﬖ' => 'ՎՆ', 'ﬗ' => 'ՄԽ', 'ʼn' => 'ʼN', 'ΐ' => 'Ϊ́', 'ΰ' => 'Ϋ́', 'ǰ' => 'J̌', 'ẖ' => 'H̱', 'ẗ' => 'T̈', 'ẘ' => 'W̊', 'ẙ' => 'Y̊', 'ẚ' => 'Aʾ', 'ὐ' => 'Υ̓', 'ὒ' => 'Υ̓̀', 'ὔ' => 'Υ̓́', 'ὖ' => 'Υ̓͂', 'ᾶ' => 'Α͂', 'ῆ' => 'Η͂', 'ῒ' => 'Ϊ̀', 'ΐ' => 'Ϊ́', 'ῖ' => 'Ι͂', 'ῗ' => 'Ϊ͂', 'ῢ' => 'Ϋ̀', 'ΰ' => 'Ϋ́', 'ῤ' => 'Ρ̓', 'ῦ' => 'Υ͂', 'ῧ' => 'Ϋ͂', 'ῶ' => 'Ω͂', 'ᾈ' => 'ἈΙ', 'ᾉ' => 'ἉΙ', 'ᾊ' => 'ἊΙ', 'ᾋ' => 'ἋΙ', 'ᾌ' => 'ἌΙ', 'ᾍ' => 'ἍΙ', 'ᾎ' => 'ἎΙ', 'ᾏ' => 'ἏΙ', 'ᾘ' => 'ἨΙ', 'ᾙ' => 'ἩΙ', 'ᾚ' => 'ἪΙ', 'ᾛ' => 'ἫΙ', 'ᾜ' => 'ἬΙ', 'ᾝ' => 'ἭΙ', 'ᾞ' => 'ἮΙ', 'ᾟ' => 'ἯΙ', 'ᾨ' => 'ὨΙ', 'ᾩ' => 'ὩΙ', 'ᾪ' => 'ὪΙ', 'ᾫ' => 'ὫΙ', 'ᾬ' => 'ὬΙ', 'ᾭ' => 'ὭΙ', 'ᾮ' => 'ὮΙ', 'ᾯ' => 'ὯΙ', 'ᾼ' => 'ΑΙ', 'ῌ' => 'ΗΙ', 'ῼ' => 'ΩΙ', 'ᾲ' => 'ᾺΙ', 'ᾴ' => 'ΆΙ', 'ῂ' => 'ῊΙ', 'ῄ' => 'ΉΙ', 'ῲ' => 'ῺΙ', 'ῴ' => 'ΏΙ', 'ᾷ' => 'Α͂Ι', 'ῇ' => 'Η͂Ι', 'ῷ' => 'Ω͂Ι'); diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php b/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php index 264cfaeae..06515eb68 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ExceptionInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Exception; +namespace RectorPrefix202312\Symfony\Component\Process\Exception; /** * Marker Interface for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php b/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php index beafb23a0..502ceed53 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/InvalidArgumentException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Exception; +namespace RectorPrefix202312\Symfony\Component\Process\Exception; /** * InvalidArgumentException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php b/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php index cf3e9d18d..1266cdd3e 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/LogicException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Exception; +namespace RectorPrefix202312\Symfony\Component\Process\Exception; /** * LogicException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php index 2bfdcb564..98ac69567 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessFailedException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Exception; +namespace RectorPrefix202312\Symfony\Component\Process\Exception; -use RectorPrefix202311\Symfony\Component\Process\Process; +use RectorPrefix202312\Symfony\Component\Process\Process; /** * Exception for failed processes. * @@ -18,6 +18,9 @@ */ class ProcessFailedException extends RuntimeException { + /** + * @var \Symfony\Component\Process\Process + */ private $process; public function __construct(Process $process) { diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php index 8401c2423..da697102e 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessSignaledException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Exception; +namespace RectorPrefix202312\Symfony\Component\Process\Exception; -use RectorPrefix202311\Symfony\Component\Process\Process; +use RectorPrefix202312\Symfony\Component\Process\Process; /** * Exception that is thrown when a process has been signaled. * @@ -18,6 +18,9 @@ */ final class ProcessSignaledException extends RuntimeException { + /** + * @var \Symfony\Component\Process\Process + */ private $process; public function __construct(Process $process) { diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php index 9bebd3612..9a7f61682 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/ProcessTimedOutException.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Exception; +namespace RectorPrefix202312\Symfony\Component\Process\Exception; -use RectorPrefix202311\Symfony\Component\Process\Process; +use RectorPrefix202312\Symfony\Component\Process\Process; /** * Exception that is thrown when a process times out. * @@ -20,7 +20,13 @@ class ProcessTimedOutException extends RuntimeException { public const TYPE_GENERAL = 1; public const TYPE_IDLE = 2; + /** + * @var \Symfony\Component\Process\Process + */ private $process; + /** + * @var int + */ private $timeoutType; public function __construct(Process $process, int $timeoutType) { diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/RunProcessFailedException.php b/vendor/rector/rector/vendor/symfony/process/Exception/RunProcessFailedException.php new file mode 100644 index 000000000..7a33b0a4b --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/process/Exception/RunProcessFailedException.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Process\Exception; + +use RectorPrefix202312\Symfony\Component\Process\Messenger\RunProcessContext; +/** + * @author Kevin Bond + */ +final class RunProcessFailedException extends RuntimeException +{ + /** + * @readonly + * @var \Symfony\Component\Process\Messenger\RunProcessContext + */ + public $context; + public function __construct(ProcessFailedException $exception, RunProcessContext $context) + { + $this->context = $context; + parent::__construct($exception->getMessage(), $exception->getCode()); + } +} diff --git a/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php b/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php index 8e0de7831..937322743 100644 --- a/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php +++ b/vendor/rector/rector/vendor/symfony/process/Exception/RuntimeException.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Exception; +namespace RectorPrefix202312\Symfony\Component\Process\Exception; /** * RuntimeException for the Process Component. diff --git a/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php b/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php index b7f0392f3..3f3590f09 100644 --- a/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php +++ b/vendor/rector/rector/vendor/symfony/process/ExecutableFinder.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process; +namespace RectorPrefix202312\Symfony\Component\Process; /** * Generic executable finder. @@ -18,6 +18,9 @@ */ class ExecutableFinder { + /** + * @var mixed[] + */ private $suffixes = ['.exe', '.bat', '.cmd', '.com']; /** * Replaces default suffixes of executable. @@ -46,22 +49,7 @@ public function addSuffix(string $suffix) */ public function find(string $name, string $default = null, array $extraDirs = []) : ?string { - if (\ini_get('open_basedir')) { - $searchPath = \array_merge(\explode(\PATH_SEPARATOR, \ini_get('open_basedir')), $extraDirs); - $dirs = []; - foreach ($searchPath as $path) { - // Silencing against https://bugs.php.net/69240 - if (@\is_dir($path)) { - $dirs[] = $path; - } else { - if (\basename($path) == $name && @\is_executable($path)) { - return $path; - } - } - } - } else { - $dirs = \array_merge(\explode(\PATH_SEPARATOR, \getenv('PATH') ?: \getenv('Path')), $extraDirs); - } + $dirs = \array_merge(\explode(\PATH_SEPARATOR, \getenv('PATH') ?: \getenv('Path')), $extraDirs); $suffixes = ['']; if ('\\' === \DIRECTORY_SEPARATOR) { $pathExt = \getenv('PATHEXT'); @@ -72,8 +60,15 @@ public function find(string $name, string $default = null, array $extraDirs = [] if (@\is_file($file = $dir . \DIRECTORY_SEPARATOR . $name . $suffix) && ('\\' === \DIRECTORY_SEPARATOR || @\is_executable($file))) { return $file; } + if (!@\is_dir($dir) && \basename($dir) === $name . $suffix && @\is_executable($dir)) { + return $dir; + } } } + $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v'; + if (\function_exists('exec') && ($executablePath = \strtok(@\exec($command . ' ' . \escapeshellarg($name)), \PHP_EOL)) && \is_executable($executablePath)) { + return $executablePath; + } return $default; } } diff --git a/vendor/rector/rector/vendor/symfony/process/InputStream.php b/vendor/rector/rector/vendor/symfony/process/InputStream.php index d71de8ba1..1f4f70398 100644 --- a/vendor/rector/rector/vendor/symfony/process/InputStream.php +++ b/vendor/rector/rector/vendor/symfony/process/InputStream.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process; +namespace RectorPrefix202312\Symfony\Component\Process; -use RectorPrefix202311\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Process\Exception\RuntimeException; /** * Provides a way to continuously write to the input of a Process until the InputStream is closed. * @@ -20,9 +20,17 @@ */ class InputStream implements \IteratorAggregate { - /** @var callable|null */ + /** + * @var \Closure|null + */ private $onEmpty; + /** + * @var mixed[] + */ private $input = []; + /** + * @var bool + */ private $open = \true; /** * Sets a callback that is called when the write buffer becomes empty. @@ -31,7 +39,7 @@ class InputStream implements \IteratorAggregate */ public function onEmpty(callable $onEmpty = null) { - $this->onEmpty = $onEmpty; + $this->onEmpty = null !== $onEmpty ? \Closure::fromCallable($onEmpty) : null; } /** * Appends an input to the write buffer. diff --git a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessContext.php b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessContext.php new file mode 100644 index 000000000..162c09815 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessContext.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Process\Messenger; + +use RectorPrefix202312\Symfony\Component\Process\Process; +/** + * @author Kevin Bond + */ +final class RunProcessContext +{ + /** + * @readonly + * @var \Symfony\Component\Process\Messenger\RunProcessMessage + */ + public $message; + /** + * @readonly + * @var int|null + */ + public $exitCode; + /** + * @readonly + * @var string|null + */ + public $output; + /** + * @readonly + * @var string|null + */ + public $errorOutput; + public function __construct(RunProcessMessage $message, Process $process) + { + $this->message = $message; + $this->exitCode = $process->getExitCode(); + $this->output = $process->isOutputDisabled() ? null : $process->getOutput(); + $this->errorOutput = $process->isOutputDisabled() ? null : $process->getErrorOutput(); + } +} diff --git a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessage.php b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessage.php new file mode 100644 index 000000000..2ca82180d --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessage.php @@ -0,0 +1,58 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Process\Messenger; + +/** + * @author Kevin Bond + */ +class RunProcessMessage +{ + /** + * @readonly + * @var mixed[] + */ + public $command; + /** + * @readonly + * @var string|null + */ + public $cwd; + /** + * @readonly + * @var mixed[]|null + */ + public $env; + /** + * @readonly + * @var mixed + */ + public $input = null; + /** + * @readonly + * @var float|null + */ + public $timeout = 60.0; + /** + * @param mixed $input + */ + public function __construct(array $command, ?string $cwd = null, ?array $env = null, $input = null, ?float $timeout = 60.0) + { + $this->command = $command; + $this->cwd = $cwd; + $this->env = $env; + $this->input = $input; + $this->timeout = $timeout; + } + public function __toString() : string + { + return \implode(' ', $this->command); + } +} diff --git a/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessageHandler.php b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessageHandler.php new file mode 100644 index 000000000..ecfd0392c --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/process/Messenger/RunProcessMessageHandler.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Process\Messenger; + +use RectorPrefix202312\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202312\Symfony\Component\Process\Exception\RunProcessFailedException; +use RectorPrefix202312\Symfony\Component\Process\Process; +/** + * @author Kevin Bond + */ +final class RunProcessMessageHandler +{ + public function __invoke(RunProcessMessage $message) : RunProcessContext + { + $process = new Process($message->command, $message->cwd, $message->env, $message->input, $message->timeout); + try { + return new RunProcessContext($message, $process->mustRun()); + } catch (ProcessFailedException $e) { + throw new RunProcessFailedException($e, new RunProcessContext($message, $e->getProcess())); + } + } +} diff --git a/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php b/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php index 684c16bfa..b885e92cf 100644 --- a/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php +++ b/vendor/rector/rector/vendor/symfony/process/PhpExecutableFinder.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process; +namespace RectorPrefix202312\Symfony\Component\Process; /** * An executable finder specifically designed for the PHP executable. @@ -18,6 +18,9 @@ */ class PhpExecutableFinder { + /** + * @var \Symfony\Component\Process\ExecutableFinder + */ private $executableFinder; public function __construct() { @@ -32,7 +35,7 @@ public function find(bool $includeArgs = \true) if ($php = \getenv('PHP_BINARY')) { if (!\is_executable($php)) { $command = '\\' === \DIRECTORY_SEPARATOR ? 'where' : 'command -v'; - if ($php = \strtok(\exec($command . ' ' . \escapeshellarg($php)), \PHP_EOL)) { + if (\function_exists('exec') && ($php = \strtok(\exec($command . ' ' . \escapeshellarg($php)), \PHP_EOL))) { if (!\is_executable($php)) { return \false; } diff --git a/vendor/rector/rector/vendor/symfony/process/PhpProcess.php b/vendor/rector/rector/vendor/symfony/process/PhpProcess.php index 0e27d3014..61b900b2a 100644 --- a/vendor/rector/rector/vendor/symfony/process/PhpProcess.php +++ b/vendor/rector/rector/vendor/symfony/process/PhpProcess.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process; +namespace RectorPrefix202312\Symfony\Component\Process; -use RectorPrefix202311\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202311\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Process\Exception\RuntimeException; /** * PhpProcess runs a PHP script in an independent process. * diff --git a/vendor/rector/rector/vendor/symfony/process/PhpSubprocess.php b/vendor/rector/rector/vendor/symfony/process/PhpSubprocess.php new file mode 100644 index 000000000..ace58ec02 --- /dev/null +++ b/vendor/rector/rector/vendor/symfony/process/PhpSubprocess.php @@ -0,0 +1,140 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace RectorPrefix202312\Symfony\Component\Process; + +use RectorPrefix202312\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Process\Exception\RuntimeException; +/** + * PhpSubprocess runs a PHP command as a subprocess while keeping the original php.ini settings. + * + * For this, it generates a temporary php.ini file taking over all the current settings and disables + * loading additional .ini files. Basically, your command gets prefixed using "php -n -c /tmp/temp.ini". + * + * Given your php.ini contains "memory_limit=-1" and you have a "MemoryTest.php" with the following content: + * + * run(); + * print $p->getOutput()."\n"; + * + * This will output "string(2) "-1", because the process is started with the default php.ini settings. + * + * $p = new PhpSubprocess(['MemoryTest.php'], null, null, 60, ['php', '-d', 'memory_limit=256M']); + * $p->run(); + * print $p->getOutput()."\n"; + * + * This will output "string(4) "256M"", because the process is started with the temporarily created php.ini settings. + * + * @author Yanick Witschi + * @author Partially copied and heavily inspired from composer/xdebug-handler by John Stevenson + */ +class PhpSubprocess extends Process +{ + /** + * @param array $command The command to run and its arguments listed as separate entries. They will automatically + * get prefixed with the PHP binary + * @param string|null $cwd The working directory or null to use the working dir of the current PHP process + * @param array|null $env The environment variables or null to use the same environment as the current PHP process + * @param int $timeout The timeout in seconds + * @param array|null $php Path to the PHP binary to use with any additional arguments + */ + public function __construct(array $command, string $cwd = null, array $env = null, int $timeout = 60, array $php = null) + { + if (null === $php) { + $executableFinder = new PhpExecutableFinder(); + $php = $executableFinder->find(\false); + $php = \false === $php ? null : \array_merge([$php], $executableFinder->findArguments()); + } + if (null === $php) { + throw new RuntimeException('Unable to find PHP binary.'); + } + $tmpIni = $this->writeTmpIni($this->getAllIniFiles(), \sys_get_temp_dir()); + $php = \array_merge($php, ['-n', '-c', $tmpIni]); + \register_shutdown_function('unlink', $tmpIni); + $command = \array_merge($php, $command); + parent::__construct($command, $cwd, $env, null, $timeout); + } + /** + * @param mixed $input + * @return static + */ + public static function fromShellCommandline(string $command, string $cwd = null, array $env = null, $input = null, ?float $timeout = 60) + { + throw new LogicException(\sprintf('The "%s()" method cannot be called when using "%s".', __METHOD__, self::class)); + } + public function start(callable $callback = null, array $env = []) : void + { + if (null === $this->getCommandLine()) { + throw new RuntimeException('Unable to find the PHP executable.'); + } + parent::start($callback, $env); + } + private function writeTmpIni(array $iniFiles, string $tmpDir) : string + { + if (\false === ($tmpfile = @\tempnam($tmpDir, ''))) { + throw new RuntimeException('Unable to create temporary ini file.'); + } + // $iniFiles has at least one item and it may be empty + if ('' === $iniFiles[0]) { + \array_shift($iniFiles); + } + $content = ''; + foreach ($iniFiles as $file) { + // Check for inaccessible ini files + if (($data = @\file_get_contents($file)) === \false) { + throw new RuntimeException('Unable to read ini: ' . $file); + } + // Check and remove directives after HOST and PATH sections + if (\preg_match('/^\\s*\\[(?:PATH|HOST)\\s*=/mi', $data, $matches)) { + $data = \substr($data, 0, $matches[0][1]); + } + $content .= $data . "\n"; + } + // Merge loaded settings into our ini content, if it is valid + $config = \parse_ini_string($content); + $loaded = \ini_get_all(null, \false); + if (\false === $config || \false === $loaded) { + throw new RuntimeException('Unable to parse ini data.'); + } + $content .= $this->mergeLoadedConfig($loaded, $config); + // Work-around for https://bugs.php.net/bug.php?id=75932 + $content .= "opcache.enable_cli=0\n"; + if (\false === @\file_put_contents($tmpfile, $content)) { + throw new RuntimeException('Unable to write temporary ini file.'); + } + return $tmpfile; + } + private function mergeLoadedConfig(array $loadedConfig, array $iniConfig) : string + { + $content = ''; + foreach ($loadedConfig as $name => $value) { + if (!\is_string($value)) { + continue; + } + if (!isset($iniConfig[$name]) || $iniConfig[$name] !== $value) { + // Double-quote escape each value + $content .= $name . '="' . \addcslashes($value, '\\"') . "\"\n"; + } + } + return $content; + } + private function getAllIniFiles() : array + { + $paths = [(string) \php_ini_loaded_file()]; + if (\false !== ($scanned = \php_ini_scanned_files())) { + $paths = \array_merge($paths, \array_map('trim', \explode(',', $scanned))); + } + return $paths; + } +} diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php index 26c59f3c2..777285c8c 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/AbstractPipes.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Pipes; +namespace RectorPrefix202312\Symfony\Component\Process\Pipes; -use RectorPrefix202311\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Process\Exception\InvalidArgumentException; /** * @author Romain Neutron * @@ -22,19 +22,27 @@ abstract class AbstractPipes implements PipesInterface * @var mixed[] */ public $pipes = []; + /** + * @var string + */ private $inputBuffer = ''; + /** @var resource|string|\Iterator */ private $input; + /** + * @var bool + */ private $blocked = \true; + /** + * @var string|null + */ private $lastError; /** - * @param mixed $input + * @param resource|string|\Iterator $input */ public function __construct($input) { if (\is_resource($input) || $input instanceof \Iterator) { $this->input = $input; - } elseif (\is_string($input)) { - $this->inputBuffer = $input; } else { $this->inputBuffer = (string) $input; } diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php b/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php index d2c0fee38..4c761d550 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/PipesInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Pipes; +namespace RectorPrefix202312\Symfony\Component\Process\Pipes; /** * PipesInterface manages descriptors and pipes for the use of proc_open. diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php index 53f688921..7a76932f3 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/UnixPipes.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Pipes; +namespace RectorPrefix202312\Symfony\Component\Process\Pipes; -use RectorPrefix202311\Symfony\Component\Process\Process; +use RectorPrefix202312\Symfony\Component\Process\Process; /** * UnixPipes implementation uses unix pipes as handles. * @@ -20,8 +20,17 @@ */ class UnixPipes extends AbstractPipes { + /** + * @var bool|null + */ private $ttyMode; + /** + * @var bool + */ private $ptyMode; + /** + * @var bool + */ private $haveReadSupport; /** * @param mixed $input @@ -37,7 +46,7 @@ public function __sleep() : array { throw new \BadMethodCallException('Cannot serialize ' . __CLASS__); } - public function __wakeup() + public function __wakeup() : void { throw new \BadMethodCallException('Cannot unserialize ' . __CLASS__); } diff --git a/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php b/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php index d4de65a1d..a3a21ae00 100644 --- a/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php +++ b/vendor/rector/rector/vendor/symfony/process/Pipes/WindowsPipes.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process\Pipes; +namespace RectorPrefix202312\Symfony\Component\Process\Pipes; -use RectorPrefix202311\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202311\Symfony\Component\Process\Process; +use RectorPrefix202312\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Process\Process; /** * WindowsPipes implementation uses temporary files as handles. * @@ -24,10 +24,25 @@ */ class WindowsPipes extends AbstractPipes { + /** + * @var mixed[] + */ private $files = []; + /** + * @var mixed[] + */ private $fileHandles = []; + /** + * @var mixed[] + */ private $lockHandles = []; + /** + * @var mixed[] + */ private $readBytes = [Process::STDOUT => 0, Process::STDERR => 0]; + /** + * @var bool + */ private $haveReadSupport; /** * @param mixed $input @@ -83,7 +98,7 @@ public function __sleep() : array { throw new \BadMethodCallException('Cannot serialize ' . __CLASS__); } - public function __wakeup() + public function __wakeup() : void { throw new \BadMethodCallException('Cannot unserialize ' . __CLASS__); } diff --git a/vendor/rector/rector/vendor/symfony/process/Process.php b/vendor/rector/rector/vendor/symfony/process/Process.php index da6180b6d..f2f004f93 100644 --- a/vendor/rector/rector/vendor/symfony/process/Process.php +++ b/vendor/rector/rector/vendor/symfony/process/Process.php @@ -8,17 +8,16 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process; +namespace RectorPrefix202312\Symfony\Component\Process; -use RectorPrefix202311\Symfony\Component\Process\Exception\InvalidArgumentException; -use RectorPrefix202311\Symfony\Component\Process\Exception\LogicException; -use RectorPrefix202311\Symfony\Component\Process\Exception\ProcessFailedException; -use RectorPrefix202311\Symfony\Component\Process\Exception\ProcessSignaledException; -use RectorPrefix202311\Symfony\Component\Process\Exception\ProcessTimedOutException; -use RectorPrefix202311\Symfony\Component\Process\Exception\RuntimeException; -use RectorPrefix202311\Symfony\Component\Process\Pipes\PipesInterface; -use RectorPrefix202311\Symfony\Component\Process\Pipes\UnixPipes; -use RectorPrefix202311\Symfony\Component\Process\Pipes\WindowsPipes; +use RectorPrefix202312\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Process\Exception\LogicException; +use RectorPrefix202312\Symfony\Component\Process\Exception\ProcessFailedException; +use RectorPrefix202312\Symfony\Component\Process\Exception\ProcessSignaledException; +use RectorPrefix202312\Symfony\Component\Process\Exception\ProcessTimedOutException; +use RectorPrefix202312\Symfony\Component\Process\Exception\RuntimeException; +use RectorPrefix202312\Symfony\Component\Process\Pipes\UnixPipes; +use RectorPrefix202312\Symfony\Component\Process\Pipes\WindowsPipes; /** * Process is a thin wrapper around proc_* functions to easily * start independent PHP processes. @@ -48,33 +47,97 @@ class Process implements \IteratorAggregate // Use this flag to skip STDOUT while iterating public const ITER_SKIP_ERR = 8; // Use this flag to skip STDERR while iterating + /** + * @var \Closure|null + */ private $callback; - private $hasCallback = \false; + /** + * @var mixed[]|string + */ private $commandline; + /** + * @var string|null + */ private $cwd; + /** + * @var mixed[] + */ private $env = []; + /** @var resource|string|\Iterator|null */ private $input; + /** + * @var float|null + */ private $starttime; + /** + * @var float|null + */ private $lastOutputTime; + /** + * @var float|null + */ private $timeout; + /** + * @var float|null + */ private $idleTimeout; + /** + * @var int|null + */ private $exitcode; + /** + * @var mixed[] + */ private $fallbackStatus = []; + /** + * @var mixed[] + */ private $processInformation; + /** + * @var bool + */ private $outputDisabled = \false; + /** @var resource */ private $stdout; + /** @var resource */ private $stderr; + /** @var resource|null */ private $process; + /** + * @var string + */ private $status = self::STATUS_READY; + /** + * @var int + */ private $incrementalOutputOffset = 0; + /** + * @var int + */ private $incrementalErrorOutputOffset = 0; + /** + * @var bool + */ private $tty = \false; + /** + * @var bool + */ private $pty; + /** + * @var mixed[] + */ private $options = ['suppress_errors' => \true, 'bypass_shell' => \true]; - private $useFileHandles = \false; - /** @var PipesInterface */ + /** + * @var \Symfony\Component\Process\Pipes\WindowsPipes|\Symfony\Component\Process\Pipes\UnixPipes + */ private $processPipes; + /** + * @var int|null + */ private $latestSignal; + /** + * @var bool|null + */ private static $sigchild; /** * Exit codes translation table. @@ -149,7 +212,6 @@ public function __construct(array $command, string $cwd = null, array $env = nul } $this->setInput($input); $this->setTimeout($timeout); - $this->useFileHandles = '\\' === \DIRECTORY_SEPARATOR; $this->pty = \false; } /** @@ -184,6 +246,9 @@ public function __sleep() : array { throw new \BadMethodCallException('Cannot serialize ' . __CLASS__); } + /** + * @return void + */ public function __wakeup() { throw new \BadMethodCallException('Cannot unserialize ' . __CLASS__); @@ -276,8 +341,7 @@ public function start(callable $callback = null, array $env = []) $this->resetProcessData(); $this->starttime = $this->lastOutputTime = \microtime(\true); $this->callback = $this->buildCallback($callback); - $this->hasCallback = null !== $callback; - $descriptors = $this->getDescriptors(); + $descriptors = $this->getDescriptors(null !== $callback); if ($this->env) { $env += '\\' === \DIRECTORY_SEPARATOR ? \array_diff_ukey($this->env, $env, 'strcasecmp') : $this->env; } @@ -293,15 +357,12 @@ public function start(callable $callback = null, array $env = []) } if ('\\' === \DIRECTORY_SEPARATOR) { $commandline = $this->prepareWindowsCommandLine($commandline, $env); - } elseif (!$this->useFileHandles && $this->isSigchildEnabled()) { + } elseif ($this->isSigchildEnabled()) { // last exit code is output on the fourth pipe and caught to work around --enable-sigchild $descriptors[3] = ['pipe', 'w']; // See https://unix.stackexchange.com/questions/71205/background-process-pipe-input $commandline = '{ (' . $commandline . ') <&3 3<&- 3>/dev/null & } 3<&0;'; $commandline .= 'pid=$!; echo $pid >&3; wait $pid 2>/dev/null; code=$?; echo $code >&3; exit $code'; - // Workaround for the bug, when PTS functionality is enabled. - // @see : https://bugs.php.net/69442 - $ptsWorkaround = \fopen(__FILE__, 'r'); } $envPairs = []; foreach ($env as $k => $v) { @@ -312,10 +373,11 @@ public function start(callable $callback = null, array $env = []) if (!\is_dir($this->cwd)) { throw new RuntimeException(\sprintf('The provided cwd "%s" does not exist.', $this->cwd)); } - $this->process = @\proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); - if (!\is_resource($this->process)) { + $process = @\proc_open($commandline, $descriptors, $this->processPipes->pipes, $this->cwd, $envPairs, $this->options); + if (!\is_resource($process)) { throw new RuntimeException('Unable to launch a new process.'); } + $this->process = $process; $this->status = self::STATUS_STARTED; if (isset($descriptors[3])) { $this->fallbackStatus['pid'] = (int) \fgets($this->processPipes->pipes[3]); @@ -1070,15 +1132,15 @@ public static function isPtySupported() : bool /** * Creates the descriptors needed by the proc_open. */ - private function getDescriptors() : array + private function getDescriptors(bool $hasCallback) : array { if ($this->input instanceof \Iterator) { $this->input->rewind(); } if ('\\' === \DIRECTORY_SEPARATOR) { - $this->processPipes = new WindowsPipes($this->input, !$this->outputDisabled || $this->hasCallback); + $this->processPipes = new WindowsPipes($this->input, !$this->outputDisabled || $hasCallback); } else { - $this->processPipes = new UnixPipes($this->isTty(), $this->isPty(), $this->input, !$this->outputDisabled || $this->hasCallback); + $this->processPipes = new UnixPipes($this->isTty(), $this->isPty(), $this->input, !$this->outputDisabled || $hasCallback); } return $this->processPipes->getDescriptors(); } @@ -1230,7 +1292,7 @@ private function resetProcessData() : void $this->callback = null; $this->exitcode = null; $this->fallbackStatus = []; - $this->processInformation = null; + $this->processInformation = []; $this->stdout = \fopen('php://temp/maxmemory:' . 1024 * 1024, 'w+'); $this->stderr = \fopen('php://temp/maxmemory:' . 1024 * 1024, 'w+'); $this->process = null; diff --git a/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php b/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php index 7f2817281..de6d05fd1 100644 --- a/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php +++ b/vendor/rector/rector/vendor/symfony/process/ProcessUtils.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Component\Process; +namespace RectorPrefix202312\Symfony\Component\Process; -use RectorPrefix202311\Symfony\Component\Process\Exception\InvalidArgumentException; +use RectorPrefix202312\Symfony\Component\Process\Exception\InvalidArgumentException; /** * ProcessUtils is a bunch of utility methods. * @@ -41,9 +41,6 @@ public static function validateInput(string $caller, $input) if (\is_resource($input)) { return $input; } - if (\is_string($input)) { - return $input; - } if (\is_scalar($input)) { return (string) $input; } diff --git a/vendor/rector/rector/vendor/symfony/process/composer.json b/vendor/rector/rector/vendor/symfony/process/composer.json index ed4cb4836..7eaaeb143 100644 --- a/vendor/rector/rector/vendor/symfony/process/composer.json +++ b/vendor/rector/rector/vendor/symfony/process/composer.json @@ -20,7 +20,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Component\\Process\\": "" + "RectorPrefix202312\\Symfony\\Component\\Process\\": "" }, "exclude-from-classmap": [ "\/Tests\/" diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php index cbc7af378..1f192b675 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/Required.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202312\Symfony\Contracts\Service\Attribute; /** * A required dependency. diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php index 4fdc040d4..85d856af7 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/Attribute/SubscribedService.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Contracts\Service\Attribute; +namespace RectorPrefix202312\Symfony\Contracts\Service\Attribute; -use RectorPrefix202311\Symfony\Contracts\Service\ServiceSubscriberInterface; -use RectorPrefix202311\Symfony\Contracts\Service\ServiceSubscriberTrait; +use RectorPrefix202312\Symfony\Contracts\Service\ServiceSubscriberInterface; +use RectorPrefix202312\Symfony\Contracts\Service\ServiceSubscriberTrait; /** * For use as the return value for {@see ServiceSubscriberInterface}. * diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php index 5d2f9d554..c5d28e093 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ResetInterface.php @@ -8,7 +8,7 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Contracts\Service; +namespace RectorPrefix202312\Symfony\Contracts\Service; /** * Provides a way to reset an object to its initial state. diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php index 4688bdd00..815ab66ba 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceLocatorTrait.php @@ -8,10 +8,10 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Contracts\Service; +namespace RectorPrefix202312\Symfony\Contracts\Service; -use RectorPrefix202311\Psr\Container\ContainerExceptionInterface; -use RectorPrefix202311\Psr\Container\NotFoundExceptionInterface; +use RectorPrefix202312\Psr\Container\ContainerExceptionInterface; +use RectorPrefix202312\Psr\Container\NotFoundExceptionInterface; // Help opcache.preload discover always-needed symbols \class_exists(ContainerExceptionInterface::class); \class_exists(NotFoundExceptionInterface::class); diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php index 9482c1b29..88ecd89b2 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceProviderInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Contracts\Service; +namespace RectorPrefix202312\Symfony\Contracts\Service; -use RectorPrefix202311\Psr\Container\ContainerInterface; +use RectorPrefix202312\Psr\Container\ContainerInterface; /** * A ServiceProviderInterface exposes the identifiers and the types of services provided by a container. * diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php index 457c27b11..8b8e825ee 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberInterface.php @@ -8,9 +8,9 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Contracts\Service; +namespace RectorPrefix202312\Symfony\Contracts\Service; -use RectorPrefix202311\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202312\Symfony\Contracts\Service\Attribute\SubscribedService; /** * A ServiceSubscriber exposes its dependencies via the static {@link getSubscribedServices} method. * diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php index 220647347..2efbd60fb 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php +++ b/vendor/rector/rector/vendor/symfony/service-contracts/ServiceSubscriberTrait.php @@ -8,11 +8,11 @@ * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace RectorPrefix202311\Symfony\Contracts\Service; +namespace RectorPrefix202312\Symfony\Contracts\Service; -use RectorPrefix202311\Psr\Container\ContainerInterface; -use RectorPrefix202311\Symfony\Contracts\Service\Attribute\Required; -use RectorPrefix202311\Symfony\Contracts\Service\Attribute\SubscribedService; +use RectorPrefix202312\Psr\Container\ContainerInterface; +use RectorPrefix202312\Symfony\Contracts\Service\Attribute\Required; +use RectorPrefix202312\Symfony\Contracts\Service\Attribute\SubscribedService; /** * Implementation of ServiceSubscriberInterface that determines subscribed services from * method return types. Service ids are available as "ClassName::methodName". diff --git a/vendor/rector/rector/vendor/symfony/service-contracts/composer.json b/vendor/rector/rector/vendor/symfony/service-contracts/composer.json index 4e5237afc..14598276c 100644 --- a/vendor/rector/rector/vendor/symfony/service-contracts/composer.json +++ b/vendor/rector/rector/vendor/symfony/service-contracts/composer.json @@ -31,7 +31,7 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Symfony\\Contracts\\Service\\": "" + "RectorPrefix202312\\Symfony\\Contracts\\Service\\": "" }, "exclude-from-classmap": [ "\/Test\/" diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json b/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json index ed69613d2..e7b2f5448 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/composer.json @@ -25,12 +25,12 @@ }, "autoload": { "psr-4": { - "RectorPrefix202311\\Symplify\\EasyParallel\\": "src" + "RectorPrefix202312\\Symplify\\EasyParallel\\": "src" } }, "autoload-dev": { "psr-4": { - "RectorPrefix202311\\Symplify\\EasyParallel\\Tests\\": "tests" + "RectorPrefix202312\\Symplify\\EasyParallel\\Tests\\": "tests" } }, "extra": { diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php b/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php index 275e71f5c..b50590c9a 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/config/config.php @@ -1,9 +1,9 @@ services(); $services->defaults()->public()->autowire(); diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/easy-ci.php b/vendor/rector/rector/vendor/symplify/easy-parallel/easy-ci.php index a0ca16b17..5cd1dcb35 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/easy-ci.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/easy-ci.php @@ -1,10 +1,10 @@ typesToSkip([SerializableInterface::class]); }; diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php b/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php index 2648025f2..5a9b0a5be 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/ecs.php @@ -1,10 +1,10 @@ paths([__DIR__ . '/config', __DIR__ . '/ecs.php', __DIR__ . '/rector.php', __DIR__ . '/easy-ci.php', __DIR__ . '/src', __DIR__ . '/tests']); $ecsConfig->sets([SetList::COMMON, SetList::PSR_12]); diff --git a/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php b/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php index 3bbac97d6..527783dac 100644 --- a/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php +++ b/vendor/rector/rector/vendor/symplify/easy-parallel/rector.php @@ -1,7 +1,7 @@ */ diff --git a/vendor/symfony/string/Inflector/EnglishInflector.php b/vendor/symfony/string/Inflector/EnglishInflector.php index 5d16977e4..e1bcd87b2 100644 --- a/vendor/symfony/string/Inflector/EnglishInflector.php +++ b/vendor/symfony/string/Inflector/EnglishInflector.php @@ -21,7 +21,7 @@ final class EnglishInflector implements InflectorInterface private const PLURAL_MAP = [ // First entry: plural suffix, reversed // Second entry: length of plural suffix - // Third entry: Whether the suffix may succeed a vocal + // Third entry: Whether the suffix may succeed a vowel // Fourth entry: Whether the suffix may succeed a consonant // Fifth entry: singular suffix, normal @@ -162,7 +162,7 @@ final class EnglishInflector implements InflectorInterface private const SINGULAR_MAP = [ // First entry: singular suffix, reversed // Second entry: length of singular suffix - // Third entry: Whether the suffix may succeed a vocal + // Third entry: Whether the suffix may succeed a vowel // Fourth entry: Whether the suffix may succeed a consonant // Fifth entry: plural suffix, normal @@ -253,6 +253,9 @@ final class EnglishInflector implements InflectorInterface // seasons (season), treasons (treason), poisons (poison), lessons (lesson) ['nos', 3, true, true, 'sons'], + // icons (icon) + ['noc', 3, true, true, 'cons'], + // bacteria (bacterium), criteria (criterion), phenomena (phenomenon) ['no', 2, true, true, 'a'], @@ -343,15 +346,30 @@ final class EnglishInflector implements InflectorInterface // deer 'reed', + // equipment + 'tnempiuqe', + // feedback 'kcabdeef', // fish 'hsif', + // health + 'htlaeh', + + // history + 'yrotsih', + // info 'ofni', + // information + 'noitamrofni', + + // money + 'yenom', + // moose 'esoom', @@ -363,6 +381,9 @@ final class EnglishInflector implements InflectorInterface // species 'seiceps', + + // traffic + 'ciffart', ]; /** @@ -399,14 +420,14 @@ public function singularize(string $plural): array if ($j === $suffixLength) { // Is there any character preceding the suffix in the plural string? if ($j < $pluralLength) { - $nextIsVocal = false !== strpos('aeiou', $lowerPluralRev[$j]); + $nextIsVowel = false !== strpos('aeiou', $lowerPluralRev[$j]); - if (!$map[2] && $nextIsVocal) { - // suffix may not succeed a vocal but next char is one + if (!$map[2] && $nextIsVowel) { + // suffix may not succeed a vowel but next char is one break; } - if (!$map[3] && !$nextIsVocal) { + if (!$map[3] && !$nextIsVowel) { // suffix may not succeed a consonant but next char is one break; } @@ -479,14 +500,14 @@ public function pluralize(string $singular): array if ($j === $suffixLength) { // Is there any character preceding the suffix in the plural string? if ($j < $singularLength) { - $nextIsVocal = false !== strpos('aeiou', $lowerSingularRev[$j]); + $nextIsVowel = false !== strpos('aeiou', $lowerSingularRev[$j]); - if (!$map[2] && $nextIsVocal) { - // suffix may not succeed a vocal but next char is one + if (!$map[2] && $nextIsVowel) { + // suffix may not succeed a vowel but next char is one break; } - if (!$map[3] && !$nextIsVocal) { + if (!$map[3] && !$nextIsVowel) { // suffix may not succeed a consonant but next char is one break; }