Skip to content

Commit 86f57ee

Browse files
committed
make use of doc block updater
1 parent 8953c00 commit 86f57ee

File tree

4 files changed

+18
-5
lines changed

4 files changed

+18
-5
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"phpunit/phpunit": "^10.3",
1515
"rector/phpstan-rules": "^0.7",
1616
"rector/rector-generator": "^0.7.3",
17-
"rector/rector-src": "dev-main",
17+
"rector/rector-src": "dev-tv-narrow-abstract-10",
1818
"symplify/easy-ci": "^11.2",
1919
"symplify/easy-coding-standard": "^12.0",
2020
"symplify/phpstan-extensions": "^11.3",

rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use PhpParser\Node\Stmt\Property;
1515
use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode;
1616
use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode;
17+
use Rector\Comments\NodeDocBlock\DocBlockUpdater;
1718
use Rector\Core\Contract\Rector\ConfigurableRectorInterface;
1819
use Rector\Core\Rector\AbstractRector;
1920
use Rector\DowngradePhp80\ValueObject\DowngradeAttributeToAnnotation;
@@ -42,7 +43,8 @@ final class DowngradeAttributeToAnnotationRector extends AbstractRector implemen
4243
private bool $isDowngraded = false;
4344

4445
public function __construct(
45-
private readonly DoctrineAnnotationFactory $doctrineAnnotationFactory
46+
private readonly DoctrineAnnotationFactory $doctrineAnnotationFactory,
47+
private readonly DocBlockUpdater $docBlockUpdater,
4648
) {
4749
}
4850

@@ -123,6 +125,8 @@ public function refactor(Node $node): ?Node
123125
$phpDocInfo->addPhpDocTagNode(
124126
new PhpDocTagNode('@' . $attributeToAnnotation->getTag(), new GenericTagValueNode(''))
125127
);
128+
$this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node);
129+
126130
continue;
127131
}
128132

@@ -131,6 +135,7 @@ public function refactor(Node $node): ?Node
131135
$attributeToAnnotation->getTag()
132136
);
133137
$phpDocInfo->addTagValueNode($doctrineAnnotation);
138+
$this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($node);
134139
}
135140
}
136141

rules/DowngradePhp80/Rector/Enum_/DowngradeEnumToConstantListClassRector.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use PHPStan\Reflection\ClassReflection;
2020
use PHPStan\Reflection\ReflectionProvider;
2121
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
22+
use Rector\Comments\NodeDocBlock\DocBlockUpdater;
2223
use Rector\Core\Rector\AbstractRector;
2324
use Rector\DowngradePhp80\NodeAnalyzer\EnumAnalyzer;
2425
use Rector\NodeFactory\ClassFromEnumFactory;
@@ -34,6 +35,7 @@ public function __construct(
3435
private readonly ClassFromEnumFactory $classFromEnumFactory,
3536
private readonly ReflectionProvider $reflectionProvider,
3637
private readonly EnumAnalyzer $enumAnalyzer,
38+
private readonly DocBlockUpdater $docBlockUpdater,
3739
) {
3840
}
3941

@@ -81,7 +83,7 @@ public function refactor(Node $node): Class_|ClassMethod|null
8183
}
8284

8385
$hasChanged = false;
84-
$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node);
86+
$classMethodPhpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node);
8587

8688
foreach ($node->params as $param) {
8789
if ($param->type instanceof Name) {
@@ -110,7 +112,7 @@ public function refactor(Node $node): Class_|ClassMethod|null
110112

111113
$hasChanged = true;
112114

113-
$this->decorateParamDocType($classLikeReflection, $param, $phpDocInfo, $isNullable);
115+
$this->decorateParamDocType($classLikeReflection, $param, $classMethodPhpDocInfo, $isNullable, $node);
114116
}
115117

116118
if ($hasChanged) {
@@ -124,7 +126,8 @@ private function decorateParamDocType(
124126
ClassReflection $classReflection,
125127
Param $param,
126128
PhpDocInfo $phpDocInfo,
127-
bool $isNullable
129+
bool $isNullable,
130+
ClassMethod $classMethod
128131
): void {
129132
$constFetchNode = new ConstFetchNode('\\' . $classReflection->getName(), '*');
130133
$constTypeNode = new ConstTypeNode($constFetchNode);
@@ -134,6 +137,8 @@ private function decorateParamDocType(
134137

135138
$paramTagValueNode = new ParamTagValueNode($paramTypeNode, false, $paramName, '');
136139
$phpDocInfo->addTagValueNode($paramTagValueNode);
140+
141+
$this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($classMethod);
137142
}
138143

139144
private function refactorParamType(ClassReflection $classReflection, bool $isNullable, Param $param): void

rules/DowngradePhp81/Rector/Property/DowngradeReadonlyPropertyRector.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use PhpParser\Node\Stmt\Property;
1010
use PHPStan\PhpDocParser\Ast\PhpDoc\GenericTagValueNode;
1111
use PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode;
12+
use Rector\Comments\NodeDocBlock\DocBlockUpdater;
1213
use Rector\Core\Rector\AbstractRector;
1314
use Rector\Privatization\NodeManipulator\VisibilityManipulator;
1415
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
@@ -28,6 +29,7 @@ final class DowngradeReadonlyPropertyRector extends AbstractRector
2829

2930
public function __construct(
3031
private readonly VisibilityManipulator $visibilityManipulator,
32+
private readonly DocBlockUpdater $docBlockUpdater,
3133
) {
3234
}
3335

@@ -103,5 +105,6 @@ private function addPhpDocTag(Property $property): void
103105
}
104106

105107
$phpDocInfo->addPhpDocTagNode(new PhpDocTagNode('@' . self::TAGNAME, new GenericTagValueNode('')));
108+
$this->docBlockUpdater->updateRefactoredNodeWithPhpDocInfo($property);
106109
}
107110
}

0 commit comments

Comments
 (0)