Updated Rector to commit a8922f7431c9c9188be501107ee7819e0130da4c

a8922f7431 skip temporarily match + throws downagrade in symfony/console, very unlikely to run
This commit is contained in:
Tomas Votruba 2023-06-11 23:01:39 +00:00
parent 3313a231b7
commit 503a6059f8
1063 changed files with 2996 additions and 1052 deletions

View File

@ -23,32 +23,63 @@ use PHPStan\PhpDocParser\Parser\ConstExprParser;
use PHPStan\PhpDocParser\Parser\PhpDocParser;
use PHPStan\PhpDocParser\Parser\TypeParser;
use PHPStan\Reflection\ReflectionProvider;
use Rector\BetterPhpDocParser\Contract\BasePhpDocNodeVisitorInterface;
use Rector\BetterPhpDocParser\Contract\PhpDocParser\PhpDocNodeDecoratorInterface;
use Rector\BetterPhpDocParser\PhpDocNodeMapper;
use Rector\BetterPhpDocParser\PhpDocParser\BetterPhpDocParser;
use Rector\BetterPhpDocParser\PhpDocParser\BetterTypeParser;
use Rector\Caching\Cache;
use Rector\Caching\CacheFactory;
use Rector\Caching\ValueObject\Storage\MemoryCacheStorage;
use Rector\ChangesReporting\Contract\Output\OutputFormatterInterface;
use Rector\CodingStyle\ClassNameImport\ClassNameImportSkipper;
use Rector\CodingStyle\Contract\ClassNameImport\ClassNameImportSkipVoterInterface;
use Rector\Config\RectorConfig;
use Rector\Core\Application\ApplicationFileProcessor;
use Rector\Core\Bootstrap\ExtensionConfigResolver;
use Rector\Core\Configuration\ConfigInitializer;
use Rector\Core\Configuration\Parameter\ParameterProvider;
use Rector\Core\Console\Command\ListRulesCommand;
use Rector\Core\Console\ConsoleApplication;
use Rector\Core\Console\Output\OutputFormatterCollector;
use Rector\Core\Console\Style\RectorConsoleOutputStyle;
use Rector\Core\Console\Style\RectorConsoleOutputStyleFactory;
use Rector\Core\Console\Style\SymfonyStyleFactory;
use Rector\Core\Contract\Processor\FileProcessorInterface;
use Rector\Core\Contract\Rector\NonPhpRectorInterface;
use Rector\Core\Contract\Rector\PhpRectorInterface;
use Rector\Core\Contract\Rector\RectorInterface;
use Rector\Core\NonPhpFile\NonPhpFileProcessor;
use Rector\Core\PhpParser\NodeTraverser\RectorNodeTraverser;
use Rector\Core\Validation\Collector\EmptyConfigurableRectorCollector;
use Rector\Core\ValueObjectFactory\Application\FileFactory;
use Rector\NodeNameResolver\Contract\NodeNameResolverInterface;
use Rector\NodeNameResolver\NodeNameResolver;
use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface;
use Rector\NodeTypeResolver\DependencyInjection\PHPStanServicesFactory;
use Rector\NodeTypeResolver\NodeTypeResolver;
use Rector\NodeTypeResolver\PHPStan\Scope\Contract\NodeVisitor\ScopeResolverNodeVisitorInterface;
use Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver;
use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocator\IntermediateSourceLocator;
use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider;
use Rector\Parallel\WorkerRunner;
use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser;
use Rector\PhpDocParser\PhpParser\SmartPhpParser;
use Rector\PhpDocParser\PhpParser\SmartPhpParserFactory;
use Rector\PHPStanStaticTypeMapper\Contract\TypeMapperInterface;
use Rector\PHPStanStaticTypeMapper\PHPStanStaticTypeMapper;
use Rector\RectorGenerator\Command\GenerateCommand;
use Rector\RectorGenerator\Command\InitRecipeCommand;
use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface;
use Rector\StaticTypeMapper\Contract\PhpParser\PhpParserNodeMapperInterface;
use Rector\StaticTypeMapper\Mapper\PhpParserNodeMapper;
use Rector\StaticTypeMapper\PhpDoc\PhpDocTypeMapper;
use Rector\Utils\Command\MissingInSetCommand;
use Rector\Utils\Command\OutsideAnySetCommand;
use RectorPrefix202306\Symfony\Component\Console\Application;
use RectorPrefix202306\Symfony\Component\Console\Style\SymfonyStyle;
use function RectorPrefix202306\Symfony\Component\DependencyInjection\Loader\Configurator\service;
use function RectorPrefix202306\Symfony\Component\DependencyInjection\Loader\Configurator\tagged_iterator;
use RectorPrefix202306\Symfony\Component\Filesystem\Filesystem;
use RectorPrefix202306\Symplify\EasyParallel\ValueObject\EasyParallelConfig;
return static function (RectorConfig $rectorConfig) : void {
@ -153,4 +184,22 @@ return static function (RectorConfig $rectorConfig) : void {
$services->set(\PHPStan\PhpDocParser\Lexer\Lexer::class);
$services->set(TypeParser::class);
$services->set(ConstExprParser::class);
// tagged services
$services->set(PhpDocNodeMapper::class)->arg('$phpDocNodeVisitors', tagged_iterator(BasePhpDocNodeVisitorInterface::class));
$services->set(BetterPhpDocParser::class)->arg('$phpDocNodeDecorators', tagged_iterator(PhpDocNodeDecoratorInterface::class));
$services->set(NodeTypeResolver::class)->arg('$nodeTypeResolvers', tagged_iterator(NodeTypeResolverInterface::class));
$services->set(PHPStanNodeScopeResolver::class)->arg('$nodeVisitors', tagged_iterator(ScopeResolverNodeVisitorInterface::class));
$services->set(PHPStanStaticTypeMapper::class)->arg('$typeMappers', tagged_iterator(TypeMapperInterface::class));
$services->set(PhpParserNodeMapper::class)->arg('$phpParserNodeMappers', tagged_iterator(PhpParserNodeMapperInterface::class));
$services->set(PhpDocTypeMapper::class)->arg('$phpDocTypeMappers', tagged_iterator(PhpDocTypeMapperInterface::class));
$services->set(ClassNameImportSkipper::class)->arg('$classNameImportSkipVoters', tagged_iterator(ClassNameImportSkipVoterInterface::class));
$services->set(ConfigInitializer::class)->arg('$rectors', tagged_iterator(RectorInterface::class));
$services->set(ListRulesCommand::class)->arg('$rectors', tagged_iterator(RectorInterface::class));
$services->set(OutputFormatterCollector::class)->arg('$outputFormatters', tagged_iterator(OutputFormatterInterface::class));
$services->set(NonPhpFileProcessor::class)->arg('$nonPhpRectors', tagged_iterator(NonPhpRectorInterface::class));
$services->set(RectorNodeTraverser::class)->arg('$phpRectors', tagged_iterator(PhpRectorInterface::class));
$services->set(NodeNameResolver::class)->arg('$nodeNameResolvers', tagged_iterator(NodeNameResolverInterface::class));
$services->set(ApplicationFileProcessor::class)->arg('$fileProcessors', tagged_iterator(FileProcessorInterface::class));
$services->set(FileFactory::class)->arg('$fileProcessors', tagged_iterator(FileProcessorInterface::class));
$services->set(WorkerRunner::class)->arg('$fileProcessors', tagged_iterator(FileProcessorInterface::class));
};

View File

@ -6,6 +6,5 @@ use Rector\Config\RectorConfig;
use Rector\Privatization\Rector\Class_\FinalizeClassesWithoutChildrenRector;
return static function (RectorConfig $rectorConfig): void {
$services = $rectorConfig->services();
$services->set(FinalizeClassesWithoutChildrenRector::class);
$rectorConfig->rule(FinalizeClassesWithoutChildrenRector::class);
};

View File

@ -8,6 +8,5 @@ use Rector\Config\RectorConfig;
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->paths([__DIR__ . '/src/']);
$services = $rectorConfig->services();
$services->set(MakeInheritedMethodVisibilitySameAsParentRector::class);
$rectorConfig->rule(MakeInheritedMethodVisibilitySameAsParentRector::class);
};

