[DX] Move PhpVersionProvider from AbstractRector to particular services (#2189)

This commit is contained in:
Tomas Votruba 2022-04-28 22:02:52 +02:00 committed by GitHub
parent 680e8a1e3d
commit a218dda059
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 54 additions and 23 deletions

View File

@ -11,7 +11,7 @@ Head to [`rectorphp/rector`](http://github.com/rectorphp/rector) for documentati
## Building `rectorphp/rector`
Code of this repository requires PHP 8. For `rector/rector` package user the build downgrades code to PHP 7.2 and higher.
Code of this repository requires PHP 8. For `rector/rector` package the build downgrades code to PHP 7.2+.
## How to Contribute

View File

@ -12,6 +12,7 @@ use PhpParser\Node\Stmt\Return_;
use PHPStan\Analyser\Scope;
use PHPStan\Reflection\ClassReflection;
use Rector\Core\Enum\ObjectReference;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\MethodName;
use Rector\Core\ValueObject\PhpVersionFeature;
@ -29,7 +30,8 @@ use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
final class MakeInheritedMethodVisibilitySameAsParentRector extends AbstractRector
{
public function __construct(
private readonly VisibilityManipulator $visibilityManipulator
private readonly VisibilityManipulator $visibilityManipulator,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -13,6 +13,7 @@ use PhpParser\Node\Expr\ConstFetch;
use PhpParser\Node\Scalar\LNumber;
use PhpParser\Node\Stmt\If_;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\Util\PhpVersionFactory;
use Rector\Core\ValueObject\PhpVersion;
@ -28,7 +29,8 @@ final class RemovePhpVersionIdCheckRector extends AbstractRector implements Conf
private string | int | null $phpVersionConstraint = null;
public function __construct(
private readonly PhpVersionFactory $phpVersionFactory
private readonly PhpVersionFactory $phpVersionFactory,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -8,6 +8,7 @@ use PhpParser\Node;
use PhpParser\Node\Expr\BinaryOp\BooleanOr;
use PhpParser\Node\Name;
use PHPStan\Reflection\ReflectionProvider;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\Php71\IsArrayAndDualCheckToAble;
@ -22,7 +23,8 @@ final class IsIterableRector extends AbstractRector implements MinPhpVersionInte
{
public function __construct(
private readonly IsArrayAndDualCheckToAble $isArrayAndDualCheckToAble,
private readonly ReflectionProvider $reflectionProvider
private readonly ReflectionProvider $reflectionProvider,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -24,6 +24,7 @@ use PHPStan\Type\NullType;
use PHPStan\Type\Type;
use PHPStan\Type\UnionType;
use Rector\Core\NodeAnalyzer\VariableAnalyzer;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\NodeTypeResolver\Node\AttributeKey;
@ -43,7 +44,8 @@ final class CountOnNullRector extends AbstractRector implements MinPhpVersionInt
public function __construct(
private readonly CountableTypeAnalyzer $countableTypeAnalyzer,
private readonly CountableAnalyzer $countableAnalyzer,
private readonly VariableAnalyzer $variableAnalyzer
private readonly VariableAnalyzer $variableAnalyzer,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -15,6 +15,7 @@ use PhpParser\Node\Expr\Variable;
use PHPStan\Type\ArrayType;
use PHPStan\Type\IntegerType;
use PHPStan\Type\StringType;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\NodeTypeResolver\TypeAnalyzer\ArrayTypeAnalyzer;
@ -31,7 +32,8 @@ use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
final class ArraySpreadInsteadOfArrayMergeRector extends AbstractRector implements MinPhpVersionInterface
{
public function __construct(
private readonly ArrayTypeAnalyzer $arrayTypeAnalyzer
private readonly ArrayTypeAnalyzer $arrayTypeAnalyzer,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -20,6 +20,7 @@ use Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\Php80\NodeFactory\AttrGroupsFactory;
@ -55,7 +56,8 @@ final class AnnotationToAttributeRector extends AbstractRector implements Config
private readonly PhpDocNodeFinder $phpDocNodeFinder,
private readonly UnwrapableAnnotationAnalyzer $unwrapableAnnotationAnalyzer,
private readonly RemovableAnnotationAnalyzer $removableAnnotationAnalyzer,
private readonly AttributeGroupNamedArgumentManipulator $attributeGroupNamedArgumentManipulator
private readonly AttributeGroupNamedArgumentManipulator $attributeGroupNamedArgumentManipulator,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -14,6 +14,7 @@ use PhpParser\Node\Stmt\Trait_;
use PHPStan\Type\MixedType;
use PHPStan\Type\StringType;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\NodeTypeResolver\TypeComparator\TypeComparator;
@ -34,7 +35,8 @@ final class AddParamTypeDeclarationRector extends AbstractRector implements Conf
private array $addParamTypeDeclarations = [];
public function __construct(
private readonly TypeComparator $typeComparator
private readonly TypeComparator $typeComparator,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -10,6 +10,7 @@ use PHPStan\Type\ArrayType;
use PHPStan\Type\MixedType;
use PHPStan\Type\Type;
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\NodeTypeResolver\TypeComparator\TypeComparator;
@ -30,7 +31,8 @@ final class AddReturnTypeDeclarationRector extends AbstractRector implements Con
private array $methodReturnTypes = [];
public function __construct(
private readonly TypeComparator $typeComparator
private readonly TypeComparator $typeComparator,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -11,6 +11,7 @@ use PhpParser\Node\Stmt\Function_;
use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocNode;
use PHPStan\Type\Type;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\NodeTypeResolver\TypeComparator\TypeComparator;
@ -30,7 +31,8 @@ final class ParamAnnotationIncorrectNullableRector extends AbstractRector
private readonly TypeComparator $typeComparator,
private readonly PhpDocNullableTypeHelper $phpDocNullableTypeHelper,
private readonly PhpDocNestedAnnotationGuard $phpDocNestedAnnotationGuard,
private readonly ParamPhpDocNodeFactory $paramPhpDocNodeFactory
private readonly ParamPhpDocNodeFactory $paramPhpDocNodeFactory,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -10,6 +10,7 @@ use PhpParser\Node\Stmt\Function_;
use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode;
use PHPStan\Type\Type;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\TypeDeclaration\Guard\PhpDocNestedAnnotationGuard;
@ -27,7 +28,8 @@ final class ReturnAnnotationIncorrectNullableRector extends AbstractRector
private readonly PhpDocTypeChanger $phpDocTypeChanger,
private readonly PhpDocNullableTypeHelper $phpDocNullableTypeHelper,
private readonly ClassMethodReturnTypeOverrideGuard $classMethodReturnTypeOverrideGuard,
private readonly PhpDocNestedAnnotationGuard $phpDocNestedAnnotationGuard
private readonly PhpDocNestedAnnotationGuard $phpDocNestedAnnotationGuard,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -16,6 +16,7 @@ use PhpParser\Node\Stmt\Return_;
use PhpParser\Node\Stmt\Throw_;
use PHPStan\Type\NeverType;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\NodeNestingScope\ValueObject\ControlStructure;
@ -32,7 +33,8 @@ final class ReturnNeverTypeRector extends AbstractRector
{
public function __construct(
private readonly ParentClassMethodTypeOverrideGuard $parentClassMethodTypeOverrideGuard,
private readonly PhpDocTypeChanger $phpDocTypeChanger
private readonly PhpDocTypeChanger $phpDocTypeChanger,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -20,6 +20,7 @@ use PHPStan\Type\NullType;
use PHPStan\Type\ObjectType;
use PHPStan\Type\UnionType;
use PHPStan\Type\VoidType;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\PHPStanStaticTypeMapper\Enum\TypeKind;
@ -37,7 +38,8 @@ final class ReturnTypeFromStrictTypedCallRector extends AbstractRector
public function __construct(
private readonly TypeNodeUnwrapper $typeNodeUnwrapper,
private readonly ReturnStrictTypeAnalyzer $returnStrictTypeAnalyzer,
private readonly ReturnTypeInferer $returnTypeInferer
private readonly ReturnTypeInferer $returnTypeInferer,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -16,6 +16,7 @@ use PhpParser\Node\UnionType as PhpParserUnionType;
use PHPStan\Type\MixedType;
use PHPStan\Type\Type;
use PHPStan\Type\UnionType;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\NodeTypeResolver\Node\AttributeKey;
@ -46,7 +47,8 @@ final class ReturnTypeDeclarationRector extends AbstractRector implements MinPhp
private readonly ClassMethodReturnTypeOverrideGuard $classMethodReturnTypeOverrideGuard,
private readonly VendorLockResolver $vendorLockResolver,
private readonly PhpParserTypeAnalyzer $phpParserTypeAnalyzer,
private readonly ObjectTypeComparator $objectTypeComparator
private readonly ObjectTypeComparator $objectTypeComparator,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -12,6 +12,7 @@ use PHPStan\Type\NullType;
use PHPStan\Type\Type;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\PHPStanStaticTypeMapper\Enum\TypeKind;
@ -29,6 +30,7 @@ final class PropertyTypeDeclarationRector extends AbstractRector
private readonly VarDocPropertyTypeInferer $varDocPropertyTypeInferer,
private readonly PhpDocTypeChanger $phpDocTypeChanger,
private readonly PropertyTypeOverrideGuard $propertyTypeOverrideGuard,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -13,6 +13,7 @@ use PHPStan\Type\TypeCombinator;
use PHPStan\Type\UnionType;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Core\Contract\Rector\AllowEmptyConfigurableRectorInterface;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\DeadCode\PhpDoc\TagRemover\VarTagRemover;
@ -48,7 +49,8 @@ final class TypedPropertyFromAssignsRector extends AbstractRector implements All
private readonly PropertyTypeDecorator $propertyTypeDecorator,
private readonly PhpDocTypeChanger $phpDocTypeChanger,
private readonly VarTagRemover $varTagRemover,
private readonly MakePropertyTypedGuard $makePropertyTypedGuard
private readonly MakePropertyTypedGuard $makePropertyTypedGuard,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -10,6 +10,7 @@ use PhpParser\Node\Stmt\Property;
use PHPStan\Type\MixedType;
use PHPStan\Type\Type;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\DeadCode\PhpDoc\TagRemover\VarTagRemover;
@ -28,7 +29,8 @@ final class TypedPropertyFromStrictConstructorRector extends AbstractRector
private readonly ConstructorPropertyTypeInferer $constructorPropertyTypeInferer,
private readonly VarTagRemover $varTagRemover,
private readonly PhpDocTypeChanger $phpDocTypeChanger,
private readonly ConstructorAssignDetector $constructorAssignDetector
private readonly ConstructorAssignDetector $constructorAssignDetector,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -11,6 +11,7 @@ use PHPStan\Type\MixedType;
use PHPStan\Type\Type;
use PHPStan\Type\TypeCombinator;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\DeadCode\PhpDoc\TagRemover\VarTagRemover;
@ -29,7 +30,8 @@ final class TypedPropertyFromStrictGetterMethodReturnTypeRector extends Abstract
private readonly GetterTypeDeclarationPropertyTypeInferer $getterTypeDeclarationPropertyTypeInferer,
private readonly PhpDocTypeChanger $phpDocTypeChanger,
private readonly VarTagRemover $varTagRemover,
private readonly ParentPropertyLookupGuard $parentPropertyLookupGuard
private readonly ParentPropertyLookupGuard $parentPropertyLookupGuard,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -11,6 +11,7 @@ use PHPStan\Type\MixedType;
use PHPStan\Type\Type;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\ValueObject\PhpVersionFeature;
use Rector\TypeDeclaration\Guard\PhpDocNestedAnnotationGuard;
@ -26,7 +27,8 @@ final class VarAnnotationIncorrectNullableRector extends AbstractRector
public function __construct(
private readonly PhpDocTypeChanger $phpDocTypeChanger,
private readonly PhpDocNullableTypeHelper $phpDocNullableTypeHelper,
private readonly PhpDocNestedAnnotationGuard $phpDocNestedAnnotationGuard
private readonly PhpDocNestedAnnotationGuard $phpDocNestedAnnotationGuard,
private readonly PhpVersionProvider $phpVersionProvider,
) {
}

View File

@ -22,7 +22,6 @@ use Rector\Core\Exception\ShouldNotHappenException;
use Rector\Core\Exclusion\ExclusionManager;
use Rector\Core\Logging\CurrentRectorProvider;
use Rector\Core\NodeDecorator\CreatedByRuleDecorator;
use Rector\Core\Php\PhpVersionProvider;
use Rector\Core\PhpParser\Comparing\NodeComparator;
use Rector\Core\PhpParser\Node\BetterNodeFinder;
use Rector\Core\PhpParser\Node\NodeFactory;
@ -73,8 +72,6 @@ CODE_SAMPLE;
protected NodeTypeResolver $nodeTypeResolver;
protected PhpVersionProvider $phpVersionProvider;
protected StaticTypeMapper $staticTypeMapper;
protected PhpDocInfoFactory $phpDocInfoFactory;
@ -126,7 +123,6 @@ CODE_SAMPLE;
SimpleCallableNodeTraverser $simpleCallableNodeTraverser,
NodeFactory $nodeFactory,
PhpDocInfoFactory $phpDocInfoFactory,
PhpVersionProvider $phpVersionProvider,
ExclusionManager $exclusionManager,
StaticTypeMapper $staticTypeMapper,
CurrentRectorProvider $currentRectorProvider,
@ -147,7 +143,6 @@ CODE_SAMPLE;
$this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser;
$this->nodeFactory = $nodeFactory;
$this->phpDocInfoFactory = $phpDocInfoFactory;
$this->phpVersionProvider = $phpVersionProvider;
$this->exclusionManager = $exclusionManager;
$this->staticTypeMapper = $staticTypeMapper;
$this->currentRectorProvider = $currentRectorProvider;