Skip to content

Commit 7d2f984

Browse files
committed
Updated Rector to commit b94486c7b2663616901e4fd67047c963af9bd400
rectorphp/rector-src@b94486c Simplify name scope factory (#6091)
1 parent e6124b8 commit 7d2f984

4 files changed

Lines changed: 6 additions & 79 deletions

File tree

src/Application/VersionResolver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ final class VersionResolver
1919
* @api
2020
* @var string
2121
*/
22-
public const PACKAGE_VERSION = '554cad981917c1d402601c9fb158e3be9a66eeb1';
22+
public const PACKAGE_VERSION = 'b94486c7b2663616901e4fd67047c963af9bd400';
2323
/**
2424
* @api
2525
* @var string
2626
*/
27-
public const RELEASE_DATE = '2024-06-30 23:09:24';
27+
public const RELEASE_DATE = '2024-06-30 23:51:05';
2828
/**
2929
* @var int
3030
*/

src/BetterPhpDocParser/PhpDocInfo/PhpDocInfo.php

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagValueNode;
1616
use PHPStan\PhpDocParser\Ast\PhpDoc\PropertyTagValueNode;
1717
use PHPStan\PhpDocParser\Ast\PhpDoc\ReturnTagValueNode;
18-
use PHPStan\PhpDocParser\Ast\PhpDoc\TemplateTagValueNode;
1918
use PHPStan\PhpDocParser\Ast\PhpDoc\VarTagValueNode;
2019
use PHPStan\PhpDocParser\Ast\Type\ConstTypeNode;
2120
use PHPStan\PhpDocParser\Ast\Type\IdentifierTypeNode;
@@ -354,13 +353,6 @@ public function getTemplateNames() : array
354353
}
355354
return $templateNames;
356355
}
357-
/**
358-
* @return TemplateTagValueNode[]
359-
*/
360-
public function getTemplateTagValueNodes() : array
361-
{
362-
return $this->phpDocNode->getTemplateTagValues();
363-
}
364356
public function makeMultiLined() : void
365357
{
366358
$this->isSingleLine = \false;

src/DependencyInjection/LazyContainerFactory.php

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
declare (strict_types=1);
44
namespace Rector\DependencyInjection;
55

6+
use Rector\PHPStanStaticTypeMapper\TypeMapper\StaticTypeMapper;
67
use RectorPrefix202406\Doctrine\Inflector\Inflector;
78
use RectorPrefix202406\Doctrine\Inflector\Rules\English\InflectorFactory;
89
use RectorPrefix202406\Illuminate\Container\Container;
@@ -21,7 +22,6 @@
2122
use Rector\Application\Provider\CurrentFileProvider;
2223
use Rector\BetterPhpDocParser\Contract\BasePhpDocNodeVisitorInterface;
2324
use Rector\BetterPhpDocParser\Contract\PhpDocParser\PhpDocNodeDecoratorInterface;
24-
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
2525
use Rector\BetterPhpDocParser\PhpDocNodeMapper;
2626
use Rector\BetterPhpDocParser\PhpDocNodeVisitor\ArrayTypePhpDocNodeVisitor;
2727
use Rector\BetterPhpDocParser\PhpDocNodeVisitor\CallableTypePhpDocNodeVisitor;
@@ -164,7 +164,6 @@
164164
use Rector\StaticTypeMapper\Contract\PhpDocParser\PhpDocTypeMapperInterface;
165165
use Rector\StaticTypeMapper\Contract\PhpParser\PhpParserNodeMapperInterface;
166166
use Rector\StaticTypeMapper\Mapper\PhpParserNodeMapper;
167-
use Rector\StaticTypeMapper\Naming\NameScopeFactory;
168167
use Rector\StaticTypeMapper\PhpDoc\PhpDocTypeMapper;
169168
use Rector\StaticTypeMapper\PhpDocParser\IdentifierTypeMapper;
170169
use Rector\StaticTypeMapper\PhpDocParser\IntersectionTypeMapper;
@@ -178,7 +177,6 @@
178177
use Rector\StaticTypeMapper\PhpParser\NullableTypeNodeMapper;
179178
use Rector\StaticTypeMapper\PhpParser\StringNodeMapper;
180179
use Rector\StaticTypeMapper\PhpParser\UnionTypeNodeMapper;
181-
use Rector\StaticTypeMapper\StaticTypeMapper;
182180
use RectorPrefix202406\Symfony\Component\Console\Application;
183181
use RectorPrefix202406\Symfony\Component\Console\Command\Command;
184182
use RectorPrefix202406\Symfony\Component\Console\Style\SymfonyStyle;
@@ -212,7 +210,7 @@ final class LazyContainerFactory
212210
/**
213211
* @var array<class-string<TypeMapperInterface>>
214212
*/
215-
private const TYPE_MAPPER_CLASSES = [AccessoryLiteralStringTypeMapper::class, AccessoryNonEmptyStringTypeMapper::class, AccessoryNonFalsyStringTypeMapper::class, AccessoryNumericStringTypeMapper::class, ArrayTypeMapper::class, BooleanTypeMapper::class, CallableTypeMapper::class, ClassStringTypeMapper::class, ClosureTypeMapper::class, ConditionalTypeForParameterMapper::class, ConditionalTypeMapper::class, FloatTypeMapper::class, GenericClassStringTypeMapper::class, HasMethodTypeMapper::class, HasOffsetTypeMapper::class, HasOffsetValueTypeTypeMapper::class, HasPropertyTypeMapper::class, IntegerTypeMapper::class, \Rector\PHPStanStaticTypeMapper\TypeMapper\IntersectionTypeMapper::class, IterableTypeMapper::class, MixedTypeMapper::class, NeverTypeMapper::class, NonEmptyArrayTypeMapper::class, NullTypeMapper::class, ObjectTypeMapper::class, ObjectWithoutClassTypeMapper::class, OversizedArrayTypeMapper::class, ParentStaticTypeMapper::class, ResourceTypeMapper::class, SelfObjectTypeMapper::class, \Rector\PHPStanStaticTypeMapper\TypeMapper\StaticTypeMapper::class, StrictMixedTypeMapper::class, StringTypeMapper::class, ThisTypeMapper::class, TypeWithClassNameTypeMapper::class, \Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper::class, VoidTypeMapper::class];
213+
private const TYPE_MAPPER_CLASSES = [AccessoryLiteralStringTypeMapper::class, AccessoryNonEmptyStringTypeMapper::class, AccessoryNonFalsyStringTypeMapper::class, AccessoryNumericStringTypeMapper::class, ArrayTypeMapper::class, BooleanTypeMapper::class, CallableTypeMapper::class, ClassStringTypeMapper::class, ClosureTypeMapper::class, ConditionalTypeForParameterMapper::class, ConditionalTypeMapper::class, FloatTypeMapper::class, GenericClassStringTypeMapper::class, HasMethodTypeMapper::class, HasOffsetTypeMapper::class, HasOffsetValueTypeTypeMapper::class, HasPropertyTypeMapper::class, IntegerTypeMapper::class, \Rector\PHPStanStaticTypeMapper\TypeMapper\IntersectionTypeMapper::class, IterableTypeMapper::class, MixedTypeMapper::class, NeverTypeMapper::class, NonEmptyArrayTypeMapper::class, NullTypeMapper::class, ObjectTypeMapper::class, ObjectWithoutClassTypeMapper::class, OversizedArrayTypeMapper::class, ParentStaticTypeMapper::class, ResourceTypeMapper::class, SelfObjectTypeMapper::class, StaticTypeMapper::class, StrictMixedTypeMapper::class, StringTypeMapper::class, ThisTypeMapper::class, TypeWithClassNameTypeMapper::class, \Rector\PHPStanStaticTypeMapper\TypeMapper\UnionTypeMapper::class, VoidTypeMapper::class];
216214
/**
217215
* @var array<class-string<PhpDocNodeDecoratorInterface>>
218216
*/
@@ -349,9 +347,6 @@ public function create() : RectorConfig
349347
$annotationToAttributeMapper = $container->make(AnnotationToAttributeMapper::class);
350348
$arrayItemNodeAnnotationToAttributeMapper->autowire($annotationToAttributeMapper);
351349
});
352-
$rectorConfig->afterResolving(NameScopeFactory::class, static function (NameScopeFactory $nameScopeFactory, Container $container) : void {
353-
$nameScopeFactory->autowire($container->make(PhpDocInfoFactory::class), $container->make(StaticTypeMapper::class));
354-
});
355350
$rectorConfig->afterResolving(PlainValueParser::class, static function (PlainValueParser $plainValueParser, Container $container) : void {
356351
$plainValueParser->autowire($container->make(StaticDoctrineAnnotationParser::class), $container->make(ArrayParser::class));
357352
});