View File

@ -8,7 +8,13 @@ use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagValueNode;
use Stringable;
final class ArrayItemNode implements PhpDocTagValueNode
{
/**
* @var mixed
*/
public $value;
/**
* @var mixed
*/
public $key = null;
use NodeAttributes;
/**

View File

@ -40,34 +40,42 @@ use Rector\StaticTypeMapper\StaticTypeMapper;
final class PhpDocInfo
{
/**
* @readonly
* @var \PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocNode
*/
private $phpDocNode;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\ValueObject\Parser\BetterTokenIterator
*/
private $betterTokenIterator;
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \PhpParser\Node
*/
private $node;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Annotation\AnnotationNaming
*/
private $annotationNaming;
/**
* @readonly
* @var \Rector\Core\Configuration\CurrentNodeProvider
*/
private $currentNodeProvider;
/**
* @readonly
* @var \Rector\ChangesReporting\Collector\RectorChangeCollector
*/
private $rectorChangeCollector;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocNodeFinder\PhpDocNodeByTypeFinder
*/
private $phpDocNodeByTypeFinder;

View File

@ -22,34 +22,42 @@ use Rector\StaticTypeMapper\StaticTypeMapper;
final class PhpDocInfoFactory
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocNodeMapper
*/
private $phpDocNodeMapper;
/**
* @readonly
* @var \Rector\Core\Configuration\CurrentNodeProvider
*/
private $currentNodeProvider;
/**
* @readonly
* @var \PHPStan\PhpDocParser\Lexer\Lexer
*/
private $lexer;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocParser\BetterPhpDocParser
*/
private $betterPhpDocParser;
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Annotation\AnnotationNaming
*/
private $annotationNaming;
/**
* @readonly
* @var \Rector\ChangesReporting\Collector\RectorChangeCollector
*/
private $rectorChangeCollector;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocNodeFinder\PhpDocNodeByTypeFinder
*/
private $phpDocNodeByTypeFinder;

View File

@ -10,10 +10,12 @@ use Rector\Core\Util\Reflection\PrivatesAccessor;
final class TokenIteratorFactory
{
/**
* @readonly
* @var \PHPStan\PhpDocParser\Lexer\Lexer
*/
private $lexer;
/**
* @readonly
* @var \Rector\Core\Util\Reflection\PrivatesAccessor
*/
private $privatesAccessor;

View File

@ -15,6 +15,7 @@ use Rector\BetterPhpDocParser\ValueObject\PhpDocAttributeKey;
final class PhpDocClassRenamer
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocParser\ClassAnnotationMatcher
*/
private $classAnnotationMatcher;

View File

@ -37,30 +37,37 @@ use Rector\TypeDeclaration\PhpDocParser\ParamPhpDocNodeFactory;
final class PhpDocTypeChanger
{
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \Rector\NodeTypeResolver\TypeComparator\TypeComparator
*/
private $typeComparator;
/**
* @readonly
* @var \Rector\TypeDeclaration\PhpDocParser\ParamPhpDocNodeFactory
*/
private $paramPhpDocNodeFactory;
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Comment\CommentsMerger
*/
private $commentsMerger;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
*/
private $phpDocInfoFactory;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Guard\NewPhpDocFromPHPStanTypeGuard
*/
private $newPhpDocFromPHPStanTypeGuard;

View File

@ -10,6 +10,7 @@ use Rector\Naming\ValueObject\ParamRename;
final class PropertyDocBlockManipulator
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
*/
private $phpDocInfoFactory;

View File

@ -16,25 +16,29 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\ParentConnectingPhpDocNod
final class PhpDocNodeMapper
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\DataProvider\CurrentTokenIteratorProvider
*/
private $currentTokenIteratorProvider;
/**
* @readonly
* @var \Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\ParentConnectingPhpDocNodeVisitor
*/
private $parentConnectingPhpDocNodeVisitor;
/**
* @readonly
* @var \Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\CloningPhpDocNodeVisitor
*/
private $cloningPhpDocNodeVisitor;
/**
* @var BasePhpDocNodeVisitorInterface[]
* @readonly
*/
private $phpDocNodeVisitors;
/**
* @param BasePhpDocNodeVisitorInterface[] $phpDocNodeVisitors
*/
public function __construct(CurrentTokenIteratorProvider $currentTokenIteratorProvider, ParentConnectingPhpDocNodeVisitor $parentConnectingPhpDocNodeVisitor, CloningPhpDocNodeVisitor $cloningPhpDocNodeVisitor, array $phpDocNodeVisitors)
public function __construct(CurrentTokenIteratorProvider $currentTokenIteratorProvider, ParentConnectingPhpDocNodeVisitor $parentConnectingPhpDocNodeVisitor, CloningPhpDocNodeVisitor $cloningPhpDocNodeVisitor, iterable $phpDocNodeVisitors)
{
$this->currentTokenIteratorProvider = $currentTokenIteratorProvider;
$this->parentConnectingPhpDocNodeVisitor = $parentConnectingPhpDocNodeVisitor;

View File

@ -12,6 +12,7 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\AbstractPhpDocNodeVisitor
final class ArrayTypePhpDocNodeVisitor extends AbstractPhpDocNodeVisitor implements BasePhpDocNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Attributes\AttributeMirrorer
*/
private $attributeMirrorer;

View File

@ -12,6 +12,7 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\AbstractPhpDocNodeVisitor
final class CallableTypePhpDocNodeVisitor extends AbstractPhpDocNodeVisitor implements BasePhpDocNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Attributes\AttributeMirrorer
*/
private $attributeMirrorer;

View File

@ -12,6 +12,7 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\AbstractPhpDocNodeVisitor
final class IntersectionTypeNodePhpDocNodeVisitor extends AbstractPhpDocNodeVisitor implements BasePhpDocNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Attributes\AttributeMirrorer
*/
private $attributeMirrorer;

View File

@ -18,10 +18,12 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\AbstractPhpDocNodeVisitor
final class TemplatePhpDocNodeVisitor extends AbstractPhpDocNodeVisitor implements BasePhpDocNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\DataProvider\CurrentTokenIteratorProvider
*/
private $currentTokenIteratorProvider;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Attributes\AttributeMirrorer
*/
private $attributeMirrorer;

View File

@ -17,10 +17,12 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeVisitor\AbstractPhpDocNodeVisitor
final class UnionTypeNodePhpDocNodeVisitor extends AbstractPhpDocNodeVisitor implements BasePhpDocNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\DataProvider\CurrentTokenIteratorProvider
*/
private $currentTokenIteratorProvider;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Attributes\AttributeMirrorer
*/
private $attributeMirrorer;

View File

@ -28,31 +28,35 @@ use Rector\Core\Util\Reflection\PrivatesAccessor;
final class BetterPhpDocParser extends PhpDocParser
{
/**
* @readonly
* @var \Rector\Core\Configuration\CurrentNodeProvider
*/
private $currentNodeProvider;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\TokenIteratorFactory
*/
private $tokenIteratorFactory;
/**
* @var PhpDocNodeDecoratorInterface[]
* @readonly
*/
private $phpDocNodeDecorators;
/**
* @var \Rector\Core\Util\Reflection\PrivatesAccessor|null
* @readonly
* @var \Rector\Core\Util\Reflection\PrivatesAccessor
*/
private $privatesAccessor;
/**
* @param PhpDocNodeDecoratorInterface[] $phpDocNodeDecorators
*/
public function __construct(TypeParser $typeParser, ConstExprParser $constExprParser, CurrentNodeProvider $currentNodeProvider, TokenIteratorFactory $tokenIteratorFactory, array $phpDocNodeDecorators, ?PrivatesAccessor $privatesAccessor = null)
public function __construct(TypeParser $typeParser, ConstExprParser $constExprParser, CurrentNodeProvider $currentNodeProvider, TokenIteratorFactory $tokenIteratorFactory, iterable $phpDocNodeDecorators, PrivatesAccessor $privatesAccessor = null)
{
$privatesAccessor = $privatesAccessor ?? new PrivatesAccessor();
$this->currentNodeProvider = $currentNodeProvider;
$this->tokenIteratorFactory = $tokenIteratorFactory;
$this->phpDocNodeDecorators = $phpDocNodeDecorators;
$this->privatesAccessor = $privatesAccessor;
$this->privatesAccessor = $privatesAccessor ?? new PrivatesAccessor();
parent::__construct($typeParser, $constExprParser);
}
public function parse(TokenIterator $tokenIterator) : PhpDocNode

View File

@ -13,6 +13,7 @@ use Rector\BetterPhpDocParser\ValueObject\StartAndEnd;
final class BetterTypeParser extends TypeParser
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\TokenIteratorFactory
*/
private $tokenIteratorFactory;

View File

@ -19,14 +19,17 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
final class ClassAnnotationMatcher
{
/**
* @readonly
* @var \Rector\CodingStyle\NodeAnalyzer\UseImportNameMatcher
*/
private $useImportNameMatcher;
/**
* @readonly
* @var \Rector\Naming\Naming\UseImportsResolver
*/
private $useImportsResolver;
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;

View File

@ -19,10 +19,12 @@ use Rector\StaticTypeMapper\Naming\NameScopeFactory;
final class ConstExprClassNameDecorator implements PhpDocNodeDecoratorInterface
{
/**
* @readonly
* @var \Rector\StaticTypeMapper\Naming\NameScopeFactory
*/
private $nameScopeFactory;
/**
* @readonly
* @var \Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser
*/
private $phpDocNodeTraverser;

View File

@ -24,18 +24,22 @@ use Rector\Core\Util\StringUtils;
final class DoctrineAnnotationDecorator implements PhpDocNodeDecoratorInterface
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocParser\ClassAnnotationMatcher
*/
private $classAnnotationMatcher;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser
*/
private $staticDoctrineAnnotationParser;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\TokenIteratorFactory
*/
private $tokenIteratorFactory;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Attributes\AttributeMirrorer
*/
private $attributeMirrorer;

View File

@ -19,10 +19,12 @@ use Rector\BetterPhpDocParser\ValueObject\PhpDoc\DoctrineAnnotation\CurlyListNod
final class StaticDoctrineAnnotationParser
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\PlainValueParser
*/
private $plainValueParser;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\ArrayParser
*/
private $arrayParser;

View File

@ -15,6 +15,7 @@ use Rector\BetterPhpDocParser\ValueObject\Parser\BetterTokenIterator;
final class ArrayParser
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocParser\StaticDoctrineAnnotationParser\PlainValueParser
*/
private $plainValueParser;

View File

@ -22,10 +22,12 @@ use RectorPrefix202306\Symfony\Contracts\Service\Attribute\Required;
final class PlainValueParser
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocParser\ClassAnnotationMatcher
*/
private $classAnnotationMatcher;
/**
* @readonly
* @var \Rector\Core\Configuration\CurrentNodeProvider
*/
private $currentNodeProvider;

View File

@ -27,18 +27,22 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser;
final class PhpDocInfoPrinter
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Printer\EmptyPhpDocDetector
*/
private $emptyPhpDocDetector;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Printer\DocBlockInliner
*/
private $docBlockInliner;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Printer\RemoveNodesStartAndEndResolver
*/
private $removeNodesStartAndEndResolver;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocNodeVisitor\ChangedPhpDocNodeVisitor
*/
private $changedPhpDocNodeVisitor;

View File

@ -10,6 +10,7 @@ final class CurlyListNode extends \Rector\BetterPhpDocParser\ValueObject\PhpDoc\
{
/**
* @var ArrayItemNode[]
* @readonly
*/
private $arrayItemNodes = [];
/**

View File

@ -9,6 +9,7 @@ use Stringable;
final class SpacingAwareTemplateTagValueNode extends TemplateTagValueNode
{
/**
* @readonly
* @var string
*/
private $preposition;

View File

@ -7,10 +7,12 @@ use Rector\Core\Exception\ShouldNotHappenException;
final class StartAndEnd
{
/**
* @readonly
* @var int
*/
private $start;
/**
* @readonly
* @var int
*/
private $end;

View File

@ -9,6 +9,7 @@ use Stringable;
final class BracketsAwareUnionTypeNode extends UnionTypeNode
{
/**
* @readonly
* @var bool
*/
private $isWrappedInBrackets = \false;

View File

@ -7,6 +7,7 @@ use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface;
final class Cache
{
/**
* @readonly
* @var \Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface
*/
private $cacheStorage;

View File

@ -11,10 +11,12 @@ use RectorPrefix202306\Symfony\Component\Filesystem\Filesystem;
final class CacheFactory
{
/**
* @readonly
* @var \Rector\Core\Configuration\Parameter\ParameterProvider
*/
private $parameterProvider;
/**
* @readonly
* @var \Symfony\Component\Filesystem\Filesystem
*/
private $fileSystem;

View File

@ -15,14 +15,17 @@ use Rector\Core\Util\FileHasher;
final class ChangedFilesDetector
{
/**
* @readonly
* @var \Rector\Caching\Config\FileHashComputer
*/
private $fileHashComputer;
/**
* @readonly
* @var \Rector\Caching\Cache
*/
private $cache;
/**
* @readonly
* @var \Rector\Core\Util\FileHasher
*/
private $fileHasher;

View File

@ -11,14 +11,17 @@ use Rector\Core\Util\Reflection\PrivatesAccessor;
final class DependencyResolver
{
/**
* @readonly
* @var \PHPStan\Analyser\NodeScopeResolver
*/
private $nodeScopeResolver;
/**
* @readonly
* @var PHPStanDependencyResolver
*/
private $phpStanDependencyResolver;
/**
* @readonly
* @var \Rector\Core\Util\Reflection\PrivatesAccessor
*/
private $privatesAccessor;

View File

@ -7,6 +7,7 @@ use Rector\Caching\Detector\ChangedFilesDetector;
final class UnchangedFilesFilter
{
/**
* @readonly
* @var \Rector\Caching\Detector\ChangedFilesDetector
*/
private $changedFilesDetector;

View File

@ -6,14 +6,17 @@ namespace Rector\Caching\ValueObject;
final class CacheFilePaths
{
/**
* @readonly
* @var string
*/
private $firstDirectory;
/**
* @readonly
* @var string
*/
private $secondDirectory;
/**
* @readonly
* @var string
*/
private $filePath;

View File

@ -10,9 +10,14 @@ namespace Rector\Caching\ValueObject;
final class CacheItem
{
/**
* @readonly
* @var string
*/
private $variableKey;
/**
* @readonly
* @var mixed
*/
private $data;
/**
* @param mixed $data

View File

@ -17,10 +17,12 @@ use Rector\Core\Exception\Cache\CachingException;
final class FileCacheStorage implements CacheStorageInterface
{
/**
* @readonly
* @var string
*/
private $directory;
/**
* @readonly
* @var \Symfony\Component\Filesystem\Filesystem
*/
private $filesystem;

View File

@ -7,6 +7,7 @@ use Rector\Core\Contract\Rector\RectorInterface;
final class RectorsChangelogResolver
{
/**
* @readonly
* @var \Rector\ChangesReporting\Annotation\AnnotationExtractor
*/
private $annotationExtractor;

View File

@ -12,10 +12,12 @@ use Rector\Core\ValueObject\Application\File;
final class RectorChangeCollector
{
/**
* @readonly
* @var \Rector\Core\Logging\CurrentRectorProvider
*/
private $currentRectorProvider;
/**
* @readonly
* @var \Rector\Core\Provider\CurrentFileProvider
*/
private $currentFileProvider;

View File

@ -14,10 +14,12 @@ use Rector\Core\ValueObject\Reporting\FileDiff;
final class ConsoleOutputFormatter implements OutputFormatterInterface
{
/**
* @readonly
* @var \Rector\Core\Contract\Console\OutputStyleInterface
*/
private $rectorOutputStyle;
/**
* @readonly
* @var \Rector\ChangesReporting\Annotation\RectorsChangelogResolver
*/
private $rectorsChangelogResolver;

View File

@ -13,6 +13,7 @@ use Rector\Parallel\ValueObject\Bridge;
final class JsonOutputFormatter implements OutputFormatterInterface
{
/**
* @readonly
* @var \Rector\ChangesReporting\Annotation\RectorsChangelogResolver
*/
private $rectorsChangelogResolver;

View File

@ -9,6 +9,7 @@ use RectorPrefix202306\Webmozart\Assert\Assert;
final class RectorWithLineChange implements SerializableInterface
{
/**
* @readonly
* @var int
*/
private $line;

View File

@ -10,10 +10,12 @@ use Rector\Core\ValueObject\Error\SystemError;
final class ErrorFactory
{
/**
* @readonly
* @var \Rector\Core\Error\ExceptionCorrector
*/
private $exceptionCorrector;
/**
* @readonly
* @var \Rector\Core\FileSystem\FilePathHelper
*/
private $filePathHelper;

View File

@ -12,14 +12,17 @@ use Rector\Core\ValueObject\Reporting\FileDiff;
final class FileDiffFactory
{
/**
* @readonly
* @var \Rector\Core\Differ\DefaultDiffer
*/
private $defaultDiffer;
/**
* @readonly
* @var \Rector\Core\Console\Formatter\ConsoleDiffer
*/
private $consoleDiffer;
/**
* @readonly
* @var \Rector\Core\FileSystem\FilePathHelper
*/
private $filePathHelper;

View File

@ -11,6 +11,7 @@ use Rector\Comments\NodeTraverser\CommentRemovingNodeTraverser;
final class CommentRemover
{
/**
* @readonly
* @var \Rector\Comments\NodeTraverser\CommentRemovingNodeTraverser
*/
private $commentRemovingNodeTraverser;

View File

@ -12,6 +12,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
final class DocBlockUpdater
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Printer\PhpDocInfoPrinter
*/
private $phpDocInfoPrinter;
@ -35,6 +36,20 @@ final class DocBlockUpdater
// this is needed to remove duplicated // commentsAsText
$node->setDocComment(new Doc($phpDoc));
}
public function updateRefactoredNodeWithPhpDocInfo(Node $node) : void
{
// nothing to change? don't save it
$phpDocInfo = $this->resolveChangedPhpDocInfo($node);
if (!$phpDocInfo instanceof PhpDocInfo) {
return;
}
$phpDocNode = $phpDocInfo->getPhpDocNode();
if ($phpDocNode->children === []) {
$this->setCommentsAttribute($node);
return;
}
$node->setDocComment(new Doc((string) $phpDocNode));
}
private function setCommentsAttribute(Node $node) : void
{
if ($node->hasAttribute(AttributeKey::PREVIOUS_DOCS_AS_COMMENTS)) {

View File

@ -7,9 +7,13 @@ use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface;
use Rector\Core\Configuration\Option;
use Rector\Core\Configuration\ValueObjectInliner;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Contract\Rector\NonPhpRectorInterface;
use Rector\Core\Contract\Rector\PhpRectorInterface;
use Rector\Core\Contract\Rector\RectorInterface;
use Rector\Core\ValueObject\PhpVersion;
use RectorPrefix202306\Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use RectorPrefix202306\Symfony\Component\DependencyInjection\Loader\Configurator\ServiceConfigurator;
use RectorPrefix202306\Symfony\Component\DependencyInjection\Loader\Configurator\ServicesConfigurator;
use RectorPrefix202306\Webmozart\Assert\Assert;
/**
* @api
@ -18,6 +22,10 @@ use RectorPrefix202306\Webmozart\Assert\Assert;
*/
final class RectorConfig extends ContainerConfigurator
{
/**
* @var \Symfony\Component\DependencyInjection\Loader\Configurator\ServicesConfigurator|null
*/
private $servicesConfigurator;
/**
* @param string[] $paths
*/
@ -104,7 +112,6 @@ final class RectorConfig extends ContainerConfigurator
Assert::classExists($rectorClass);
Assert::isAOf($rectorClass, RectorInterface::class);
Assert::isAOf($rectorClass, ConfigurableRectorInterface::class);
$services = $this->services();
// decorate with value object inliner so Symfony understands, see https://getrector.org/blog/2020/09/07/how-to-inline-value-object-in-symfony-php-config
\array_walk_recursive($configuration, static function (&$value) {
if (\is_object($value)) {
@ -112,7 +119,9 @@ final class RectorConfig extends ContainerConfigurator
}
return $value;
});
$services->set($rectorClass)->call('configure', [$configuration]);
$servicesConfigurator = $this->getServices();
$rectorService = $servicesConfigurator->set($rectorClass)->call('configure', [$configuration]);
$this->tagRectorService($rectorService, $rectorClass);
}
/**
* @param class-string<RectorInterface> $rectorClass
@ -121,8 +130,9 @@ final class RectorConfig extends ContainerConfigurator
{
Assert::classExists($rectorClass);
Assert::isAOf($rectorClass, RectorInterface::class);
$services = $this->services();
$services->set($rectorClass);
$servicesConfigurator = $this->getServices();
$rectorService = $servicesConfigurator->set($rectorClass);
$this->tagRectorService($rectorService, $rectorClass);
}
/**
* @param array<class-string<RectorInterface>> $rectorClasses
@ -216,4 +226,24 @@ final class RectorConfig extends ContainerConfigurator
$parameters->set(Option::INDENT_CHAR, $character);
$parameters->set(Option::INDENT_SIZE, $count);
}
private function getServices() : ServicesConfigurator
{
if ($this->servicesConfigurator instanceof ServicesConfigurator) {
return $this->servicesConfigurator;
}
$this->servicesConfigurator = $this->services();
return $this->servicesConfigurator;
}
/**
* @param class-string<RectorInterface|PhpRectorInterface|NonPhpRectorInterface> $rectorClass
*/
private function tagRectorService(ServiceConfigurator $rectorServiceConfigurator, string $rectorClass) : void
{
$rectorServiceConfigurator->tag(RectorInterface::class);
if (\is_a($rectorClass, PhpRectorInterface::class, \true)) {
$rectorServiceConfigurator->tag(PhpRectorInterface::class);
} elseif (\is_a($rectorClass, NonPhpRectorInterface::class, \true)) {
$rectorServiceConfigurator->tag(NonPhpRectorInterface::class);
}
}
}

View File

@ -12,6 +12,7 @@ use Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer;
final class ClassChildAnalyzer
{
/**
* @readonly
* @var \Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer
*/
private $familyRelationsAnalyzer;

View File

@ -14,18 +14,22 @@ use Rector\NodeNameResolver\NodeNameResolver;
final class FamilyRelationsAnalyzer
{
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
/**
* @readonly
* @var \Rector\Core\Util\Reflection\PrivatesAccessor
*/
private $privatesAccessor;
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\Core\PhpParser\AstResolver
*/
private $astResolver;

View File

@ -15,14 +15,17 @@ use Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator;
final class FileInfoParser
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeScopeAndMetadataDecorator
*/
private $nodeScopeAndMetadataDecorator;
/**
* @readonly
* @var \Rector\Core\PhpParser\NodeTraverser\FileWithoutNamespaceNodeTraverser
*/
private $fileWithoutNamespaceNodeTraverser;
/**
* @readonly
* @var \Rector\Core\PhpParser\Parser\RectorParser
*/
private $rectorParser;

View File

@ -33,22 +33,27 @@ use Rector\NodeTypeResolver\NodeTypeResolver;
final class ArrayCallableMethodMatcher
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeTypeResolver
*/
private $nodeTypeResolver;
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\Value\ValueResolver
*/
private $valueResolver;
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;

View File

@ -8,14 +8,17 @@ use Rector\Core\Validation\RectorAssert;
final class ArrayCallable
{
/**
* @readonly
* @var \PhpParser\Node\Expr
*/
private $callerExpr;
/**
* @readonly
* @var string
*/
private $class;
/**
* @readonly
* @var string
*/
private $method;

View File

@ -11,14 +11,17 @@ use Rector\Core\Validation\RectorAssert;
final class ArrayCallableDynamicMethod
{
/**
* @readonly
* @var \PhpParser\Node\Expr
*/
private $callerExpr;
/**
* @readonly
* @var string
*/
private $class;
/**
* @readonly
* @var \PhpParser\Node\Expr
*/
private $method;

View File

@ -21,19 +21,23 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
final class NodeNameResolver
{
/**
* @readonly
* @var \Rector\NodeNameResolver\Regex\RegexPatternDetector
*/
private $regexPatternDetector;
/**
* @readonly
* @var \Rector\CodingStyle\Naming\ClassNaming
*/
private $classNaming;
/**
* @readonly
* @var \Rector\Core\NodeAnalyzer\CallAnalyzer
*/
private $callAnalyzer;
/**
* @var NodeNameResolverInterface[]
* @readonly
*/
private $nodeNameResolvers = [];
/**
@ -50,7 +54,7 @@ final class NodeNameResolver
/**
* @param NodeNameResolverInterface[] $nodeNameResolvers
*/
public function __construct(RegexPatternDetector $regexPatternDetector, ClassNaming $classNaming, CallAnalyzer $callAnalyzer, array $nodeNameResolvers = [])
public function __construct(RegexPatternDetector $regexPatternDetector, ClassNaming $classNaming, CallAnalyzer $callAnalyzer, iterable $nodeNameResolvers = [])
{
$this->regexPatternDetector = $regexPatternDetector;
$this->classNaming = $classNaming;

View File

@ -17,6 +17,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
final class FuncCallNameResolver implements NodeNameResolverInterface
{
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;

View File

@ -15,6 +15,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
final class NameNameResolver implements NodeNameResolverInterface
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver\FuncCallNameResolver
*/
private $funcCallNameResolver;

View File

@ -13,6 +13,7 @@ use Rector\NodeNestingScope\ValueObject\ControlStructure;
final class ContextAnalyzer
{
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;

View File

@ -13,6 +13,7 @@ use Rector\Core\PhpParser\Node\BetterNodeFinder;
final class ParentScopeFinder
{
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;

View File

@ -14,10 +14,12 @@ use Rector\NodeNestingScope\ValueObject\ControlStructure;
final class ScopeNestingComparator
{
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;
/**
* @readonly
* @var \Rector\Core\PhpParser\Comparing\NodeComparator
*/
private $nodeComparator;

View File

@ -25,10 +25,12 @@ use RectorPrefix202306\Symfony\Component\Filesystem\Filesystem;
final class PHPStanServicesFactory
{
/**
* @readonly
* @var \Rector\Core\Configuration\Parameter\ParameterProvider
*/
private $parameterProvider;
/**
* @readonly
* @var \Rector\NodeTypeResolver\DependencyInjection\PHPStanExtensionsConfigResolver
*/
private $phpStanExtensionsConfigResolver;

View File

@ -13,6 +13,7 @@ use Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver;
final class NodeScopeAndMetadataDecorator
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver
*/
private $phpStanNodeScopeResolver;

View File

@ -12,6 +12,7 @@ use PHPStan\Type\TypeTraverser;
final class GenericClassStringTypeCorrector
{
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;

View File

@ -43,26 +43,32 @@ use Rector\TypeDeclaration\PHPStan\ObjectTypeSpecifier;
final class NodeTypeResolver
{
/**
* @readonly
* @var \Rector\TypeDeclaration\PHPStan\ObjectTypeSpecifier
*/
private $objectTypeSpecifier;
/**
* @readonly
* @var \Rector\Core\NodeAnalyzer\ClassAnalyzer
*/
private $classAnalyzer;
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeTypeCorrector\GenericClassStringTypeCorrector
*/
private $genericClassStringTypeCorrector;
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeTypeCorrector\AccessoryNonEmptyStringTypeCorrector
*/
private $accessoryNonEmptyStringTypeCorrector;
/**
* @readonly
* @var \Rector\Core\Configuration\RenamedClassesDataCollector
*/
private $renamedClassesDataCollector;
@ -73,7 +79,7 @@ final class NodeTypeResolver
/**
* @param NodeTypeResolverInterface[] $nodeTypeResolvers
*/
public function __construct(ObjectTypeSpecifier $objectTypeSpecifier, ClassAnalyzer $classAnalyzer, GenericClassStringTypeCorrector $genericClassStringTypeCorrector, ReflectionProvider $reflectionProvider, AccessoryNonEmptyStringTypeCorrector $accessoryNonEmptyStringTypeCorrector, RenamedClassesDataCollector $renamedClassesDataCollector, array $nodeTypeResolvers)
public function __construct(ObjectTypeSpecifier $objectTypeSpecifier, ClassAnalyzer $classAnalyzer, GenericClassStringTypeCorrector $genericClassStringTypeCorrector, ReflectionProvider $reflectionProvider, AccessoryNonEmptyStringTypeCorrector $accessoryNonEmptyStringTypeCorrector, RenamedClassesDataCollector $renamedClassesDataCollector, iterable $nodeTypeResolvers)
{
$this->objectTypeSpecifier = $objectTypeSpecifier;
$this->classAnalyzer = $classAnalyzer;

View File

@ -23,6 +23,7 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
final class ClassAndInterfaceTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;

View File

@ -19,6 +19,7 @@ use RectorPrefix202306\Symfony\Contracts\Service\Attribute\Required;
final class ClassMethodOrClassConstTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;

View File

@ -26,14 +26,17 @@ use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface;
final class NameTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;

View File

@ -25,10 +25,12 @@ use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType;
final class NewTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\Core\NodeAnalyzer\ClassAnalyzer
*/
private $classAnalyzer;

View File

@ -31,18 +31,22 @@ use RectorPrefix202306\Symfony\Contracts\Service\Attribute\Required;
final class ParamTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser
*/
private $simpleCallableNodeTraverser;
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
*/
private $phpDocInfoFactory;
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;

View File

@ -25,14 +25,17 @@ use RectorPrefix202306\Symfony\Contracts\Service\Attribute\Required;
final class PropertyFetchTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;

View File

@ -23,10 +23,12 @@ use RectorPrefix202306\Symfony\Contracts\Service\Attribute\Required;
final class StaticCallMethodCallTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;

View File

@ -19,6 +19,7 @@ use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface;
final class TraitTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;

View File

@ -20,10 +20,12 @@ use Rector\NodeTypeResolver\Node\AttributeKey;
final class VariableTypeResolver implements NodeTypeResolverInterface
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
*/
private $phpDocInfoFactory;

View File

@ -10,6 +10,7 @@ final class ObjectWithoutClassTypeWithParentTypes extends ObjectWithoutClassType
{
/**
* @var TypeWithClassName[]
* @readonly
*/
private $parentTypes;
/**

View File

@ -15,6 +15,7 @@ use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser;
final class ByRefReturnNodeVisitor extends NodeVisitorAbstract implements ScopeResolverNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser
*/
private $simpleCallableNodeTraverser;

View File

@ -16,6 +16,7 @@ use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser;
final class ByRefVariableNodeVisitor extends NodeVisitorAbstract implements ScopeResolverNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser
*/
private $simpleCallableNodeTraverser;

View File

@ -17,6 +17,7 @@ use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser;
final class GlobalVariableNodeVisitor extends NodeVisitorAbstract implements ScopeResolverNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser
*/
private $simpleCallableNodeTraverser;

View File

@ -19,6 +19,7 @@ use Rector\NodeTypeResolver\PHPStan\Scope\Contract\NodeVisitor\ScopeResolverNode
final class RemoveDeepChainMethodCallNodeVisitor extends NodeVisitorAbstract implements ScopeResolverNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;

View File

@ -17,6 +17,7 @@ use Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser;
final class StaticVariableNodeVisitor extends NodeVisitorAbstract implements ScopeResolverNodeVisitorInterface
{
/**
* @readonly
* @var \Rector\PhpDocParser\NodeTraverser\SimpleCallableNodeTraverser
*/
private $simpleCallableNodeTraverser;

View File

@ -61,38 +61,47 @@ use RectorPrefix202306\Webmozart\Assert\Assert;
final class PHPStanNodeScopeResolver
{
/**
* @readonly
* @var \Rector\Caching\Detector\ChangedFilesDetector
*/
private $changedFilesDetector;
/**
* @readonly
* @var \Rector\Caching\FileSystem\DependencyResolver
*/
private $dependencyResolver;
/**
* @readonly
* @var \PHPStan\Analyser\NodeScopeResolver
*/
private $nodeScopeResolver;
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;
/**
* @readonly
* @var \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory
*/
private $scopeFactory;
/**
* @readonly
* @var \Rector\Core\Util\Reflection\PrivatesAccessor
*/
private $privatesAccessor;
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\Core\NodeAnalyzer\ClassAnalyzer
*/
private $classAnalyzer;
/**
* @readonly
* @var \Rector\Core\PhpParser\NodeTraverser\FileWithoutNamespaceNodeTraverser
*/
private $fileWithoutNamespaceNodeTraverser;
@ -108,7 +117,7 @@ final class PHPStanNodeScopeResolver
/**
* @param ScopeResolverNodeVisitorInterface[] $nodeVisitors
*/
public function __construct(ChangedFilesDetector $changedFilesDetector, DependencyResolver $dependencyResolver, NodeScopeResolver $nodeScopeResolver, ReflectionProvider $reflectionProvider, array $nodeVisitors, \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory $scopeFactory, PrivatesAccessor $privatesAccessor, NodeNameResolver $nodeNameResolver, ClassAnalyzer $classAnalyzer, FileWithoutNamespaceNodeTraverser $fileWithoutNamespaceNodeTraverser)
public function __construct(ChangedFilesDetector $changedFilesDetector, DependencyResolver $dependencyResolver, NodeScopeResolver $nodeScopeResolver, ReflectionProvider $reflectionProvider, iterable $nodeVisitors, \Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory $scopeFactory, PrivatesAccessor $privatesAccessor, NodeNameResolver $nodeNameResolver, ClassAnalyzer $classAnalyzer, FileWithoutNamespaceNodeTraverser $fileWithoutNamespaceNodeTraverser)
{
$this->changedFilesDetector = $changedFilesDetector;
$this->dependencyResolver = $dependencyResolver;

View File

@ -9,6 +9,7 @@ use PHPStan\Analyser\ScopeFactory as PHPStanScopeFactory;
final class ScopeFactory
{
/**
* @readonly
* @var PHPStanScopeFactory
*/
private $phpStanScopeFactory;

View File

@ -15,6 +15,7 @@ use Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeAnalyzer;
final class StaticTypeAnalyzer
{
/**
* @readonly
* @var \Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeAnalyzer
*/
private $unionTypeAnalyzer;

View File

@ -21,6 +21,7 @@ use Rector\NodeTypeResolver\PHPStan\TypeHasher;
final class TypeFactory
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\PHPStan\TypeHasher
*/
private $typeHasher;

View File

@ -10,6 +10,7 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser;
final class DocBlockClassRenamer
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\PhpDocNodeVisitor\ClassRenamePhpDocNodeVisitor
*/
private $classRenamePhpDocNodeVisitor;

View File

@ -10,6 +10,7 @@ use Rector\PhpDocParser\PhpDocParser\PhpDocNodeTraverser;
final class DocBlockNameImporter
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\PhpDocNodeVisitor\NameImportingPhpDocNodeVisitor
*/
private $nameImportingPhpDocNodeVisitor;

View File

@ -10,6 +10,7 @@ use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
final class DocBlockTagReplacer
{
/**
* @readonly
* @var \Rector\BetterPhpDocParser\Annotation\AnnotationNaming
*/
private $annotationNaming;

View File

@ -12,6 +12,7 @@ use Rector\StaticTypeMapper\StaticTypeMapper;
final class PhpDocTypeRenamer
{
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;

View File

@ -29,26 +29,32 @@ use Rector\StaticTypeMapper\ValueObject\Type\ShortenedObjectType;
final class ClassRenamePhpDocNodeVisitor extends AbstractPhpDocNodeVisitor
{
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \Rector\Core\Configuration\CurrentNodeProvider
*/
private $currentNodeProvider;
/**
* @readonly
* @var \Rector\Naming\Naming\UseImportsResolver
*/
private $useImportsResolver;
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\Core\Configuration\RectorConfigProvider
*/
private $rectorConfigProvider;

View File

@ -26,26 +26,32 @@ use Rector\StaticTypeMapper\ValueObject\Type\FullyQualifiedObjectType;
final class NameImportingPhpDocNodeVisitor extends AbstractPhpDocNodeVisitor
{
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \Rector\Core\Configuration\Parameter\ParameterProvider
*/
private $parameterProvider;
/**
* @readonly
* @var \Rector\CodingStyle\ClassNameImport\ClassNameImportSkipper
*/
private $classNameImportSkipper;
/**
* @readonly
* @var \Rector\PostRector\Collector\UseNodesToAddCollector
*/
private $useNodesToAddCollector;
/**
* @readonly
* @var \Rector\Core\Provider\CurrentFileProvider
*/
private $currentFileProvider;
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;

View File

@ -13,14 +13,17 @@ use Rector\StaticTypeMapper\StaticTypeMapper;
final class UnderscoreRenamePhpDocNodeVisitor extends AbstractPhpDocNodeVisitor
{
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \Rector\Renaming\ValueObject\PseudoNamespaceToNamespace
*/
private $pseudoNamespaceToNamespace;
/**
* @readonly
* @var \PhpParser\Node
*/
private $phpNode;

View File

@ -13,10 +13,12 @@ use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocator\Intermedia
final class RectorBetterReflectionSourceLocatorFactory
{
/**
* @readonly
* @var \PHPStan\Reflection\BetterReflection\BetterReflectionSourceLocatorFactory
*/
private $betterReflectionSourceLocatorFactory;
/**
* @readonly
* @var \Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocator\IntermediateSourceLocator
*/
private $intermediateSourceLocator;

View File

@ -12,6 +12,7 @@ use Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\Dy
final class IntermediateSourceLocator implements SourceLocator
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\Reflection\BetterReflection\SourceLocatorProvider\DynamicSourceLocatorProvider
*/
private $dynamicSourceLocatorProvider;

View File

@ -17,10 +17,12 @@ use RectorPrefix202306\Webmozart\Assert\Assert;
final class DynamicSourceLocatorProvider
{
/**
* @readonly
* @var \PHPStan\Reflection\BetterReflection\SourceLocator\FileNodesFetcher
*/
private $fileNodesFetcher;
/**
* @readonly
* @var \PHPStan\Php\PhpVersion
*/
private $phpVersion;

View File

@ -27,22 +27,27 @@ use Rector\NodeTypeResolver\NodeTypeResolver;
final class ArrayTypeAnalyzer
{
/**
* @readonly
* @var \Rector\NodeNameResolver\NodeNameResolver
*/
private $nodeNameResolver;
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeTypeResolver
*/
private $nodeTypeResolver;
/**
* @readonly
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
*/
private $betterNodeFinder;
/**
* @readonly
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
*/
private $phpDocInfoFactory;
/**
* @readonly
* @var \Rector\Core\Reflection\ReflectionResolver
*/
private $reflectionResolver;

View File

@ -9,10 +9,12 @@ use Rector\NodeTypeResolver\NodeTypeResolver;
final class CountableTypeAnalyzer
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\TypeAnalyzer\ArrayTypeAnalyzer
*/
private $arrayTypeAnalyzer;
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeTypeResolver
*/
private $nodeTypeResolver;

View File

@ -8,6 +8,7 @@ use Rector\NodeTypeResolver\NodeTypeResolver;
final class StringTypeAnalyzer
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeTypeResolver
*/
private $nodeTypeResolver;

View File

@ -14,6 +14,7 @@ use Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeCommonTypeNarrower;
final class ArrayTypeComparator
{
/**
* @readonly
* @var \Rector\PHPStanStaticTypeMapper\TypeAnalyzer\UnionTypeCommonTypeNarrower
*/
private $unionTypeCommonTypeNarrower;

View File

@ -31,30 +31,37 @@ use Rector\TypeDeclaration\TypeNormalizer;
final class TypeComparator
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\PHPStan\TypeHasher
*/
private $typeHasher;
/**
* @readonly
* @var \Rector\TypeDeclaration\TypeNormalizer
*/
private $typeNormalizer;
/**
* @readonly
* @var \Rector\StaticTypeMapper\StaticTypeMapper
*/
private $staticTypeMapper;
/**
* @readonly
* @var \Rector\NodeTypeResolver\TypeComparator\ArrayTypeComparator
*/
private $arrayTypeComparator;
/**
* @readonly
* @var \Rector\NodeTypeResolver\TypeComparator\ScalarTypeComparator
*/
private $scalarTypeComparator;
/**
* @readonly
* @var \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory
*/
private $typeFactory;
/**
* @readonly
* @var \Rector\Core\Reflection\ReflectionResolver
*/
private $reflectionResolver;

View File

@ -7,10 +7,12 @@ use PHPStan\Type\Type;
final class OldToNewType
{
/**
* @readonly
* @var \PHPStan\Type\Type
*/
private $oldType;
/**
* @readonly
* @var \PHPStan\Type\Type
*/
private $newType;

View File

@ -18,12 +18,13 @@ final class PHPStanStaticTypeMapper
{
/**
* @var TypeMapperInterface[]
* @readonly
*/
private $typeMappers;
/**
* @param TypeMapperInterface[] $typeMappers
*/
public function __construct(array $typeMappers)
public function __construct(iterable $typeMappers)
{
$this->typeMappers = $typeMappers;
}

View File

@ -21,10 +21,12 @@ use Rector\NodeTypeResolver\NodeTypeCorrector\GenericClassStringTypeCorrector;
final class UnionTypeCommonTypeNarrower
{
/**
* @readonly
* @var \Rector\NodeTypeResolver\NodeTypeCorrector\GenericClassStringTypeCorrector
*/
private $genericClassStringTypeCorrector;
/**
* @readonly
* @var \PHPStan\Reflection\ReflectionProvider
*/
private $reflectionProvider;

Some files were not shown because too many files have changed in this diff Show More