mirror of
https://github.com/rectorphp/rector.git
synced 2024-05-28 23:10:51 +00:00
Updated Rector to commit c3b6efea7e
c3b6efea7e
Move from CLASS_NODE attribute to more reliable parent node finder (#1162)
This commit is contained in:
parent
9ef85318a2
commit
a42ac7439f
|
@ -43,7 +43,7 @@ foreach ($fileInfos as $fileInfo) {
|
|||
### 2.1 Prepare Phase
|
||||
|
||||
- Files are parsed by [`nikic/php-parser`](https://github.com/nikic/PHP-Parser), 4.0 that supports writing modified tree back to a file
|
||||
- Then nodes (array of objects by parser) are traversed by `StandaloneTraverseNodeTraverser` to prepare their metadata, e.g. the class name, the method node the node is in, the namespace name etc. added by `$node->setAttribute(Attribute::CLASS_NODE, 'value')`.
|
||||
- Then nodes (array of objects by parser) are traversed by `StandaloneTraverseNodeTraverser` to prepare their metadata, e.g. the class name, the method node the node is in, the namespace name etc. added by `$node->setAttribute('key', 'value')`.
|
||||
|
||||
### 2.2 Rectify Phase
|
||||
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
declare (strict_types=1);
|
||||
namespace Rector\NodeTypeResolver\Node;
|
||||
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Symplify\SmartFileSystem\SmartFileInfo;
|
||||
/**
|
||||
* @enum
|
||||
|
@ -23,10 +25,17 @@ final class AttributeKey
|
|||
*/
|
||||
public const USE_NODES = 'useNodes';
|
||||
/**
|
||||
* @deprecated Use
|
||||
* @see BetterNodeFinder and
|
||||
* @see NodeNameResolver to find your parent nodes.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public const CLASS_NAME = 'className';
|
||||
/**
|
||||
* @deprecated Use
|
||||
* @see BetterNodeFinder to find your parent nodes.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public const CLASS_NODE = 'class_node';
|
||||
|
|
|
@ -38,6 +38,7 @@ use PHPStan\Type\TypeWithClassName;
|
|||
use PHPStan\Type\UnionType;
|
||||
use Rector\Core\Configuration\RenamedClassesDataCollector;
|
||||
use Rector\Core\NodeAnalyzer\ClassAnalyzer;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\NodeTypeCorrector\AccessoryNonEmptyStringTypeCorrector;
|
||||
|
@ -90,10 +91,14 @@ final class NodeTypeResolver
|
|||
* @var \Rector\Core\Configuration\RenamedClassesDataCollector
|
||||
*/
|
||||
private $renamedClassesDataCollector;
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
/**
|
||||
* @param NodeTypeResolverInterface[] $nodeTypeResolvers
|
||||
*/
|
||||
public function __construct(\Rector\TypeDeclaration\PHPStan\Type\ObjectTypeSpecifier $objectTypeSpecifier, \Rector\Core\NodeAnalyzer\ClassAnalyzer $classAnalyzer, \Rector\NodeTypeResolver\NodeTypeCorrector\GenericClassStringTypeCorrector $genericClassStringTypeCorrector, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\NodeTypeResolver\NodeTypeCorrector\HasOffsetTypeCorrector $hasOffsetTypeCorrector, \Rector\NodeTypeResolver\NodeTypeCorrector\AccessoryNonEmptyStringTypeCorrector $accessoryNonEmptyStringTypeCorrector, \Rector\NodeTypeResolver\NodeTypeResolver\IdentifierTypeResolver $identifierTypeResolver, \Rector\Core\Configuration\RenamedClassesDataCollector $renamedClassesDataCollector, array $nodeTypeResolvers)
|
||||
public function __construct(\Rector\TypeDeclaration\PHPStan\Type\ObjectTypeSpecifier $objectTypeSpecifier, \Rector\Core\NodeAnalyzer\ClassAnalyzer $classAnalyzer, \Rector\NodeTypeResolver\NodeTypeCorrector\GenericClassStringTypeCorrector $genericClassStringTypeCorrector, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\NodeTypeResolver\NodeTypeCorrector\HasOffsetTypeCorrector $hasOffsetTypeCorrector, \Rector\NodeTypeResolver\NodeTypeCorrector\AccessoryNonEmptyStringTypeCorrector $accessoryNonEmptyStringTypeCorrector, \Rector\NodeTypeResolver\NodeTypeResolver\IdentifierTypeResolver $identifierTypeResolver, \Rector\Core\Configuration\RenamedClassesDataCollector $renamedClassesDataCollector, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder, array $nodeTypeResolvers)
|
||||
{
|
||||
$this->objectTypeSpecifier = $objectTypeSpecifier;
|
||||
$this->classAnalyzer = $classAnalyzer;
|
||||
|
@ -103,6 +108,7 @@ final class NodeTypeResolver
|
|||
$this->accessoryNonEmptyStringTypeCorrector = $accessoryNonEmptyStringTypeCorrector;
|
||||
$this->identifierTypeResolver = $identifierTypeResolver;
|
||||
$this->renamedClassesDataCollector = $renamedClassesDataCollector;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
foreach ($nodeTypeResolvers as $nodeTypeResolver) {
|
||||
$this->addNodeTypeResolver($nodeTypeResolver);
|
||||
}
|
||||
|
@ -306,11 +312,11 @@ final class NodeTypeResolver
|
|||
if ($node instanceof \PhpParser\Node\Expr\StaticCall) {
|
||||
return $this->isObjectType($node->class, $objectType);
|
||||
}
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
return $this->isObjectType($classLike, $objectType);
|
||||
return $this->isObjectType($class, $objectType);
|
||||
}
|
||||
private function isUnionTypeable(\PHPStan\Type\Type $first, \PHPStan\Type\Type $second) : bool
|
||||
{
|
||||
|
|
|
@ -10,8 +10,8 @@ use PhpParser\Node\Stmt\ClassLike;
|
|||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\Type\ObjectWithoutClassType;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
use RectorPrefix20211106\Symfony\Contracts\Service\Attribute\Required;
|
||||
final class ClassMethodOrClassConstTypeResolver implements \Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface
|
||||
|
@ -20,6 +20,14 @@ final class ClassMethodOrClassConstTypeResolver implements \Rector\NodeTypeResol
|
|||
* @var \Rector\NodeTypeResolver\NodeTypeResolver
|
||||
*/
|
||||
private $nodeTypeResolver;
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @required
|
||||
*/
|
||||
|
@ -39,7 +47,7 @@ final class ClassMethodOrClassConstTypeResolver implements \Rector\NodeTypeResol
|
|||
*/
|
||||
public function resolve($node) : \PHPStan\Type\Type
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
// anonymous class
|
||||
return new \PHPStan\Type\ObjectWithoutClassType();
|
||||
|
|
|
@ -11,6 +11,7 @@ use PHPStan\Reflection\ReflectionProvider;
|
|||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Contract\NodeTypeResolverInterface;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
|
@ -33,10 +34,15 @@ final class PropertyFetchTypeResolver implements \Rector\NodeTypeResolver\Contra
|
|||
* @var \PHPStan\Reflection\ReflectionProvider
|
||||
*/
|
||||
private $reflectionProvider;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \PHPStan\Reflection\ReflectionProvider $reflectionProvider)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->reflectionProvider = $reflectionProvider;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @required
|
||||
|
@ -62,13 +68,12 @@ final class PropertyFetchTypeResolver implements \Rector\NodeTypeResolver\Contra
|
|||
if (!$vendorPropertyType instanceof \PHPStan\Type\MixedType) {
|
||||
return $vendorPropertyType;
|
||||
}
|
||||
/** @var Scope|null $scope */
|
||||
$scope = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::SCOPE);
|
||||
if (!$scope instanceof \PHPStan\Analyser\Scope) {
|
||||
$classNode = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
// fallback to class, since property fetches are not scoped by PHPStan
|
||||
if ($classNode instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
$scope = $classNode->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::SCOPE);
|
||||
if ($classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
$scope = $classLike->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::SCOPE);
|
||||
}
|
||||
if (!$scope instanceof \PHPStan\Analyser\Scope) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
|
|
|
@ -64,7 +64,6 @@ final class FunctionMethodAndClassNodeVisitor extends \PhpParser\NodeVisitorAbst
|
|||
$this->classStack[] = $this->classLike;
|
||||
$this->setClassNodeAndName($node);
|
||||
}
|
||||
$node->setAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE, $this->classLike);
|
||||
$node->setAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NAME, $this->className);
|
||||
}
|
||||
private function processMethod(\PhpParser\Node $node) : void
|
||||
|
|
|
@ -7,9 +7,8 @@ use PhpParser\Node;
|
|||
use PhpParser\Node\Expr\Array_;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\StaticPropertyFetch;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\Interface_;
|
||||
use PhpParser\Node\Stmt\Trait_;
|
||||
use PHPStan\Type\Accessory\HasOffsetType;
|
||||
use PHPStan\Type\Accessory\NonEmptyArrayType;
|
||||
use PHPStan\Type\ArrayType;
|
||||
|
@ -18,8 +17,8 @@ use PHPStan\Type\MixedType;
|
|||
use PHPStan\Type\ThisType;
|
||||
use PHPStan\Type\Type;
|
||||
use PHPStan\Type\TypeWithClassName;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\NodeTypeCorrector\PregMatchTypeCorrector;
|
||||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
final class ArrayTypeAnalyzer
|
||||
|
@ -36,11 +35,16 @@ final class ArrayTypeAnalyzer
|
|||
* @var \Rector\NodeTypeResolver\NodeTypeCorrector\PregMatchTypeCorrector
|
||||
*/
|
||||
private $pregMatchTypeCorrector;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver, \Rector\NodeTypeResolver\NodeTypeCorrector\PregMatchTypeCorrector $pregMatchTypeCorrector)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver, \Rector\NodeTypeResolver\NodeTypeCorrector\PregMatchTypeCorrector $pregMatchTypeCorrector, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->nodeTypeResolver = $nodeTypeResolver;
|
||||
$this->pregMatchTypeCorrector = $pregMatchTypeCorrector;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
public function isArrayType(\PhpParser\Node $node) : bool
|
||||
{
|
||||
|
@ -90,12 +94,11 @@ final class ArrayTypeAnalyzer
|
|||
if (!$node instanceof \PhpParser\Node\Expr\PropertyFetch && !$node instanceof \PhpParser\Node\Expr\StaticPropertyFetch) {
|
||||
return \false;
|
||||
}
|
||||
/** @var Class_|Trait_|Interface_|null $classLike */
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if ($classLike instanceof \PhpParser\Node\Stmt\Interface_) {
|
||||
return \false;
|
||||
}
|
||||
if ($classLike === null) {
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return \false;
|
||||
}
|
||||
$propertyName = $this->nodeNameResolver->getName($node->name);
|
||||
|
|
|
@ -7,9 +7,9 @@ use PhpParser\Node;
|
|||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Expr\StaticPropertyFetch;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\Core\PhpParser\NodeFinder\PropertyFetchFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\ReadWrite\Contract\ReadNodeAnalyzerInterface;
|
||||
final class LocalPropertyFetchReadNodeAnalyzer implements \Rector\ReadWrite\Contract\ReadNodeAnalyzerInterface
|
||||
{
|
||||
|
@ -25,11 +25,16 @@ final class LocalPropertyFetchReadNodeAnalyzer implements \Rector\ReadWrite\Cont
|
|||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\ReadWrite\ReadNodeAnalyzer\JustReadExprAnalyzer $justReadExprAnalyzer, \Rector\Core\PhpParser\NodeFinder\PropertyFetchFinder $propertyFetchFinder, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\ReadWrite\ReadNodeAnalyzer\JustReadExprAnalyzer $justReadExprAnalyzer, \Rector\Core\PhpParser\NodeFinder\PropertyFetchFinder $propertyFetchFinder, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->justReadExprAnalyzer = $justReadExprAnalyzer;
|
||||
$this->propertyFetchFinder = $propertyFetchFinder;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node $node
|
||||
|
@ -43,7 +48,7 @@ final class LocalPropertyFetchReadNodeAnalyzer implements \Rector\ReadWrite\Cont
|
|||
*/
|
||||
public function isRead($node) : bool
|
||||
{
|
||||
$class = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
// assume worse to keep node protected
|
||||
return \true;
|
||||
|
|
|
@ -13,6 +13,7 @@ use PHPStan\Type\Generic\TemplateTypeMap;
|
|||
use PHPStan\Type\Type;
|
||||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\StaticTypeMapper\StaticTypeMapper;
|
||||
use RectorPrefix20211106\Symfony\Contracts\Service\Attribute\Required;
|
||||
|
@ -29,14 +30,19 @@ final class NameScopeFactory
|
|||
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
|
||||
*/
|
||||
private $phpDocInfoFactory;
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
// This is needed to avoid circular references
|
||||
/**
|
||||
* @required
|
||||
*/
|
||||
public function autowireNameScopeFactory(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\StaticTypeMapper\StaticTypeMapper $staticTypeMapper) : void
|
||||
public function autowireNameScopeFactory(\Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\StaticTypeMapper\StaticTypeMapper $staticTypeMapper, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder) : void
|
||||
{
|
||||
$this->phpDocInfoFactory = $phpDocInfoFactory;
|
||||
$this->staticTypeMapper = $staticTypeMapper;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
public function createNameScopeFromNodeWithoutTemplateTypes(\PhpParser\Node $node) : \PHPStan\Analyser\NameScope
|
||||
{
|
||||
|
@ -83,10 +89,10 @@ final class NameScopeFactory
|
|||
private function templateTemplateTypeMap(\PhpParser\Node $node) : \PHPStan\Type\Generic\TemplateTypeMap
|
||||
{
|
||||
$nodeTemplateTypes = $this->resolveTemplateTypesFromNode($node);
|
||||
$class = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
$classTemplateTypes = [];
|
||||
if ($class instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
$classTemplateTypes = $this->resolveTemplateTypesFromNode($class);
|
||||
if ($classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
$classTemplateTypes = $this->resolveTemplateTypesFromNode($classLike);
|
||||
}
|
||||
$templateTypes = \array_merge($nodeTemplateTypes, $classTemplateTypes);
|
||||
return new \PHPStan\Type\Generic\TemplateTypeMap($templateTypes);
|
||||
|
|
|
@ -22,7 +22,6 @@ use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
|||
use Rector\Core\Enum\ObjectReference;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PHPStanStaticTypeMapper\Enum\TypeKind;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -133,10 +132,7 @@ CODE_SAMPLE
|
|||
if ($node instanceof \PhpParser\Node\Expr\StaticCall) {
|
||||
return $this->isObjectType($node->class, $objectType);
|
||||
}
|
||||
// ClassMethod
|
||||
/** @var Class_|null $classLike */
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
// anonymous class
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ use PHPStan\Type\NullType;
|
|||
use PHPStan\Type\Type;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\PHPStan\Type\StaticTypeAnalyzer;
|
||||
use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
|
@ -155,7 +154,7 @@ CODE_SAMPLE
|
|||
}
|
||||
private function resolvePropertyFetchType(\PhpParser\Node\Expr\PropertyFetch $propertyFetch) : \PHPStan\Type\Type
|
||||
{
|
||||
$classLike = $propertyFetch->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($propertyFetch, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ use PhpParser\Node\Name;
|
|||
use PhpParser\Node\Stmt\Class_;
|
||||
use Rector\Core\Enum\ObjectReference;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
|
@ -53,7 +52,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$class = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -128,7 +128,8 @@ CODE_SAMPLE
|
|||
if ($methodName !== \Rector\Core\ValueObject\MethodName::CONSTRUCT) {
|
||||
return \false;
|
||||
}
|
||||
$classLike = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\Class_::class);
|
||||
$classLike = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ final class IsClassMethodUsedAnalyzer
|
|||
}
|
||||
public function isClassMethodUsed(\PhpParser\Node\Stmt\ClassMethod $classMethod) : bool
|
||||
{
|
||||
$class = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \true;
|
||||
}
|
||||
|
|
|
@ -7,8 +7,8 @@ use PhpParser\Node\Stmt\Class_;
|
|||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode;
|
||||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
final class ControllerClassMethodManipulator
|
||||
{
|
||||
/**
|
||||
|
@ -19,10 +19,15 @@ final class ControllerClassMethodManipulator
|
|||
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
|
||||
*/
|
||||
private $phpDocInfoFactory;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->phpDocInfoFactory = $phpDocInfoFactory;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
public function isControllerClassMethodWithBehaviorAnnotation(\PhpParser\Node\Stmt\ClassMethod $classMethod) : bool
|
||||
{
|
||||
|
@ -37,11 +42,11 @@ final class ControllerClassMethodManipulator
|
|||
if (!$classMethod->isPublic()) {
|
||||
return \false;
|
||||
}
|
||||
$classLike = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
return $this->hasParentClassController($classLike);
|
||||
return $this->hasParentClassController($class);
|
||||
}
|
||||
private function hasParentClassController(\PhpParser\Node\Stmt\Class_ $class) : bool
|
||||
{
|
||||
|
|
|
@ -4,6 +4,7 @@ declare (strict_types=1);
|
|||
namespace Rector\DeadCode\PhpDoc;
|
||||
|
||||
use PhpParser\Node\FunctionLike;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\Trait_;
|
||||
use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode;
|
||||
use PHPStan\PhpDocParser\Ast\Type\GenericTypeNode;
|
||||
|
@ -11,7 +12,7 @@ use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode;
|
|||
use PHPStan\PhpDocParser\Ast\Type\ThisTypeNode;
|
||||
use Rector\BetterPhpDocParser\ValueObject\Type\BracketsAwareUnionTypeNode;
|
||||
use Rector\BetterPhpDocParser\ValueObject\Type\SpacingAwareCallableTypeNode;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeTypeResolver\TypeComparator\TypeComparator;
|
||||
final class DeadReturnTagValueNodeAnalyzer
|
||||
{
|
||||
|
@ -19,9 +20,14 @@ final class DeadReturnTagValueNodeAnalyzer
|
|||
* @var \Rector\NodeTypeResolver\TypeComparator\TypeComparator
|
||||
*/
|
||||
private $typeComparator;
|
||||
public function __construct(\Rector\NodeTypeResolver\TypeComparator\TypeComparator $typeComparator)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeTypeResolver\TypeComparator\TypeComparator $typeComparator, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->typeComparator = $typeComparator;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
public function isDead(\PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode $returnTagValueNode, \PhpParser\Node\FunctionLike $functionLike) : bool
|
||||
{
|
||||
|
@ -29,7 +35,7 @@ final class DeadReturnTagValueNodeAnalyzer
|
|||
if ($returnType === null) {
|
||||
return \false;
|
||||
}
|
||||
$classLike = $functionLike->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($functionLike, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if ($classLike instanceof \PhpParser\Node\Stmt\Trait_ && $returnTagValueNode->type instanceof \PHPStan\PhpDocParser\Ast\Type\ThisTypeNode) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ use PhpParser\Node\Stmt\ClassMethod;
|
|||
use Rector\Core\NodeManipulator\ClassMethodManipulator;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
|
@ -55,7 +54,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ use PhpParser\Node\Stmt\ClassMethod;
|
|||
use PhpParser\Node\Stmt\Return_;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\DeadCode\Comparator\CurrentAndParentClassMethodComparator;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\Php80\NodeAnalyzer\PhpAttributeAnalyzer;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -73,7 +72,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if ($this->shouldSkipClass($classLike)) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ use Rector\Core\NodeManipulator\ClassMethodManipulator;
|
|||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\DeadCode\NodeManipulator\ControllerClassMethodManipulator;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
|
@ -61,7 +60,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
@ -111,7 +110,7 @@ CODE_SAMPLE
|
|||
return \true;
|
||||
}
|
||||
if ($this->nodeNameResolver->isName($classMethod, \Rector\Core\ValueObject\MethodName::CONSTRUCT)) {
|
||||
$class = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\Class_::class);
|
||||
return $class instanceof \PhpParser\Node\Stmt\Class_ && $class->extends instanceof \PhpParser\Node\Name\FullyQualified;
|
||||
}
|
||||
return $this->nodeNameResolver->isName($classMethod, \Rector\Core\ValueObject\MethodName::INVOKE);
|
||||
|
|
|
@ -4,12 +4,11 @@ declare (strict_types=1);
|
|||
namespace Rector\DeadCode\Rector\ClassMethod;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Interface_;
|
||||
use Rector\Core\NodeAnalyzer\ParamAnalyzer;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
|
@ -72,8 +71,8 @@ CODE_SAMPLE
|
|||
if ($this->paramAnalyzer->hasPropertyPromotion($node->params)) {
|
||||
return null;
|
||||
}
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if ($classLike instanceof \PhpParser\Node\Stmt\Interface_) {
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
if ($node->isAbstract()) {
|
||||
|
|
|
@ -115,7 +115,7 @@ CODE_SAMPLE
|
|||
}
|
||||
private function hasDynamicMethodCallOnFetchThis(\PhpParser\Node\Stmt\ClassMethod $classMethod) : bool
|
||||
{
|
||||
$class = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ use Rector\Core\PhpParser\NodeFinder\PropertyFetchFinder;
|
|||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\Core\ValueObject\PhpVersionFeature;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\VersionBonding\Contract\MinPhpVersionInterface;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -83,7 +82,7 @@ CODE_SAMPLE
|
|||
if (!$this->isName($node, \Rector\Core\ValueObject\MethodName::CONSTRUCT)) {
|
||||
return null;
|
||||
}
|
||||
$class = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -167,7 +167,7 @@ CODE_SAMPLE
|
|||
}
|
||||
/** @var PropertyFetch|StaticPropertyFetch $propertyFetch */
|
||||
$propertyFetch = $expr;
|
||||
$classLike = $propertyFetch->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($propertyFetch, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \true;
|
||||
}
|
||||
|
@ -189,7 +189,7 @@ CODE_SAMPLE
|
|||
if (!$expr instanceof \PhpParser\Node\Expr\PropertyFetch) {
|
||||
return \false;
|
||||
}
|
||||
$classLike = $expr->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($expr, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ use PHPStan\Type\ObjectType;
|
|||
use Rector\Core\NodeManipulator\IfManipulator;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\DeadCode\FeatureSupport\FunctionSupportResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
|
@ -101,7 +100,7 @@ CODE_SAMPLE
|
|||
}
|
||||
private function shouldSkip(\PhpParser\Node\Stmt\If_ $if) : bool
|
||||
{
|
||||
$classLike = $if->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($if, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ use PhpParser\Node\Expr\Assign;
|
|||
use PhpParser\Node\Expr\ConstFetch;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Expression;
|
||||
use PhpParser\Node\Stmt\If_;
|
||||
|
@ -88,7 +89,7 @@ CODE_SAMPLE
|
|||
return null;
|
||||
}
|
||||
$classLike = $this->reflectionAstResolver->resolveClassFromObjectType($type);
|
||||
if ($classLike === null) {
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return null;
|
||||
}
|
||||
if ($this->shouldSkipClassMethod($classLike, $node, $type)) {
|
||||
|
@ -145,7 +146,7 @@ CODE_SAMPLE
|
|||
if ((array) $classMethod->stmts !== []) {
|
||||
return \true;
|
||||
}
|
||||
$class = $methodCall->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($methodCall, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -74,7 +74,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -11,8 +11,8 @@ use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
|
|||
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover;
|
||||
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PostRector\Collector\PropertyToAddCollector;
|
||||
use Rector\PostRector\ValueObject\PropertyMetadata;
|
||||
final class PropertyConstructorInjectionManipulator
|
||||
|
@ -37,13 +37,18 @@ final class PropertyConstructorInjectionManipulator
|
|||
* @var \Rector\PostRector\Collector\PropertyToAddCollector
|
||||
*/
|
||||
private $propertyToAddCollector;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger $phpDocTypeChanger, \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover $phpDocTagRemover, \Rector\PostRector\Collector\PropertyToAddCollector $propertyToAddCollector)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger $phpDocTypeChanger, \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTagRemover $phpDocTagRemover, \Rector\PostRector\Collector\PropertyToAddCollector $propertyToAddCollector, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->phpDocInfoFactory = $phpDocInfoFactory;
|
||||
$this->phpDocTypeChanger = $phpDocTypeChanger;
|
||||
$this->phpDocTagRemover = $phpDocTagRemover;
|
||||
$this->propertyToAddCollector = $propertyToAddCollector;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
public function refactor(\PhpParser\Node\Stmt\Property $property, \PHPStan\Type\Type $type, \Rector\BetterPhpDocParser\PhpDoc\DoctrineAnnotationTagValueNode $doctrineAnnotationTagValueNode) : void
|
||||
{
|
||||
|
@ -51,11 +56,11 @@ final class PropertyConstructorInjectionManipulator
|
|||
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($property);
|
||||
$this->phpDocTypeChanger->changeVarType($phpDocInfo, $type);
|
||||
$this->phpDocTagRemover->removeTagValueFromNode($phpDocInfo, $doctrineAnnotationTagValueNode);
|
||||
$classLike = $property->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($property, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$propertyMetadata = new \Rector\PostRector\ValueObject\PropertyMetadata($propertyName, $type, $property->flags);
|
||||
$this->propertyToAddCollector->addPropertyToClass($classLike, $propertyMetadata);
|
||||
$this->propertyToAddCollector->addPropertyToClass($class, $propertyMetadata);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ namespace Rector\DowngradePhp72\Rector\ClassMethod;
|
|||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Param;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PHPStan\Reflection\ClassReflection;
|
||||
use PHPStan\Reflection\ReflectionProvider;
|
||||
|
@ -14,7 +15,6 @@ use Rector\DowngradePhp72\NodeAnalyzer\BuiltInMethodAnalyzer;
|
|||
use Rector\DowngradePhp72\NodeAnalyzer\OverrideFromAnonymousClassMethodAnalyzer;
|
||||
use Rector\DowngradePhp72\NodeAnalyzer\SealedClassAnalyzer;
|
||||
use Rector\DowngradePhp72\PhpDoc\NativeParamToPhpDocDecorator;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\TypeDeclaration\NodeAnalyzer\AutowiredClassMethodOrPropertyAnalyzer;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -121,8 +121,8 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if ($classLike === null) {
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return null;
|
||||
}
|
||||
$ancestorOverridableAnonymousClass = $this->overrideFromAnonymousClassMethodAnalyzer->matchAncestorClassReflectionOverrideable($classLike, $node);
|
||||
|
|
|
@ -5,9 +5,9 @@ namespace Rector\Naming\ValueObjectFactory;
|
|||
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\Property;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\Naming\ValueObject\PropertyRename;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
/**
|
||||
* @see \Rector\Tests\Naming\ValueObjectFactory\PropertyRenameFactory\PropertyRenameFactoryTest
|
||||
*/
|
||||
|
@ -17,21 +17,26 @@ final class PropertyRenameFactory
|
|||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
public function createFromExpectedName(\PhpParser\Node\Stmt\Property $property, string $expectedName) : ?\Rector\Naming\ValueObject\PropertyRename
|
||||
{
|
||||
$currentName = $this->nodeNameResolver->getName($property);
|
||||
$propertyClassLike = $property->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$propertyClassLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
$classLike = $this->betterNodeFinder->findParentType($property, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return null;
|
||||
}
|
||||
$propertyClassLikeName = $property->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NAME);
|
||||
if ($propertyClassLikeName === null) {
|
||||
$className = $this->nodeNameResolver->getName($classLike);
|
||||
if (!\is_string($className)) {
|
||||
return null;
|
||||
}
|
||||
return new \Rector\Naming\ValueObject\PropertyRename($property, $expectedName, $currentName, $propertyClassLike, $propertyClassLikeName, $property->props[0]);
|
||||
return new \Rector\Naming\ValueObject\PropertyRename($property, $expectedName, $currentName, $classLike, $className, $property->props[0]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@ CODE_SAMPLE
|
|||
if (!$this->php4ConstructorClassMethodAnalyzer->detect($node)) {
|
||||
return null;
|
||||
}
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -111,7 +111,7 @@ CODE_SAMPLE
|
|||
}
|
||||
private function resolveClassSelf(\PhpParser\Node\Expr\MethodCall $methodCall) : \Rector\Core\Enum\ObjectReference
|
||||
{
|
||||
$classLike = $methodCall->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($methodCall, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \Rector\Core\Enum\ObjectReference::STATIC();
|
||||
}
|
||||
|
|
|
@ -141,8 +141,8 @@ CODE_SAMPLE
|
|||
return \true;
|
||||
}
|
||||
// skip node in trait, as impossible to analyse
|
||||
$classLike = $funcCall->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
return $classLike instanceof \PhpParser\Node\Stmt\Trait_;
|
||||
$trait = $this->betterNodeFinder->findParentType($funcCall, \PhpParser\Node\Stmt\Trait_::class);
|
||||
return $trait instanceof \PhpParser\Node\Stmt\Trait_;
|
||||
}
|
||||
private function castToArray(\PhpParser\Node\Expr $countedExpr, \PhpParser\Node\Expr\FuncCall $funcCall) : \PhpParser\Node\Expr\FuncCall
|
||||
{
|
||||
|
|
|
@ -102,7 +102,7 @@ CODE_SAMPLE
|
|||
if ($isJustAdded) {
|
||||
return \true;
|
||||
}
|
||||
$classLike = $funcCall->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($funcCall, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \true;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ use PhpParser\NodeTraverser;
|
|||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\Core\ValueObject\PhpVersionFeature;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\VersionBonding\Contract\MinPhpVersionInterface;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -79,7 +78,7 @@ CODE_SAMPLE
|
|||
}
|
||||
private function isPropertyInitiatedInConstuctor(\PhpParser\Node\Stmt\Property $property, string $propertyName) : bool
|
||||
{
|
||||
$classLike = $property->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($property, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -7,12 +7,13 @@ use PhpParser\Node;
|
|||
use PhpParser\Node\Name;
|
||||
use PhpParser\Node\NullableType;
|
||||
use PhpParser\Node\Stmt\Property;
|
||||
use PhpParser\Node\Stmt\Trait_;
|
||||
use PhpParser\Node\UnionType as PhpParserUnionType;
|
||||
use PHPStan\Reflection\ReflectionProvider;
|
||||
use PHPStan\Type\Generic\TemplateType;
|
||||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\NullType;
|
||||
use PHPStan\Type\Type;
|
||||
use PHPStan\Type\TypeCombinator;
|
||||
use PHPStan\Type\UnionType;
|
||||
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
||||
use Rector\Core\NodeAnalyzer\PropertyAnalyzer;
|
||||
|
@ -22,6 +23,7 @@ use Rector\Core\ValueObject\PhpVersionFeature;
|
|||
use Rector\DeadCode\PhpDoc\TagRemover\VarTagRemover;
|
||||
use Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\Php74\TypeAnalyzer\PropertyUnionTypeResolver;
|
||||
use Rector\PHPStanStaticTypeMapper\DoctrineTypeAnalyzer;
|
||||
use Rector\PHPStanStaticTypeMapper\Enum\TypeKind;
|
||||
use Rector\StaticTypeMapper\ValueObject\Type\AliasedObjectType;
|
||||
|
@ -93,7 +95,11 @@ final class TypedPropertyRector extends \Rector\Core\Rector\AbstractRector imple
|
|||
* @var \Rector\Core\NodeAnalyzer\PropertyAnalyzer
|
||||
*/
|
||||
private $propertyAnalyzer;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\PropertyTypeInferer $propertyTypeInferer, \Rector\VendorLocker\VendorLockResolver $vendorLockResolver, \Rector\PHPStanStaticTypeMapper\DoctrineTypeAnalyzer $doctrineTypeAnalyzer, \Rector\DeadCode\PhpDoc\TagRemover\VarTagRemover $varTagRemover, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer $propertyFetchAnalyzer, \Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer $familyRelationsAnalyzer, \Rector\Core\NodeAnalyzer\PropertyAnalyzer $propertyAnalyzer)
|
||||
/**
|
||||
* @var \Rector\Php74\TypeAnalyzer\PropertyUnionTypeResolver
|
||||
*/
|
||||
private $propertyUnionTypeResolver;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\PropertyTypeInferer $propertyTypeInferer, \Rector\VendorLocker\VendorLockResolver $vendorLockResolver, \Rector\PHPStanStaticTypeMapper\DoctrineTypeAnalyzer $doctrineTypeAnalyzer, \Rector\DeadCode\PhpDoc\TagRemover\VarTagRemover $varTagRemover, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer $propertyFetchAnalyzer, \Rector\FamilyTree\Reflection\FamilyRelationsAnalyzer $familyRelationsAnalyzer, \Rector\Core\NodeAnalyzer\PropertyAnalyzer $propertyAnalyzer, \Rector\Php74\TypeAnalyzer\PropertyUnionTypeResolver $propertyUnionTypeResolver)
|
||||
{
|
||||
$this->propertyTypeInferer = $propertyTypeInferer;
|
||||
$this->vendorLockResolver = $vendorLockResolver;
|
||||
|
@ -103,6 +109,7 @@ final class TypedPropertyRector extends \Rector\Core\Rector\AbstractRector imple
|
|||
$this->propertyFetchAnalyzer = $propertyFetchAnalyzer;
|
||||
$this->familyRelationsAnalyzer = $familyRelationsAnalyzer;
|
||||
$this->propertyAnalyzer = $propertyAnalyzer;
|
||||
$this->propertyUnionTypeResolver = $propertyUnionTypeResolver;
|
||||
}
|
||||
public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition
|
||||
{
|
||||
|
@ -188,7 +195,7 @@ CODE_SAMPLE
|
|||
if (!$node instanceof \PhpParser\Node) {
|
||||
return \true;
|
||||
}
|
||||
$type = $this->resolveTypePossibleUnionNullableType($node, $type);
|
||||
$type = $this->propertyUnionTypeResolver->resolve($node, $type);
|
||||
// is not class-type and should be skipped
|
||||
if ($this->shouldSkipNonClassLikeType($node, $type)) {
|
||||
return \true;
|
||||
|
@ -202,25 +209,6 @@ CODE_SAMPLE
|
|||
}
|
||||
return \true;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Name|\PhpParser\Node\NullableType|\PhpParser\Node\UnionType $node
|
||||
*/
|
||||
private function resolveTypePossibleUnionNullableType($node, \PHPStan\Type\Type $possibleUnionType) : \PHPStan\Type\Type
|
||||
{
|
||||
if (!$node instanceof \PhpParser\Node\NullableType) {
|
||||
return $possibleUnionType;
|
||||
}
|
||||
if (!$possibleUnionType instanceof \PHPStan\Type\UnionType) {
|
||||
return $possibleUnionType;
|
||||
}
|
||||
$types = $possibleUnionType->getTypes();
|
||||
foreach ($types as $type) {
|
||||
if (!$type instanceof \PHPStan\Type\NullType) {
|
||||
return $type;
|
||||
}
|
||||
}
|
||||
return $possibleUnionType;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Name|\PhpParser\Node\NullableType|PhpParserUnionType $node
|
||||
*/
|
||||
|
@ -255,7 +243,7 @@ CODE_SAMPLE
|
|||
if (!$propertyType instanceof \PHPStan\Type\UnionType) {
|
||||
return;
|
||||
}
|
||||
if (!$propertyType->isSuperTypeOf(new \PHPStan\Type\NullType())->yes()) {
|
||||
if (!\PHPStan\Type\TypeCombinator::containsNull($propertyType)) {
|
||||
return;
|
||||
}
|
||||
$onlyProperty = $property->props[0];
|
||||
|
@ -278,6 +266,11 @@ CODE_SAMPLE
|
|||
if (\count($property->props) > 1) {
|
||||
return \true;
|
||||
}
|
||||
$trait = $this->betterNodeFinder->findParentType($property, \PhpParser\Node\Stmt\Trait_::class);
|
||||
// skip trait properties, as they ar unpredictable based on class context they appear in
|
||||
if ($trait instanceof \PhpParser\Node\Stmt\Trait_) {
|
||||
return \true;
|
||||
}
|
||||
if (!$this->privatePropertyOnly) {
|
||||
return $this->propertyAnalyzer->hasForbiddenType($property);
|
||||
}
|
||||
|
|
32
rules/Php74/TypeAnalyzer/PropertyUnionTypeResolver.php
Normal file
32
rules/Php74/TypeAnalyzer/PropertyUnionTypeResolver.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\Php74\TypeAnalyzer;
|
||||
|
||||
use PhpParser\Node\Name;
|
||||
use PhpParser\Node\NullableType;
|
||||
use PHPStan\Type\NullType;
|
||||
use PHPStan\Type\Type;
|
||||
use PHPStan\Type\UnionType;
|
||||
final class PropertyUnionTypeResolver
|
||||
{
|
||||
/**
|
||||
* @param \PhpParser\Node\Name|\PhpParser\Node\NullableType|\PhpParser\Node\UnionType $phpUnionType
|
||||
*/
|
||||
public function resolve($phpUnionType, \PHPStan\Type\Type $possibleUnionType) : \PHPStan\Type\Type
|
||||
{
|
||||
if (!$phpUnionType instanceof \PhpParser\Node\NullableType) {
|
||||
return $possibleUnionType;
|
||||
}
|
||||
if (!$possibleUnionType instanceof \PHPStan\Type\UnionType) {
|
||||
return $possibleUnionType;
|
||||
}
|
||||
$types = $possibleUnionType->getTypes();
|
||||
foreach ($types as $type) {
|
||||
if (!$type instanceof \PHPStan\Type\NullType) {
|
||||
return $type;
|
||||
}
|
||||
}
|
||||
return $possibleUnionType;
|
||||
}
|
||||
}
|
|
@ -7,7 +7,6 @@ use PhpParser\Node;
|
|||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PHPStan\Type\ObjectType;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
|
@ -54,12 +53,15 @@ class OrderSpec extends ObjectBehavior
|
|||
CODE_SAMPLE
|
||||
)]);
|
||||
}
|
||||
public function isInPhpSpecBehavior(\PhpParser\Node $node) : bool
|
||||
protected function isInPhpSpecBehavior(\PhpParser\Node $node) : bool
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if ($node instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return $this->isObjectType($node, new \PHPStan\Type\ObjectType('PhpSpec\\ObjectBehavior'));
|
||||
}
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return \false;
|
||||
}
|
||||
return $this->isObjectType($classLike, new \PHPStan\Type\ObjectType('PhpSpec\\ObjectBehavior'));
|
||||
return $this->isInPhpSpecBehavior($classLike);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,27 +88,27 @@ final class PhpSpecMocksToPHPUnitMocksRector extends \Rector\PhpSpecToPHPUnit\Re
|
|||
}
|
||||
private function processMethodCall(\PhpParser\Node\Expr\MethodCall $methodCall) : ?\PhpParser\Node\Expr\MethodCall
|
||||
{
|
||||
if ($this->isName($methodCall->name, 'shouldBeCalled')) {
|
||||
if (!$methodCall->var instanceof \PhpParser\Node\Expr\MethodCall) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$mockMethodName = $this->getName($methodCall->var->name);
|
||||
if ($mockMethodName === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$arg = $methodCall->var->args[0] ?? null;
|
||||
$expectedArg = $arg instanceof \PhpParser\Node\Arg ? $arg->value : null;
|
||||
$methodCall->var->name = new \PhpParser\Node\Identifier('expects');
|
||||
$thisOnceMethodCall = $this->nodeFactory->createLocalMethodCall('atLeastOnce');
|
||||
$methodCall->var->args = [new \PhpParser\Node\Arg($thisOnceMethodCall)];
|
||||
$methodCall->name = new \PhpParser\Node\Identifier('method');
|
||||
$methodCall->args = [new \PhpParser\Node\Arg(new \PhpParser\Node\Scalar\String_($mockMethodName))];
|
||||
if ($expectedArg !== null) {
|
||||
return $this->appendWithMethodCall($methodCall, $expectedArg);
|
||||
}
|
||||
return $methodCall;
|
||||
if (!$this->isName($methodCall->name, 'shouldBeCalled')) {
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
if (!$methodCall->var instanceof \PhpParser\Node\Expr\MethodCall) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$mockMethodName = $this->getName($methodCall->var->name);
|
||||
if ($mockMethodName === null) {
|
||||
throw new \Rector\Core\Exception\ShouldNotHappenException();
|
||||
}
|
||||
$arg = $methodCall->var->args[0] ?? null;
|
||||
$expectedArg = $arg instanceof \PhpParser\Node\Arg ? $arg->value : null;
|
||||
$methodCall->var->name = new \PhpParser\Node\Identifier('expects');
|
||||
$thisOnceMethodCall = $this->nodeFactory->createLocalMethodCall('atLeastOnce');
|
||||
$methodCall->var->args = [new \PhpParser\Node\Arg($thisOnceMethodCall)];
|
||||
$methodCall->name = new \PhpParser\Node\Identifier('method');
|
||||
$methodCall->args = [new \PhpParser\Node\Arg(new \PhpParser\Node\Scalar\String_($mockMethodName))];
|
||||
if ($expectedArg !== null) {
|
||||
return $this->appendWithMethodCall($methodCall, $expectedArg);
|
||||
}
|
||||
return $methodCall;
|
||||
}
|
||||
/**
|
||||
* Variable or property fetch, based on number of present params in whole class
|
||||
|
@ -116,7 +116,7 @@ final class PhpSpecMocksToPHPUnitMocksRector extends \Rector\PhpSpecToPHPUnit\Re
|
|||
private function createCreateMockCall(\PhpParser\Node\Param $param, \PhpParser\Node\Name $name) : ?\PhpParser\Node\Stmt\Expression
|
||||
{
|
||||
/** @var Class_ $classLike */
|
||||
$classLike = $param->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($param, \PhpParser\Node\Stmt\Class_::class);
|
||||
$classMocks = $this->phpSpecMockCollector->resolveClassMocksFromParam($classLike);
|
||||
$variable = $this->getName($param->var);
|
||||
$classMethod = $param->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::METHOD_NODE);
|
||||
|
|
|
@ -16,7 +16,6 @@ use PhpParser\Node\Identifier;
|
|||
use PhpParser\Node\Scalar\String_;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use Rector\Core\Exception\ShouldNotHappenException;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PhpSpecToPHPUnit\MatchersManipulator;
|
||||
use Rector\PhpSpecToPHPUnit\Naming\PhpSpecRenaming;
|
||||
use Rector\PhpSpecToPHPUnit\NodeFactory\AssertMethodCallFactory;
|
||||
|
@ -171,12 +170,16 @@ final class PhpSpecPromisesToPHPUnitAssertRector extends \Rector\PhpSpecToPHPUni
|
|||
return null;
|
||||
}
|
||||
/** @var Class_ $classLike */
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
$classMethod = $classLike->getMethod($methodName);
|
||||
// it's a method call, skip
|
||||
if ($classMethod !== null) {
|
||||
return null;
|
||||
}
|
||||
// direct PHPUnit method calls, no need to call on property
|
||||
if (\in_array($methodName, ['atLeastOnce', 'equalTo', 'isInstanceOf', 'isType'], \true)) {
|
||||
return $node;
|
||||
}
|
||||
$node->var = $this->getTestedObjectPropertyFetch();
|
||||
return $node;
|
||||
}
|
||||
|
@ -192,11 +195,17 @@ final class PhpSpecPromisesToPHPUnitAssertRector extends \Rector\PhpSpecToPHPUni
|
|||
if ($this->isPrepared) {
|
||||
return;
|
||||
}
|
||||
/** @var Class_ $classLike */
|
||||
$classLike = $methodCall->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$this->matchersKeys = $this->matchersManipulator->resolveMatcherNamesFromClass($classLike);
|
||||
$this->testedClass = $this->phpSpecRenaming->resolveTestedClass($methodCall);
|
||||
$this->testedObjectPropertyFetch = $this->createTestedObjectPropertyFetch($classLike);
|
||||
$class = $this->betterNodeFinder->findParentType($methodCall, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return;
|
||||
}
|
||||
$className = $this->getName($class);
|
||||
if (!\is_string($className)) {
|
||||
return;
|
||||
}
|
||||
$this->matchersKeys = $this->matchersManipulator->resolveMatcherNamesFromClass($class);
|
||||
$this->testedClass = $this->phpSpecRenaming->resolveTestedClass($class);
|
||||
$this->testedObjectPropertyFetch = $this->createTestedObjectPropertyFetch($class);
|
||||
$this->isPrepared = \true;
|
||||
}
|
||||
private function getTestedObjectPropertyFetch() : \PhpParser\Node\Expr\PropertyFetch
|
||||
|
|
|
@ -11,7 +11,6 @@ use PhpParser\Node\Stmt\Class_;
|
|||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Global_;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PostRector\Collector\PropertyToAddCollector;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -82,7 +81,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ use PhpParser\Node\Stmt\Class_;
|
|||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Return_;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
|
@ -73,7 +72,7 @@ CODE_SAMPLE
|
|||
if (!$this->nodeNameResolver->isName($node->var, 'this')) {
|
||||
return null;
|
||||
}
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ use PhpParser\Node\Stmt\PropertyProperty;
|
|||
use PHPStan\Type\ObjectType;
|
||||
use Rector\Core\NodeManipulator\PropertyManipulator;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\Privatization\NodeFactory\ClassConstantFactory;
|
||||
use Rector\Privatization\NodeReplacer\PropertyFetchWithConstFetchReplacer;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
|
@ -109,7 +108,7 @@ CODE_SAMPLE
|
|||
return null;
|
||||
}
|
||||
/** @var Class_ $classLike */
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
$this->propertyFetchWithConstFetchReplacer->replace($classLike, $node);
|
||||
return $this->classConstantFactory->createFromProperty($node);
|
||||
}
|
||||
|
@ -118,7 +117,7 @@ CODE_SAMPLE
|
|||
if (\count($property->props) !== 1) {
|
||||
return \true;
|
||||
}
|
||||
$classLike = $property->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($property, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \true;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ final class ComplexNodeRemover
|
|||
if (!$this->nodeNameResolver->isName($classMethod, \Rector\Core\ValueObject\MethodName::CONSTRUCT)) {
|
||||
return;
|
||||
}
|
||||
$class = $assign->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($assign, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -98,12 +98,12 @@ CODE_SAMPLE
|
|||
}
|
||||
private function refactorStaticCall(\PhpParser\Node\Expr\StaticCall $staticCall) : ?\PhpParser\Node\Expr\MethodCall
|
||||
{
|
||||
$class = $staticCall->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
$classLike = $this->betterNodeFinder->findParentType($staticCall, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return null;
|
||||
}
|
||||
/** @var ClassMethod[] $classMethods */
|
||||
$classMethods = $this->betterNodeFinder->findInstanceOf($class, \PhpParser\Node\Stmt\ClassMethod::class);
|
||||
$classMethods = $this->betterNodeFinder->findInstanceOf($classLike, \PhpParser\Node\Stmt\ClassMethod::class);
|
||||
foreach ($classMethods as $classMethod) {
|
||||
if (!$this->isClassMethodMatchingStaticCall($classMethod, $staticCall)) {
|
||||
continue;
|
||||
|
|
|
@ -101,7 +101,7 @@ CODE_SAMPLE
|
|||
}
|
||||
$propertyName = $this->propertyNaming->fqnToVariableName($staticObjectType);
|
||||
/** @var Class_ $class */
|
||||
$class = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
$propertyMetadata = new \Rector\PostRector\ValueObject\PropertyMetadata($propertyName, $staticObjectType, \PhpParser\Node\Stmt\Class_::MODIFIER_PRIVATE);
|
||||
$this->propertyToAddCollector->addPropertyToClass($class, $propertyMetadata);
|
||||
$objectPropertyFetch = new \PhpParser\Node\Expr\PropertyFetch(new \PhpParser\Node\Expr\Variable('this'), $propertyName);
|
||||
|
|
|
@ -9,7 +9,6 @@ use PhpParser\Node\Stmt\ClassMethod;
|
|||
use PhpParser\Node\Stmt\Property;
|
||||
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\PhpDoc\NodeAnalyzer\DocBlockTagReplacer;
|
||||
use Rector\Renaming\ValueObject\RenameAnnotation;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
|
||||
|
@ -74,7 +73,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ use PhpParser\Node\Stmt\ClassMethod;
|
|||
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
||||
use Rector\Core\NodeManipulator\ClassManipulator;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\Renaming\Collector\MethodCallRenameCollector;
|
||||
use Rector\Renaming\Contract\MethodCallRenameInterface;
|
||||
use Rector\Renaming\ValueObject\MethodCallRename;
|
||||
|
@ -116,7 +115,7 @@ CODE_SAMPLE
|
|||
}
|
||||
private function shouldSkipForAlreadyExistingClassMethod(\PhpParser\Node\Stmt\ClassMethod $classMethod, \Rector\Renaming\Contract\MethodCallRenameInterface $methodCallRename) : bool
|
||||
{
|
||||
$classLike = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ namespace Rector\Renaming\Rector\PropertyFetch;
|
|||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\PropertyFetch;
|
||||
use PhpParser\Node\Identifier;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\Property;
|
||||
use PhpParser\Node\VarLikeIdentifier;
|
||||
|
@ -13,7 +14,6 @@ use PHPStan\Type\ObjectType;
|
|||
use PHPStan\Type\ThisType;
|
||||
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\Renaming\ValueObject\RenameProperty;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -92,7 +92,7 @@ final class RenamePropertyRector extends \Rector\Core\Rector\AbstractRector impl
|
|||
}
|
||||
private function processFromPropertyFetch(\PhpParser\Node\Expr\PropertyFetch $propertyFetch) : ?\PhpParser\Node\Expr\PropertyFetch
|
||||
{
|
||||
$class = $propertyFetch->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($propertyFetch, \PhpParser\Node\Stmt\Class_::class);
|
||||
foreach ($this->renamedProperties as $renamedProperty) {
|
||||
if (!$this->isObjectType($propertyFetch->var, $renamedProperty->getObjectType())) {
|
||||
continue;
|
||||
|
|
|
@ -14,7 +14,6 @@ use PhpParser\Node\Stmt\Class_;
|
|||
use PhpParser\Node\Stmt\Property;
|
||||
use PhpParser\Node\Stmt\PropertyProperty;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
/**
|
||||
|
@ -96,7 +95,7 @@ CODE_SAMPLE
|
|||
}
|
||||
private function isPropertyNullChecked(\PhpParser\Node\Stmt\PropertyProperty $onlyPropertyProperty) : bool
|
||||
{
|
||||
$classLike = $onlyPropertyProperty->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($onlyPropertyProperty, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ use PHPStan\Type\MixedType;
|
|||
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
|
||||
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\Transform\ValueObject\SingleToManyMethod;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\ConfiguredCodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
@ -77,7 +76,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -114,7 +114,7 @@ CODE_SAMPLE
|
|||
return null;
|
||||
}
|
||||
/** @var Class_ $classLike */
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
foreach ($this->argumentFuncCallToMethodCalls as $argumentFuncCallToMethodCall) {
|
||||
if (!$this->isName($node, $argumentFuncCallToMethodCall->getFunction())) {
|
||||
continue;
|
||||
|
|
|
@ -80,7 +80,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -13,7 +13,6 @@ use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
|||
use Rector\Core\NodeAnalyzer\PropertyPresenceChecker;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Naming\Naming\PropertyNaming;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PostRector\Collector\PropertyToAddCollector;
|
||||
use Rector\PostRector\ValueObject\PropertyMetadata;
|
||||
use Rector\Transform\ValueObject\MethodCallToMethodCall;
|
||||
|
@ -103,7 +102,10 @@ CODE_SAMPLE
|
|||
continue;
|
||||
}
|
||||
$propertyFetch = $node->var;
|
||||
$class = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
continue;
|
||||
}
|
||||
$newObjectType = new \PHPStan\Type\ObjectType($methodCallToMethodCall->getNewType());
|
||||
$newPropertyName = $this->matchNewPropertyName($methodCallToMethodCall, $class);
|
||||
if ($newPropertyName === null) {
|
||||
|
|
|
@ -14,7 +14,6 @@ use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
|||
use Rector\Core\NodeAnalyzer\ClassAnalyzer;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\Naming\Naming\PropertyNaming;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PostRector\Collector\PropertyToAddCollector;
|
||||
use Rector\PostRector\ValueObject\PropertyMetadata;
|
||||
use Rector\Transform\ValueObject\ServiceGetterToConstructorInjection;
|
||||
|
@ -132,7 +131,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@ use Rector\Core\Rector\AbstractRector;
|
|||
use Rector\Naming\Naming\PropertyNaming;
|
||||
use Rector\Naming\ValueObject\ExpectedName;
|
||||
use Rector\NodeRemoval\AssignRemover;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\PostRector\Collector\PropertyToAddCollector;
|
||||
use Rector\PostRector\ValueObject\PropertyMetadata;
|
||||
use Rector\Transform\NodeFactory\PropertyFetchFactory;
|
||||
|
@ -158,7 +157,7 @@ CODE_SAMPLE
|
|||
if (!$this->isObjectType($new->class, $constructorInjectionObjectType)) {
|
||||
continue;
|
||||
}
|
||||
$classLike = $new->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($new, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -93,7 +93,7 @@ CODE_SAMPLE
|
|||
continue;
|
||||
}
|
||||
/** @var Class_ $class */
|
||||
$class = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
$propertyName = $this->getExistingFactoryPropertyName($class, $newToMethodCall->getServiceObjectType());
|
||||
if ($propertyName === null) {
|
||||
$serviceObjectType = $newToMethodCall->getServiceObjectType();
|
||||
|
|
|
@ -89,7 +89,7 @@ CODE_SAMPLE
|
|||
*/
|
||||
public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node
|
||||
{
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ use PHPStan\Type\MixedType;
|
|||
use PHPStan\Type\StringType;
|
||||
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\TypeComparator\TypeComparator;
|
||||
use Rector\PHPStanStaticTypeMapper\Enum\TypeKind;
|
||||
use Rector\TypeDeclaration\ValueObject\AddParamTypeDeclaration;
|
||||
|
@ -79,7 +78,7 @@ CODE_SAMPLE
|
|||
return null;
|
||||
}
|
||||
/** @var ClassLike $classLike */
|
||||
$classLike = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($node, \PhpParser\Node\Stmt\Class_::class);
|
||||
foreach ($this->parameterTypehints as $parameterTypehint) {
|
||||
if (!$this->isObjectType($classLike, $parameterTypehint->getObjectType())) {
|
||||
continue;
|
||||
|
@ -106,7 +105,7 @@ CODE_SAMPLE
|
|||
if ($classMethod->params === []) {
|
||||
return \true;
|
||||
}
|
||||
$classLike = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return \true;
|
||||
}
|
||||
|
|
|
@ -220,7 +220,7 @@ CODE_SAMPLE
|
|||
if (!$functionLike instanceof \PhpParser\Node\Stmt\ClassMethod) {
|
||||
return \false;
|
||||
}
|
||||
$classLike = $functionLike->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($functionLike, \PhpParser\Node\Stmt\Class_::class);
|
||||
return !$classLike instanceof \PhpParser\Node\Stmt\Class_;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ use PHPStan\Type\Type;
|
|||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
|
||||
use Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer;
|
||||
use Rector\Core\NodeManipulator\PropertyFetchAssignManipulator;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\TypeDeclaration\Contract\TypeInferer\ParamTypeInfererInterface;
|
||||
|
@ -40,21 +41,26 @@ final class GetterNodeParamTypeInferer implements \Rector\TypeDeclaration\Contra
|
|||
* @var \Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser
|
||||
*/
|
||||
private $simpleCallableNodeTraverser;
|
||||
public function __construct(\Rector\Core\NodeManipulator\PropertyFetchAssignManipulator $propertyFetchAssignManipulator, \Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer $propertyFetchAnalyzer, \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \RectorPrefix20211106\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\Core\NodeManipulator\PropertyFetchAssignManipulator $propertyFetchAssignManipulator, \Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer $propertyFetchAnalyzer, \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory $phpDocInfoFactory, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \RectorPrefix20211106\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->propertyFetchAssignManipulator = $propertyFetchAssignManipulator;
|
||||
$this->propertyFetchAnalyzer = $propertyFetchAnalyzer;
|
||||
$this->phpDocInfoFactory = $phpDocInfoFactory;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Param $param
|
||||
*/
|
||||
public function inferParam($param) : \PHPStan\Type\Type
|
||||
{
|
||||
$classLike = $param->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($param, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
/** @var ClassMethod $classMethod */
|
||||
|
@ -67,7 +73,7 @@ final class GetterNodeParamTypeInferer implements \Rector\TypeDeclaration\Contra
|
|||
}
|
||||
$returnType = new \PHPStan\Type\MixedType();
|
||||
// resolve property assigns
|
||||
$this->simpleCallableNodeTraverser->traverseNodesWithCallable($classLike, function (\PhpParser\Node $node) use($propertyNames, &$returnType) : ?int {
|
||||
$this->simpleCallableNodeTraverser->traverseNodesWithCallable($class, function (\PhpParser\Node $node) use($propertyNames, &$returnType) : ?int {
|
||||
if (!$node instanceof \PhpParser\Node\Stmt\Return_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -10,8 +10,8 @@ use PHPStan\Type\ArrayType;
|
|||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\StringType;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\TypeDeclaration\Contract\TypeInferer\ParamTypeInfererInterface;
|
||||
final class KnownArrayParamTypeInferer implements \Rector\TypeDeclaration\Contract\TypeInferer\ParamTypeInfererInterface
|
||||
{
|
||||
|
@ -23,21 +23,26 @@ final class KnownArrayParamTypeInferer implements \Rector\TypeDeclaration\Contra
|
|||
* @var \PHPStan\Reflection\ReflectionProvider
|
||||
*/
|
||||
private $reflectionProvider;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \PHPStan\Reflection\ReflectionProvider $reflectionProvider)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \PHPStan\Reflection\ReflectionProvider $reflectionProvider, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->reflectionProvider = $reflectionProvider;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Param $param
|
||||
*/
|
||||
public function inferParam($param) : \PHPStan\Type\Type
|
||||
{
|
||||
$classLike = $param->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($param, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
$className = $this->nodeNameResolver->getName($classLike);
|
||||
$className = $this->nodeNameResolver->getName($class);
|
||||
if (!$className) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
|
|
|
@ -92,8 +92,8 @@ final class PHPUnitDataProviderParamTypeInferer implements \Rector\TypeDeclarati
|
|||
if (!$phpDocTagNode instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode) {
|
||||
return null;
|
||||
}
|
||||
$classLike = $param->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($param, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
if (!$phpDocTagNode->value instanceof \PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode) {
|
||||
|
@ -105,7 +105,7 @@ final class PHPUnitDataProviderParamTypeInferer implements \Rector\TypeDeclarati
|
|||
return null;
|
||||
}
|
||||
$methodName = $match['method_name'];
|
||||
return $classLike->getMethod($methodName);
|
||||
return $class->getMethod($methodName);
|
||||
}
|
||||
/**
|
||||
* @param Return_[] $returns
|
||||
|
|
|
@ -11,6 +11,7 @@ use PhpParser\Node\Stmt\ClassMethod;
|
|||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
|
@ -39,20 +40,25 @@ final class PropertyNodeParamTypeInferer implements \Rector\TypeDeclaration\Cont
|
|||
* @var \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory
|
||||
*/
|
||||
private $typeFactory;
|
||||
public function __construct(\Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer $propertyFetchAnalyzer, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \RectorPrefix20211106\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser, \Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver, \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory $typeFactory)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\Core\NodeAnalyzer\PropertyFetchAnalyzer $propertyFetchAnalyzer, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \RectorPrefix20211106\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser, \Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver, \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory $typeFactory, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->propertyFetchAnalyzer = $propertyFetchAnalyzer;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->simpleCallableNodeTraverser = $simpleCallableNodeTraverser;
|
||||
$this->nodeTypeResolver = $nodeTypeResolver;
|
||||
$this->typeFactory = $typeFactory;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Param $param
|
||||
*/
|
||||
public function inferParam($param) : \PHPStan\Type\Type
|
||||
{
|
||||
$classLike = $param->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($param, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
|
|
|
@ -3,10 +3,11 @@
|
|||
declare (strict_types=1);
|
||||
namespace Rector\TypeDeclaration\TypeInferer\PropertyTypeInferer;
|
||||
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\Property;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\TypeDeclaration\Contract\TypeInferer\PropertyTypeInfererInterface;
|
||||
use Rector\TypeDeclaration\TypeInferer\AssignToPropertyTypeInferer;
|
||||
final class AllAssignNodePropertyTypeInferer implements \Rector\TypeDeclaration\Contract\TypeInferer\PropertyTypeInfererInterface
|
||||
|
@ -19,23 +20,27 @@ final class AllAssignNodePropertyTypeInferer implements \Rector\TypeDeclaration\
|
|||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\AssignToPropertyTypeInferer $assignToPropertyTypeInferer, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\AssignToPropertyTypeInferer $assignToPropertyTypeInferer, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->assignToPropertyTypeInferer = $assignToPropertyTypeInferer;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Stmt\Property $property
|
||||
*/
|
||||
public function inferProperty($property) : ?\PHPStan\Type\Type
|
||||
{
|
||||
$classLike = $property->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if ($classLike === null) {
|
||||
// anonymous class possibly?
|
||||
$class = $this->betterNodeFinder->findParentType($property, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
$propertyName = $this->nodeNameResolver->getName($property);
|
||||
return $this->assignToPropertyTypeInferer->inferPropertyInClassLike($propertyName, $classLike);
|
||||
return $this->assignToPropertyTypeInferer->inferPropertyInClassLike($propertyName, $class);
|
||||
}
|
||||
public function getPriority() : int
|
||||
{
|
||||
|
|
|
@ -8,8 +8,8 @@ use PhpParser\Node\Stmt\ClassMethod;
|
|||
use PhpParser\Node\Stmt\Property;
|
||||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\TypeDeclaration\Contract\TypeInferer\PropertyTypeInfererInterface;
|
||||
use Rector\TypeDeclaration\FunctionLikeReturnTypeResolver;
|
||||
use Rector\TypeDeclaration\NodeAnalyzer\ClassMethodAndPropertyAnalyzer;
|
||||
|
@ -37,27 +37,32 @@ final class GetterPropertyTypeInferer implements \Rector\TypeDeclaration\Contrac
|
|||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer\ReturnTagReturnTypeInferer $returnTagReturnTypeInferer, \Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer\ReturnedNodesReturnTypeInferer $returnedNodesReturnTypeInferer, \Rector\TypeDeclaration\FunctionLikeReturnTypeResolver $functionLikeReturnTypeResolver, \Rector\TypeDeclaration\NodeAnalyzer\ClassMethodAndPropertyAnalyzer $classMethodAndPropertyAnalyzer, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer\ReturnTagReturnTypeInferer $returnTagReturnTypeInferer, \Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer\ReturnedNodesReturnTypeInferer $returnedNodesReturnTypeInferer, \Rector\TypeDeclaration\FunctionLikeReturnTypeResolver $functionLikeReturnTypeResolver, \Rector\TypeDeclaration\NodeAnalyzer\ClassMethodAndPropertyAnalyzer $classMethodAndPropertyAnalyzer, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->returnTagReturnTypeInferer = $returnTagReturnTypeInferer;
|
||||
$this->returnedNodesReturnTypeInferer = $returnedNodesReturnTypeInferer;
|
||||
$this->functionLikeReturnTypeResolver = $functionLikeReturnTypeResolver;
|
||||
$this->classMethodAndPropertyAnalyzer = $classMethodAndPropertyAnalyzer;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\Stmt\Property $property
|
||||
*/
|
||||
public function inferProperty($property) : ?\PHPStan\Type\Type
|
||||
{
|
||||
$classLike = $property->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($property, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
// anonymous class
|
||||
return null;
|
||||
}
|
||||
/** @var string $propertyName */
|
||||
$propertyName = $this->nodeNameResolver->getName($property);
|
||||
foreach ($classLike->getMethods() as $classMethod) {
|
||||
foreach ($class->getMethods() as $classMethod) {
|
||||
if (!$this->classMethodAndPropertyAnalyzer->hasClassMethodOnlyStatementReturnOfPropertyFetch($classMethod, $propertyName)) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ use PhpParser\Node\Expr\Closure;
|
|||
use PhpParser\Node\Expr\MethodCall;
|
||||
use PhpParser\Node\FunctionLike;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassLike;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
use PhpParser\Node\Stmt\Function_;
|
||||
use PhpParser\Node\Stmt\Interface_;
|
||||
|
@ -20,9 +21,9 @@ use PHPStan\Type\MixedType;
|
|||
use PHPStan\Type\Type;
|
||||
use PHPStan\Type\VoidType;
|
||||
use Rector\Core\PhpParser\AstResolver;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\Core\PhpParser\Printer\BetterStandardPrinter;
|
||||
use Rector\Core\Reflection\ReflectionResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory;
|
||||
use Rector\TypeDeclaration\Contract\TypeInferer\ReturnTypeInfererInterface;
|
||||
|
@ -63,7 +64,11 @@ final class ReturnedNodesReturnTypeInferer implements \Rector\TypeDeclaration\Co
|
|||
* @var \Rector\Core\Reflection\ReflectionResolver
|
||||
*/
|
||||
private $reflectionResolver;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\SilentVoidResolver $silentVoidResolver, \Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver, \RectorPrefix20211106\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser, \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory $typeFactory, \Rector\TypeDeclaration\TypeInferer\SplArrayFixedTypeNarrower $splArrayFixedTypeNarrower, \Rector\Core\PhpParser\AstResolver $reflectionAstResolver, \Rector\Core\PhpParser\Printer\BetterStandardPrinter $betterStandardPrinter, \Rector\Core\Reflection\ReflectionResolver $reflectionResolver)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\SilentVoidResolver $silentVoidResolver, \Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver, \RectorPrefix20211106\Symplify\Astral\NodeTraverser\SimpleCallableNodeTraverser $simpleCallableNodeTraverser, \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory $typeFactory, \Rector\TypeDeclaration\TypeInferer\SplArrayFixedTypeNarrower $splArrayFixedTypeNarrower, \Rector\Core\PhpParser\AstResolver $reflectionAstResolver, \Rector\Core\PhpParser\Printer\BetterStandardPrinter $betterStandardPrinter, \Rector\Core\Reflection\ReflectionResolver $reflectionResolver, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->silentVoidResolver = $silentVoidResolver;
|
||||
$this->nodeTypeResolver = $nodeTypeResolver;
|
||||
|
@ -73,15 +78,15 @@ final class ReturnedNodesReturnTypeInferer implements \Rector\TypeDeclaration\Co
|
|||
$this->reflectionAstResolver = $reflectionAstResolver;
|
||||
$this->betterStandardPrinter = $betterStandardPrinter;
|
||||
$this->reflectionResolver = $reflectionResolver;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\FunctionLike $functionLike
|
||||
*/
|
||||
public function inferFunctionLike($functionLike) : \PHPStan\Type\Type
|
||||
{
|
||||
/** @var Class_|Trait_|Interface_|null $classLike */
|
||||
$classLike = $functionLike->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if ($classLike === null) {
|
||||
$classLike = $this->betterNodeFinder->findParentType($functionLike, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
if ($functionLike instanceof \PhpParser\Node\Stmt\ClassMethod && $classLike instanceof \PhpParser\Node\Stmt\Interface_) {
|
||||
|
@ -90,6 +95,7 @@ final class ReturnedNodesReturnTypeInferer implements \Rector\TypeDeclaration\Co
|
|||
$types = [];
|
||||
$localReturnNodes = $this->collectReturns($functionLike);
|
||||
if ($localReturnNodes === []) {
|
||||
/** @var Class_|Interface_|Trait_ $classLike */
|
||||
return $this->resolveNoLocalReturnNodes($classLike, $functionLike);
|
||||
}
|
||||
foreach ($localReturnNodes as $localReturnNode) {
|
||||
|
|
|
@ -8,7 +8,7 @@ use PhpParser\Node\Stmt\ClassLike;
|
|||
use PHPStan\Type\MixedType;
|
||||
use PHPStan\Type\Type;
|
||||
use Rector\Core\NodeManipulator\FunctionLikeManipulator;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory;
|
||||
use Rector\TypeDeclaration\Contract\TypeInferer\ReturnTypeInfererInterface;
|
||||
use Rector\TypeDeclaration\TypeInferer\AssignToPropertyTypeInferer;
|
||||
|
@ -26,18 +26,23 @@ final class SetterNodeReturnTypeInferer implements \Rector\TypeDeclaration\Contr
|
|||
* @var \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory
|
||||
*/
|
||||
private $typeFactory;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\AssignToPropertyTypeInferer $assignToPropertyTypeInferer, \Rector\Core\NodeManipulator\FunctionLikeManipulator $functionLikeManipulator, \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory $typeFactory)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\TypeDeclaration\TypeInferer\AssignToPropertyTypeInferer $assignToPropertyTypeInferer, \Rector\Core\NodeManipulator\FunctionLikeManipulator $functionLikeManipulator, \Rector\NodeTypeResolver\PHPStan\Type\TypeFactory $typeFactory, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->assignToPropertyTypeInferer = $assignToPropertyTypeInferer;
|
||||
$this->functionLikeManipulator = $functionLikeManipulator;
|
||||
$this->typeFactory = $typeFactory;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @param \PhpParser\Node\FunctionLike $functionLike
|
||||
*/
|
||||
public function inferFunctionLike($functionLike) : \PHPStan\Type\Type
|
||||
{
|
||||
$classLike = $functionLike->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($functionLike, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return new \PHPStan\Type\MixedType();
|
||||
}
|
||||
|
|
|
@ -14,10 +14,8 @@ use PhpParser\Node\Stmt\Interface_;
|
|||
use PhpParser\Node\Stmt\Return_;
|
||||
use PhpParser\Node\Stmt\Switch_;
|
||||
use PhpParser\Node\Stmt\Throw_;
|
||||
use PhpParser\Node\Stmt\Trait_;
|
||||
use PhpParser\Node\Stmt\TryCatch;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
final class SilentVoidResolver
|
||||
{
|
||||
/**
|
||||
|
@ -33,11 +31,8 @@ final class SilentVoidResolver
|
|||
*/
|
||||
public function hasExclusiveVoid($functionLike) : bool
|
||||
{
|
||||
$classLike = $functionLike->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if ($classLike instanceof \PhpParser\Node\Stmt\Interface_) {
|
||||
return \false;
|
||||
}
|
||||
if ($classLike instanceof \PhpParser\Node\Stmt\Trait_) {
|
||||
$interface = $this->betterNodeFinder->findParentType($functionLike, \PhpParser\Node\Stmt\Interface_::class);
|
||||
if ($interface instanceof \PhpParser\Node\Stmt\Interface_) {
|
||||
return \false;
|
||||
}
|
||||
if ($this->hasNeverType($functionLike)) {
|
||||
|
|
|
@ -16,11 +16,11 @@ final class VersionResolver
|
|||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = 'e46fe290d8696139ff59e2432021620ffc710d4b';
|
||||
public const PACKAGE_VERSION = 'c3b6efea7ee5351ce66461fe02c5f9b7282816bb';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2021-11-06 09:31:24';
|
||||
public const RELEASE_DATE = '2021-11-06 12:52:18';
|
||||
public static function resolvePackageVersion() : string
|
||||
{
|
||||
$process = new \RectorPrefix20211106\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__);
|
||||
|
|
|
@ -5,30 +5,35 @@ namespace Rector\Core\NodeAnalyzer;
|
|||
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassConst;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
final class EnumAnalyzer
|
||||
{
|
||||
/**
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
/**
|
||||
* @see https://github.com/myclabs/php-enum#declaration
|
||||
*/
|
||||
public function isEnumClassConst(\PhpParser\Node\Stmt\ClassConst $classConst) : bool
|
||||
{
|
||||
$classLike = $classConst->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($classConst, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
if ($classLike->extends === null) {
|
||||
if ($class->extends === null) {
|
||||
return \false;
|
||||
}
|
||||
return $this->nodeNameResolver->isName($classLike->extends, '*Enum');
|
||||
return $this->nodeNameResolver->isName($class->extends, '*Enum');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ use Rector\Core\PhpParser\Comparing\NodeComparator;
|
|||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\Core\ValueObject\MethodName;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
final class PropertyFetchAnalyzer
|
||||
{
|
||||
/**
|
||||
|
@ -81,11 +80,11 @@ final class PropertyFetchAnalyzer
|
|||
if ($expr instanceof \PhpParser\Node\Expr\StaticPropertyFetch && !$this->nodeNameResolver->isName($expr->class, \Rector\Core\Enum\ObjectReference::SELF()->getValue())) {
|
||||
return \false;
|
||||
}
|
||||
$classLike = $expr->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($expr, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
foreach ($classLike->getProperties() as $property) {
|
||||
foreach ($class->getProperties() as $property) {
|
||||
if (!$this->nodeNameResolver->areNamesEqual($property->props[0], $expr)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -119,7 +118,7 @@ final class PropertyFetchAnalyzer
|
|||
}
|
||||
public function isFilledByConstructParam(\PhpParser\Node\Stmt\Property $property) : bool
|
||||
{
|
||||
$class = $property->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($property, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ use PHPStan\Reflection\ClassReflection;
|
|||
use Rector\Core\PhpParser\AstResolver;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
final class ClassConstManipulator
|
||||
{
|
||||
/**
|
||||
|
@ -35,8 +34,8 @@ final class ClassConstManipulator
|
|||
}
|
||||
public function hasClassConstFetch(\PhpParser\Node\Stmt\ClassConst $classConst, \PHPStan\Reflection\ClassReflection $classReflection) : bool
|
||||
{
|
||||
$classLike = $classConst->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($classConst, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
foreach ($classReflection->getAncestors() as $ancestorClassReflection) {
|
||||
|
|
|
@ -73,14 +73,14 @@ final class ClassMethodManipulator
|
|||
if (!$this->nodeNameResolver->isName($classMethod, \Rector\Core\ValueObject\MethodName::CONSTRUCT)) {
|
||||
return \false;
|
||||
}
|
||||
$classLike = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
$class = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return \false;
|
||||
}
|
||||
if ($classMethod->isPrivate()) {
|
||||
return \true;
|
||||
}
|
||||
if ($classLike->isFinal()) {
|
||||
if ($class->isFinal()) {
|
||||
return \false;
|
||||
}
|
||||
return $classMethod->isProtected();
|
||||
|
|
|
@ -100,8 +100,10 @@ final class PropertyManipulator
|
|||
}
|
||||
}
|
||||
// has classLike $this->$variable call?
|
||||
/** @var ClassLike $classLike */
|
||||
$classLike = $propertyOrPromotedParam->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$classLike = $this->betterNodeFinder->findParentType($propertyOrPromotedParam, \PhpParser\Node\Stmt\ClassLike::class);
|
||||
if (!$classLike instanceof \PhpParser\Node\Stmt\ClassLike) {
|
||||
return \false;
|
||||
}
|
||||
return (bool) $this->betterNodeFinder->findFirst($classLike->stmts, function (\PhpParser\Node $node) : bool {
|
||||
if (!$node instanceof \PhpParser\Node\Expr\PropertyFetch) {
|
||||
return \false;
|
||||
|
|
|
@ -7,8 +7,8 @@ use PhpParser\Node\Const_;
|
|||
use PhpParser\Node\Expr\ClassConstFetch;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PHPStan\Type\TypeWithClassName;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
final class LocalConstantFinder
|
||||
{
|
||||
|
@ -20,14 +20,19 @@ final class LocalConstantFinder
|
|||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
private $nodeNameResolver;
|
||||
public function __construct(\Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver)
|
||||
/**
|
||||
* @var \Rector\Core\PhpParser\Node\BetterNodeFinder
|
||||
*/
|
||||
private $betterNodeFinder;
|
||||
public function __construct(\Rector\NodeTypeResolver\NodeTypeResolver $nodeTypeResolver, \Rector\NodeNameResolver\NodeNameResolver $nodeNameResolver, \Rector\Core\PhpParser\Node\BetterNodeFinder $betterNodeFinder)
|
||||
{
|
||||
$this->nodeTypeResolver = $nodeTypeResolver;
|
||||
$this->nodeNameResolver = $nodeNameResolver;
|
||||
$this->betterNodeFinder = $betterNodeFinder;
|
||||
}
|
||||
public function match(\PhpParser\Node\Expr\ClassConstFetch $classConstFetch) : ?\PhpParser\Node\Const_
|
||||
{
|
||||
$class = $classConstFetch->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($classConstFetch, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ use PhpParser\Node\Stmt\ClassMethod;
|
|||
use PHPStan\Type\TypeWithClassName;
|
||||
use Rector\Core\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\NodeNameResolver\NodeNameResolver;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\NodeTypeResolver;
|
||||
final class LocalMethodCallFinder
|
||||
{
|
||||
|
@ -36,7 +35,7 @@ final class LocalMethodCallFinder
|
|||
*/
|
||||
public function match(\PhpParser\Node\Stmt\ClassMethod $classMethod) : array
|
||||
{
|
||||
$class = $classMethod->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE);
|
||||
$class = $this->betterNodeFinder->findParentType($classMethod, \PhpParser\Node\Stmt\Class_::class);
|
||||
if (!$class instanceof \PhpParser\Node\Stmt\Class_) {
|
||||
return [];
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ abstract class AbstractRector extends \PhpParser\NodeVisitorAbstract implements
|
|||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private const ATTRIBUTES_TO_MIRROR = [\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE, \Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NAME, \Rector\NodeTypeResolver\Node\AttributeKey::METHOD_NODE, \Rector\NodeTypeResolver\Node\AttributeKey::USE_NODES, \Rector\NodeTypeResolver\Node\AttributeKey::SCOPE, \Rector\NodeTypeResolver\Node\AttributeKey::RESOLVED_NAME, \Rector\NodeTypeResolver\Node\AttributeKey::PARENT_NODE, \Rector\NodeTypeResolver\Node\AttributeKey::CURRENT_STATEMENT, \Rector\NodeTypeResolver\Node\AttributeKey::PREVIOUS_STATEMENT];
|
||||
private const ATTRIBUTES_TO_MIRROR = [\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NAME, \Rector\NodeTypeResolver\Node\AttributeKey::METHOD_NODE, \Rector\NodeTypeResolver\Node\AttributeKey::USE_NODES, \Rector\NodeTypeResolver\Node\AttributeKey::SCOPE, \Rector\NodeTypeResolver\Node\AttributeKey::RESOLVED_NAME, \Rector\NodeTypeResolver\Node\AttributeKey::PARENT_NODE, \Rector\NodeTypeResolver\Node\AttributeKey::CURRENT_STATEMENT, \Rector\NodeTypeResolver\Node\AttributeKey::PREVIOUS_STATEMENT];
|
||||
/**
|
||||
* @var \Rector\NodeNameResolver\NodeNameResolver
|
||||
*/
|
||||
|
|
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
|
@ -4,4 +4,4 @@
|
|||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a::getLoader();
|
||||
return ComposerAutoloaderInit459af300f88369828b2c5381ea17dddb::getLoader();
|
||||
|
|
1
vendor/composer/autoload_classmap.php
vendored
1
vendor/composer/autoload_classmap.php
vendored
|
@ -2415,6 +2415,7 @@ return array(
|
|||
'Rector\\Php74\\Rector\\Property\\TypedPropertyRector' => $baseDir . '/rules/Php74/Rector/Property/TypedPropertyRector.php',
|
||||
'Rector\\Php74\\Rector\\StaticCall\\ExportToReflectionFunctionRector' => $baseDir . '/rules/Php74/Rector/StaticCall/ExportToReflectionFunctionRector.php',
|
||||
'Rector\\Php74\\Tokenizer\\FollowedByCurlyBracketAnalyzer' => $baseDir . '/rules/Php74/Tokenizer/FollowedByCurlyBracketAnalyzer.php',
|
||||
'Rector\\Php74\\TypeAnalyzer\\PropertyUnionTypeResolver' => $baseDir . '/rules/Php74/TypeAnalyzer/PropertyUnionTypeResolver.php',
|
||||
'Rector\\Php80\\Contract\\StrStartWithMatchAndRefactorInterface' => $baseDir . '/rules/Php80/Contract/StrStartWithMatchAndRefactorInterface.php',
|
||||
'Rector\\Php80\\Enum\\MatchKind' => $baseDir . '/rules/Php80/Enum/MatchKind.php',
|
||||
'Rector\\Php80\\MatchAndRefactor\\StrStartsWithMatchAndRefactor\\StrncmpMatchAndRefactor' => $baseDir . '/rules/Php80/MatchAndRefactor/StrStartsWithMatchAndRefactor/StrncmpMatchAndRefactor.php',
|
||||
|
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a
|
||||
class ComposerAutoloaderInit459af300f88369828b2c5381ea17dddb
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
|
@ -22,15 +22,15 @@ class ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a
|
|||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInit459af300f88369828b2c5381ea17dddb', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit459af300f88369828b2c5381ea17dddb', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit031b58e784496a18655172bd4928ad8a::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit459af300f88369828b2c5381ea17dddb::getInitializer($loader));
|
||||
} else {
|
||||
$classMap = require __DIR__ . '/autoload_classmap.php';
|
||||
if ($classMap) {
|
||||
|
@ -42,19 +42,19 @@ class ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a
|
|||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit031b58e784496a18655172bd4928ad8a::$files;
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit459af300f88369828b2c5381ea17dddb::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequire031b58e784496a18655172bd4928ad8a($fileIdentifier, $file);
|
||||
composerRequire459af300f88369828b2c5381ea17dddb($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
|
||||
function composerRequire031b58e784496a18655172bd4928ad8a($fileIdentifier, $file)
|
||||
function composerRequire459af300f88369828b2c5381ea17dddb($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
require $file;
|
||||
|
|
9
vendor/composer/autoload_static.php
vendored
9
vendor/composer/autoload_static.php
vendored
|
@ -4,7 +4,7 @@
|
|||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInit031b58e784496a18655172bd4928ad8a
|
||||
class ComposerStaticInit459af300f88369828b2c5381ea17dddb
|
||||
{
|
||||
public static $files = array (
|
||||
'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
|
||||
|
@ -2745,6 +2745,7 @@ class ComposerStaticInit031b58e784496a18655172bd4928ad8a
|
|||
'Rector\\Php74\\Rector\\Property\\TypedPropertyRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/Property/TypedPropertyRector.php',
|
||||
'Rector\\Php74\\Rector\\StaticCall\\ExportToReflectionFunctionRector' => __DIR__ . '/../..' . '/rules/Php74/Rector/StaticCall/ExportToReflectionFunctionRector.php',
|
||||
'Rector\\Php74\\Tokenizer\\FollowedByCurlyBracketAnalyzer' => __DIR__ . '/../..' . '/rules/Php74/Tokenizer/FollowedByCurlyBracketAnalyzer.php',
|
||||
'Rector\\Php74\\TypeAnalyzer\\PropertyUnionTypeResolver' => __DIR__ . '/../..' . '/rules/Php74/TypeAnalyzer/PropertyUnionTypeResolver.php',
|
||||
'Rector\\Php80\\Contract\\StrStartWithMatchAndRefactorInterface' => __DIR__ . '/../..' . '/rules/Php80/Contract/StrStartWithMatchAndRefactorInterface.php',
|
||||
'Rector\\Php80\\Enum\\MatchKind' => __DIR__ . '/../..' . '/rules/Php80/Enum/MatchKind.php',
|
||||
'Rector\\Php80\\MatchAndRefactor\\StrStartsWithMatchAndRefactor\\StrncmpMatchAndRefactor' => __DIR__ . '/../..' . '/rules/Php80/MatchAndRefactor/StrStartsWithMatchAndRefactor/StrncmpMatchAndRefactor.php',
|
||||
|
@ -3522,9 +3523,9 @@ class ComposerStaticInit031b58e784496a18655172bd4928ad8a
|
|||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit031b58e784496a18655172bd4928ad8a::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit031b58e784496a18655172bd4928ad8a::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit031b58e784496a18655172bd4928ad8a::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit459af300f88369828b2c5381ea17dddb::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit459af300f88369828b2c5381ea17dddb::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit459af300f88369828b2c5381ea17dddb::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
|
802
vendor/composer/installed.json
vendored
802
vendor/composer/installed.json
vendored
File diff suppressed because it is too large
Load Diff
2
vendor/composer/installed.php
vendored
2
vendor/composer/installed.php
vendored
File diff suppressed because one or more lines are too long
|
@ -9,7 +9,7 @@ namespace Rector\RectorInstaller;
|
|||
*/
|
||||
final class GeneratedConfig
|
||||
{
|
||||
public const EXTENSIONS = array('rector/rector-cakephp' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-cakephp', 'relative_install_path' => '../../rector-cakephp', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.7'), 'rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.30'), 'rector/rector-laravel' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-laravel', 'relative_install_path' => '../../rector-laravel', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.11'), 'rector/rector-nette' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette', 'relative_install_path' => '../../rector-nette', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.46'), 'rector/rector-phpoffice' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpoffice', 'relative_install_path' => '../../rector-phpoffice', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.7'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.21'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.37'), 'ssch/typo3-rector' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/ssch/typo3-rector', 'relative_install_path' => '../../../ssch/typo3-rector', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'v0.11.30'));
|
||||
public const EXTENSIONS = array('rector/rector-cakephp' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-cakephp', 'relative_install_path' => '../../rector-cakephp', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.7'), 'rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.31'), 'rector/rector-laravel' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-laravel', 'relative_install_path' => '../../rector-laravel', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.11'), 'rector/rector-nette' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-nette', 'relative_install_path' => '../../rector-nette', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.46'), 'rector/rector-phpoffice' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpoffice', 'relative_install_path' => '../../rector-phpoffice', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.7'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.21'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => '0.11.37'), 'ssch/typo3-rector' => array('install_path' => '/home/runner/work/rector-src/rector-src/vendor/ssch/typo3-rector', 'relative_install_path' => '../../../ssch/typo3-rector', 'extra' => array('includes' => array(0 => 'config/config.php')), 'version' => 'v0.11.30'));
|
||||
private function __construct()
|
||||
{
|
||||
}
|
||||
|
|
|
@ -47,7 +47,6 @@ final class RepositoryAssignFactory
|
|||
}
|
||||
$classConstFetch = $this->nodeFactory->createClassConstReference($entityObjectType->getClassName());
|
||||
$methodCall = $this->nodeFactory->createMethodCall('entityManager', 'getRepository', [$classConstFetch]);
|
||||
$methodCall->setAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::CLASS_NODE, $repositoryClassName);
|
||||
return $this->nodeFactory->createPropertyAssignmentWithExpr('repository', $methodCall);
|
||||
}
|
||||
}
|
||||
|
|
10
vendor/scoper-autoload.php
vendored
10
vendor/scoper-autoload.php
vendored
|
@ -9,8 +9,8 @@ $loader = require_once __DIR__.'/autoload.php';
|
|||
if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) {
|
||||
spl_autoload_call('RectorPrefix20211106\AutoloadIncluder');
|
||||
}
|
||||
if (!class_exists('ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a', false) && !interface_exists('ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a', false) && !trait_exists('ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a', false)) {
|
||||
spl_autoload_call('RectorPrefix20211106\ComposerAutoloaderInit031b58e784496a18655172bd4928ad8a');
|
||||
if (!class_exists('ComposerAutoloaderInit459af300f88369828b2c5381ea17dddb', false) && !interface_exists('ComposerAutoloaderInit459af300f88369828b2c5381ea17dddb', false) && !trait_exists('ComposerAutoloaderInit459af300f88369828b2c5381ea17dddb', false)) {
|
||||
spl_autoload_call('RectorPrefix20211106\ComposerAutoloaderInit459af300f88369828b2c5381ea17dddb');
|
||||
}
|
||||
if (!class_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !interface_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !trait_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false)) {
|
||||
spl_autoload_call('RectorPrefix20211106\Helmich\TypoScriptParser\Parser\AST\Statement');
|
||||
|
@ -3306,9 +3306,9 @@ if (!function_exists('print_node')) {
|
|||
return \RectorPrefix20211106\print_node(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('composerRequire031b58e784496a18655172bd4928ad8a')) {
|
||||
function composerRequire031b58e784496a18655172bd4928ad8a() {
|
||||
return \RectorPrefix20211106\composerRequire031b58e784496a18655172bd4928ad8a(...func_get_args());
|
||||
if (!function_exists('composerRequire459af300f88369828b2c5381ea17dddb')) {
|
||||
function composerRequire459af300f88369828b2c5381ea17dddb() {
|
||||
return \RectorPrefix20211106\composerRequire459af300f88369828b2c5381ea17dddb(...func_get_args());
|
||||
}
|
||||
}
|
||||
if (!function_exists('parseArgs')) {
|
||||
|
|
55
vendor/symplify/astral/composer.json
vendored
55
vendor/symplify/astral/composer.json
vendored
|
@ -38,36 +38,35 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/smart-file-system": "<9.4.70",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/symplify-kernel": "<9.4.70",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1"
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
@ -27,36 +27,35 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
@ -32,35 +32,34 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/symplify-kernel": "<9.4.70",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
59
vendor/symplify/console-color-diff/composer.json
vendored
59
vendor/symplify/console-color-diff/composer.json
vendored
|
@ -29,36 +29,35 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
55
vendor/symplify/easy-testing/composer.json
vendored
55
vendor/symplify/easy-testing/composer.json
vendored
|
@ -35,34 +35,33 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
57
vendor/symplify/package-builder/composer.json
vendored
57
vendor/symplify/package-builder/composer.json
vendored
|
@ -32,35 +32,34 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
@ -18,37 +18,36 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/package-builder": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/package-builder": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
|
@ -29,36 +29,35 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/smart-file-system": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
55
vendor/symplify/skipper/composer.json
vendored
55
vendor/symplify/skipper/composer.json
vendored
|
@ -32,34 +32,33 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
61
vendor/symplify/smart-file-system/composer.json
vendored
61
vendor/symplify/smart-file-system/composer.json
vendored
|
@ -28,37 +28,36 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/package-builder": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/composer-json-manipulator": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/autowire-array-parameter": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/package-builder": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/symplify-kernel": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
53
vendor/symplify/symplify-kernel/composer.json
vendored
53
vendor/symplify/symplify-kernel/composer.json
vendored
|
@ -27,33 +27,32 @@
|
|||
}
|
||||
},
|
||||
"conflict": {
|
||||
"symplify\/astral": "<10.0.0-beta1",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta1",
|
||||
"symplify\/easy-testing": "<10.0.0-beta1",
|
||||
"symplify\/psr4-switcher": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta1",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta1",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta1",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta1",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta1",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta1",
|
||||
"symplify\/amnesia": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta1",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta1",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta1",
|
||||
"symplify\/skipper": "<10.0.0-beta1",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta1",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta1",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta1",
|
||||
"symplify\/config-transformer": "<10.0.0-beta1",
|
||||
"symplify\/easy-ci": "<10.0.0-beta1",
|
||||
"symplify\/coding-standard": "<10.0.0-beta1",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta1",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta1"
|
||||
"symplify\/astral": "<10.0.0-beta2",
|
||||
"symplify\/easy-coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-rules": "<10.0.0-beta2",
|
||||
"symplify\/easy-testing": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator-contracts": "<10.0.0-beta2",
|
||||
"symplify\/symfony-php-config": "<10.0.0-beta2",
|
||||
"symplify\/simple-php-doc-parser": "<10.0.0-beta2",
|
||||
"symplify\/php-config-printer": "<10.0.0-beta2",
|
||||
"symplify\/console-color-diff": "<10.0.0-beta2",
|
||||
"symplify\/markdown-diff": "<10.0.0-beta2",
|
||||
"symplify\/amnesia": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-extensions": "<10.0.0-beta2",
|
||||
"symplify\/rule-doc-generator": "<10.0.0-beta2",
|
||||
"symplify\/vendor-patches": "<10.0.0-beta2",
|
||||
"symplify\/skipper": "<10.0.0-beta2",
|
||||
"symplify\/symfony-static-dumper": "<10.0.0-beta2",
|
||||
"symplify\/git-wrapper": "<10.0.0-beta2",
|
||||
"symplify\/monorepo-builder": "<10.0.0-beta2",
|
||||
"symplify\/config-transformer": "<10.0.0-beta2",
|
||||
"symplify\/easy-ci": "<10.0.0-beta2",
|
||||
"symplify\/coding-standard": "<10.0.0-beta2",
|
||||
"symplify\/twig-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/latte-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/template-phpstan-compiler": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-latte-rules": "<10.0.0-beta2",
|
||||
"symplify\/phpstan-twig-rules": "<10.0.0-beta2"
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
|
|
Loading…
Reference in New Issue
Block a user