Updated Rector to commit 3f1ccb3ea131997a435fc2211620e968c6732220

3f1ccb3ea1  Support @immutable phpdoc in RestoreDefaultNullToNullableTypePropertyRector (#5795)
This commit is contained in:
Tomas Votruba 2024-04-03 11:21:35 +00:00
parent d4fd813b33
commit 77aab2e2a3
4 changed files with 24 additions and 13 deletions

View File

@ -62,7 +62,7 @@ CODE_SAMPLE
*/ */
public function refactor(Node $node) : ?Node public function refactor(Node $node) : ?Node
{ {
if ($node->isReadonly()) { if ($this->isReadonlyClass($node)) {
return null; return null;
} }
$hasChanged = \false; $hasChanged = \false;
@ -95,7 +95,7 @@ CODE_SAMPLE
if ($onlyProperty->default instanceof Expr) { if ($onlyProperty->default instanceof Expr) {
return \true; return \true;
} }
if ($this->isReadonly($property)) { if ($this->isReadonlyProperty($property)) {
return \true; return \true;
} }
if (!$this->nodeTypeResolver->isNullableType($property)) { if (!$this->nodeTypeResolver->isNullableType($property)) {
@ -105,7 +105,7 @@ CODE_SAMPLE
$propertyName = $this->getName($property); $propertyName = $this->getName($property);
return $this->constructorAssignDetector->isPropertyAssigned($class, $propertyName); return $this->constructorAssignDetector->isPropertyAssigned($class, $propertyName);
} }
private function isReadonly(Property $property) : bool private function isReadonlyProperty(Property $property) : bool
{ {
// native readonly // native readonly
if ($property->isReadonly()) { if ($property->isReadonly()) {
@ -116,4 +116,15 @@ CODE_SAMPLE
$tags = $phpDocInfo->getTagsByName('@readonly'); $tags = $phpDocInfo->getTagsByName('@readonly');
return $tags !== []; return $tags !== [];
} }
private function isReadonlyClass(Class_ $class) : bool
{
// native readonly
if ($class->isReadonly()) {
return \true;
}
// @immutable annotation
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($class);
$tags = $phpDocInfo->getTagsByName('@immutable');
return $tags !== [];
}
} }

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api * @api
* @var string * @var string
*/ */
public const PACKAGE_VERSION = 'f889e416d94cbfcf3734bb2fd4daf678aa11f8a9'; public const PACKAGE_VERSION = '3f1ccb3ea131997a435fc2211620e968c6732220';
/** /**
* @api * @api
* @var string * @var string
*/ */
public const RELEASE_DATE = '2024-04-03 07:03:17'; public const RELEASE_DATE = '2024-04-03 18:19:17';
/** /**
* @var int * @var int
*/ */

View File

@ -2450,17 +2450,17 @@
}, },
{ {
"name": "symfony\/service-contracts", "name": "symfony\/service-contracts",
"version": "v3.4.1", "version": "v3.4.2",
"version_normalized": "3.4.1.0", "version_normalized": "3.4.2.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https:\/\/github.com\/symfony\/service-contracts.git", "url": "https:\/\/github.com\/symfony\/service-contracts.git",
"reference": "fe07cbc8d837f60caf7018068e350cc5163681a0" "reference": "11bbf19a0fb7b36345861e85c5768844c552906e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https:\/\/api.github.com\/repos\/symfony\/service-contracts\/zipball\/fe07cbc8d837f60caf7018068e350cc5163681a0", "url": "https:\/\/api.github.com\/repos\/symfony\/service-contracts\/zipball\/11bbf19a0fb7b36345861e85c5768844c552906e",
"reference": "fe07cbc8d837f60caf7018068e350cc5163681a0", "reference": "11bbf19a0fb7b36345861e85c5768844c552906e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2470,7 +2470,7 @@
"conflict": { "conflict": {
"ext-psr": "<1.1|>=2" "ext-psr": "<1.1|>=2"
}, },
"time": "2023-12-26T14:02:43+00:00", "time": "2023-12-19T21:51:00+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@ -2515,7 +2515,7 @@
"standards" "standards"
], ],
"support": { "support": {
"source": "https:\/\/github.com\/symfony\/service-contracts\/tree\/v3.4.1" "source": "https:\/\/github.com\/symfony\/service-contracts\/tree\/v3.4.2"
}, },
"funding": [ "funding": [
{ {

File diff suppressed because one or more lines are too long