src/StaticTypeMapper/Naming/NameScopeFactory.php

Lines changed: 2 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,14 @@
44
namespace Rector\StaticTypeMapper\Naming;
55

66
use PhpParser\Node;
7-
use PhpParser\Node\Stmt\ClassLike;
87
use PhpParser\Node\Stmt\GroupUse;
98
use PhpParser\Node\Stmt\Use_;
109
use PhpParser\Node\Stmt\UseUse;
1110
use PHPStan\Analyser\NameScope;
1211
use PHPStan\Analyser\Scope;
1312
use PHPStan\Reflection\ClassReflection;
14-
use PHPStan\Type\Generic\TemplateTypeMap;
15-
use PHPStan\Type\Type;
16-
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
1713
use Rector\Naming\Naming\UseImportsResolver;
1814
use Rector\NodeTypeResolver\Node\AttributeKey;
19-
use Rector\PhpParser\AstResolver;
20-
use Rector\Reflection\ReflectionResolver;
21-
use Rector\StaticTypeMapper\StaticTypeMapper;
2215
/**
2316
* @see https://github.com/phpstan/phpstan-src/blob/8376548f76e2c845ae047e3010e873015b796818/src/Analyser/NameScope.php#L32
2417
*/
@@ -29,35 +22,9 @@ final class NameScopeFactory
2922
* @var \Rector\Naming\Naming\UseImportsResolver
3023
*/
3124
private $useImportsResolver;
32-
/**
33-
* @readonly
34-
* @var \Rector\PhpParser\AstResolver
35-
*/
36-
private $astResolver;
37-
/**
38-
* @readonly
39-
* @var \Rector\Reflection\ReflectionResolver
40-
*/
41-
private $reflectionResolver;
42-
/**
43-
* @var \Rector\StaticTypeMapper\StaticTypeMapper
44-
*/
45-
private $staticTypeMapper;
46-
/**
47-
* @var \Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory
48-
*/
49-
private $phpDocInfoFactory;
50-
public function __construct(UseImportsResolver $useImportsResolver, AstResolver $astResolver, ReflectionResolver $reflectionResolver)
25+
public function __construct(UseImportsResolver $useImportsResolver)
5126
{
5227
$this->useImportsResolver = $useImportsResolver;
53-
$this->astResolver = $astResolver;
54-
$this->reflectionResolver = $reflectionResolver;
55-
}
56-
// This is needed to avoid circular references
57-
public function autowire(PhpDocInfoFactory $phpDocInfoFactory, StaticTypeMapper $staticTypeMapper) : void
58-
{
59-
$this->phpDocInfoFactory = $phpDocInfoFactory;
60-
$this->staticTypeMapper = $staticTypeMapper;
6128
}
6229
public function createNameScopeFromNodeWithoutTemplateTypes(Node $node) : NameScope
6330
{
@@ -76,10 +43,9 @@ public function createNameScopeFromNodeWithoutTemplateTypes(Node $node) : NameSc
7643
public function createNameScopeFromNode(Node $node) : NameScope
7744
{
7845
$nameScope = $this->createNameScopeFromNodeWithoutTemplateTypes($node);
79-
$templateTypeMap = $this->templateTemplateTypeMap($node);
8046
/** @var non-empty-string|null $namespace */
8147
$namespace = $nameScope->getNamespace();
82-
return new NameScope($namespace, $nameScope->getUses(), $nameScope->getClassName(), null, $templateTypeMap);
48+
return new NameScope($namespace, $nameScope->getUses(), $nameScope->getClassName(), null, null);
8349
}
8450
/**
8551
* @param array<Use_|GroupUse> $useNodes
@@ -100,30 +66,4 @@ private function resolveUseNamesByAlias(array $useNodes) : array
10066
}
10167
return $useNamesByAlias;
10268
}
103-
private function templateTemplateTypeMap(Node $node) : TemplateTypeMap
104-
{
105-
$nodeTemplateTypes = $this->resolveTemplateTypesFromNode($node);
106-
$classTemplateTypes = [];
107-
$classReflection = $this->reflectionResolver->resolveClassReflection($node);
108-
if ($classReflection instanceof ClassReflection) {
109-
$classLike = $this->astResolver->resolveClassFromClassReflection($classReflection);
110-
if ($classLike instanceof ClassLike) {
111-
$classTemplateTypes = $this->resolveTemplateTypesFromNode($classLike);
112-
}
113-
}
114-
$templateTypes = \array_merge($nodeTemplateTypes, $classTemplateTypes);
115-
return new TemplateTypeMap($templateTypes);
116-
}
117-
/**
118-
* @return Type[]
119-
*/
120-
private function resolveTemplateTypesFromNode(Node $node) : array
121-
{
122-
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node);
123-
$templateTypes = [];
124-
foreach ($phpDocInfo->getTemplateTagValueNodes() as $templateTagValueNode) {
125-
$templateTypes[$templateTagValueNode->name] = $this->staticTypeMapper->mapPHPStanPhpDocTypeToPHPStanType($templateTagValueNode, $node);
126-
}
127-
return $templateTypes;
128-
}
12969
}

0 commit comments

Comments
 (0)