Skip to content

Commit 850d154

Browse files
committed
Updated Rector to commit 3a1f8735a8f95abf7050673615909d3fd86c31f0
rectorphp/rector-src@3a1f873 [AutoImport] Fix empty uses on auto import + rename class on no namespaced file (#6935)
1 parent ee85407 commit 850d154

9 files changed

Lines changed: 93 additions & 8 deletions

File tree

rules/CodingStyle/Application/UseImportsAdder.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ public function addImportsToStmts(FileWithoutNamespace $fileWithoutNamespace, ar
5151
if ($newUses === []) {
5252
return [$fileWithoutNamespace];
5353
}
54+
$stmts = \array_values(\array_filter($stmts, static function (Stmt $stmt) : bool {
55+
if (!$stmt instanceof Use_) {
56+
return \true;
57+
}
58+
return $stmt->uses !== [];
59+
}));
5460
// place after declare strict_types
5561
foreach ($stmts as $key => $stmt) {
5662
// maybe just added a space

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 = '33f87d7b56cc5d1aa67a4402f75b9aacbde2aaff';
22+
public const PACKAGE_VERSION = '3a1f8735a8f95abf7050673615909d3fd86c31f0';
2323
/**
2424
* @api
2525
* @var string
2626
*/
27-
public const RELEASE_DATE = '2025-05-26 20:11:16';
27+
public const RELEASE_DATE = '2025-05-27 05:55:00';
2828
/**
2929
* @var int
3030
*/

vendor/composer/autoload_classmap.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1452,6 +1452,7 @@
14521452
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\NarrowParamUnionToCollectionRector' => $vendorDir . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/NarrowParamUnionToCollectionRector.php',
14531453
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\NarrowReturnUnionToCollectionRector' => $vendorDir . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/NarrowReturnUnionToCollectionRector.php',
14541454
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\RemoveNewArrayCollectionOutsideConstructorRector' => $vendorDir . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/RemoveNewArrayCollectionOutsideConstructorRector.php',
1455+
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\RemoveNullFromNullableCollectionTypeRector' => $vendorDir . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/RemoveNullFromNullableCollectionTypeRector.php',
14551456
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\ReturnArrayToNewArrayCollectionRector' => $vendorDir . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/ReturnArrayToNewArrayCollectionRector.php',
14561457
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\ReturnCollectionDocblockRector' => $vendorDir . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/ReturnCollectionDocblockRector.php',
14571458
'Rector\\Doctrine\\TypedCollections\\Rector\\Class_\\CompleteParamDocblockFromSetterToCollectionRector' => $vendorDir . '/rector/rector-doctrine/rules/TypedCollections/Rector/Class_/CompleteParamDocblockFromSetterToCollectionRector.php',

vendor/composer/autoload_static.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1671,6 +1671,7 @@ class ComposerStaticInit912e02b74e97bb7d91c242d9973e0c44
16711671
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\NarrowParamUnionToCollectionRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/NarrowParamUnionToCollectionRector.php',
16721672
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\NarrowReturnUnionToCollectionRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/NarrowReturnUnionToCollectionRector.php',
16731673
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\RemoveNewArrayCollectionOutsideConstructorRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/RemoveNewArrayCollectionOutsideConstructorRector.php',
1674+
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\RemoveNullFromNullableCollectionTypeRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/RemoveNullFromNullableCollectionTypeRector.php',
16741675
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\ReturnArrayToNewArrayCollectionRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/ReturnArrayToNewArrayCollectionRector.php',
16751676
'Rector\\Doctrine\\TypedCollections\\Rector\\ClassMethod\\ReturnCollectionDocblockRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/TypedCollections/Rector/ClassMethod/ReturnCollectionDocblockRector.php',
16761677
'Rector\\Doctrine\\TypedCollections\\Rector\\Class_\\CompleteParamDocblockFromSetterToCollectionRector' => __DIR__ . '/..' . '/rector/rector-doctrine/rules/TypedCollections/Rector/Class_/CompleteParamDocblockFromSetterToCollectionRector.php',

vendor/composer/installed.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1687,12 +1687,12 @@
16871687
"source": {
16881688
"type": "git",
16891689
"url": "https:\/\/github.com\/rectorphp\/rector-doctrine.git",
1690-
"reference": "a9e6c4dd8cc4f640238ed215f9193f33acceda31"
1690+
"reference": "3c8fa9b420012353e202849f02ccd042e1284213"
16911691
},
16921692
"dist": {
16931693
"type": "zip",
1694-
"url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/a9e6c4dd8cc4f640238ed215f9193f33acceda31",
1695-
"reference": "a9e6c4dd8cc4f640238ed215f9193f33acceda31",
1694+
"url": "https:\/\/api.github.com\/repos\/rectorphp\/rector-doctrine\/zipball\/3c8fa9b420012353e202849f02ccd042e1284213",
1695+
"reference": "3c8fa9b420012353e202849f02ccd042e1284213",
16961696
"shasum": ""
16971697
},
16981698
"require": {
@@ -1715,7 +1715,7 @@
17151715
"tomasvotruba\/class-leak": "^2.0",
17161716
"tracy\/tracy": "^2.10"
17171717
},
1718-
"time": "2025-05-24T16:04:59+00:00",
1718+
"time": "2025-05-26T15:43:50+00:00",
17191719
"default-branch": true,
17201720
"type": "rector-extension",
17211721
"extra": {

vendor/composer/installed.php

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

vendor/rector/extension-installer/src/GeneratedConfig.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*/
1010
final class GeneratedConfig
1111
{
12-
public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main a9e6c4d'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 22ce946'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main b430be2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 3786ceb'));
12+
public const EXTENSIONS = array('rector/rector-doctrine' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-doctrine', 'relative_install_path' => '../../rector-doctrine', 'extra' => NULL, 'version' => 'dev-main 3c8fa9b'), 'rector/rector-downgrade-php' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-downgrade-php', 'relative_install_path' => '../../rector-downgrade-php', 'extra' => NULL, 'version' => 'dev-main 22ce946'), 'rector/rector-phpunit' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-phpunit', 'relative_install_path' => '../../rector-phpunit', 'extra' => NULL, 'version' => 'dev-main b430be2'), 'rector/rector-symfony' => array('install_path' => '/home/runner/work/rector-src/rector-src/rector-build/vendor/rector/rector-symfony', 'relative_install_path' => '../../rector-symfony', 'extra' => NULL, 'version' => 'dev-main 3786ceb'));
1313
private function __construct()
1414
{
1515
}

vendor/rector/rector-doctrine/config/sets/typed-collections.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
use Rector\Doctrine\TypedCollections\Rector\ClassMethod\NarrowParamUnionToCollectionRector;
1717
use Rector\Doctrine\TypedCollections\Rector\ClassMethod\NarrowReturnUnionToCollectionRector;
1818
use Rector\Doctrine\TypedCollections\Rector\ClassMethod\RemoveNewArrayCollectionOutsideConstructorRector;
19+
use Rector\Doctrine\TypedCollections\Rector\ClassMethod\RemoveNullFromNullableCollectionTypeRector;
1920
use Rector\Doctrine\TypedCollections\Rector\ClassMethod\ReturnArrayToNewArrayCollectionRector;
2021
use Rector\Doctrine\TypedCollections\Rector\ClassMethod\ReturnCollectionDocblockRector;
2122
use Rector\Doctrine\TypedCollections\Rector\Empty_\EmptyOnCollectionToIsEmptyCallRector;
@@ -45,6 +46,7 @@
4546
CollectionGetterNativeTypeRector::class,
4647
CollectionParamTypeSetterToCollectionPropertyRector::class,
4748
TypedPropertyFromToManyRelationTypeRector::class,
49+
RemoveNullFromNullableCollectionTypeRector::class,
4850
// docblocks
4951
DefaultCollectionKeyRector::class,
5052
NarrowArrayCollectionToCollectionRector::class,
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?php
2+
3+
declare (strict_types=1);
4+
namespace Rector\Doctrine\TypedCollections\Rector\ClassMethod;
5+
6+
use PhpParser\Node;
7+
use PhpParser\Node\Name\FullyQualified;
8+
use PhpParser\Node\NullableType;
9+
use PhpParser\Node\Stmt\ClassMethod;
10+
use Rector\Doctrine\Enum\DoctrineClass;
11+
use Rector\Rector\AbstractRector;
12+
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
13+
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
14+
/**
15+
* @see \Rector\Doctrine\Tests\TypedCollections\Rector\ClassMethod\RemoveNullFromNullableCollectionTypeRector\RemoveNullFromNullableCollectionTypeRectorTest
16+
*/
17+
final class RemoveNullFromNullableCollectionTypeRector extends AbstractRector
18+
{
19+
public function getRuleDefinition() : RuleDefinition
20+
{
21+
return new RuleDefinition('Remove null from a nullable Collection, as empty ArrayCollection is preferred instead to keep property type strict and always a collection', [new CodeSample(<<<'CODE_SAMPLE'
22+
use Doctrine\Common\Collections\Collection;
23+
24+
final class SomeClass
25+
{
26+
private $items;
27+
28+
public function setItems(?Collection $items): void
29+
{
30+
$this->items = $items;
31+
}
32+
}
33+
CODE_SAMPLE
34+
, <<<'CODE_SAMPLE'
35+
use Doctrine\Common\Collections\Collection;
36+
37+
final class SomeClass
38+
{
39+
private $items;
40+
41+
public function setItems(Collection $items): void
42+
{
43+
$this->items = $items;
44+
}
45+
}
46+
CODE_SAMPLE
47+
)]);
48+
}
49+
public function getNodeTypes() : array
50+
{
51+
return [ClassMethod::class];
52+
}
53+
/**
54+
* @param ClassMethod $node
55+
*/
56+
public function refactor(Node $node) : ?\PhpParser\Node\Stmt\ClassMethod
57+
{
58+
$hasChanged = \false;
59+
foreach ($node->params as $param) {
60+
if (!$param->type instanceof NullableType) {
61+
continue;
62+
}
63+
$realType = $param->type->type;
64+
if (!$this->isName($realType, DoctrineClass::COLLECTION)) {
65+
continue;
66+
}
67+
$param->type = new FullyQualified(DoctrineClass::COLLECTION);
68+
$hasChanged = \true;
69+
}
70+
if ($hasChanged) {
71+
return $node;
72+
}
73+
return null;
74+
}
75+
}

0 commit comments

Comments
 (0)