From d2547b241c1363aa0d0a4020ad0ed4aac4f93ffe Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Mon, 26 May 2025 08:23:22 +0700 Subject: [PATCH] [DowngradePhp80] Handle on trait on DowngradePropertyPromotionRector --- .../Fixture/on_trait.php.inc | 27 +++++++++++++++++++ .../DowngradePropertyPromotionRector.php | 9 ++++--- 2 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 rules-tests/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector/Fixture/on_trait.php.inc diff --git a/rules-tests/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector/Fixture/on_trait.php.inc b/rules-tests/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector/Fixture/on_trait.php.inc new file mode 100644 index 00000000..0538c4c0 --- /dev/null +++ b/rules-tests/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector/Fixture/on_trait.php.inc @@ -0,0 +1,27 @@ + +----- +value = $value; + } +} + +?> diff --git a/rules/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector.php b/rules/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector.php index c4013099..2879d3a3 100644 --- a/rules/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector.php +++ b/rules/DowngradePhp80/Rector/Class_/DowngradePropertyPromotionRector.php @@ -14,6 +14,7 @@ use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Expression; use PhpParser\Node\Stmt\Property; +use PhpParser\Node\Stmt\Trait_; use PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; @@ -75,11 +76,11 @@ public function __construct(float $value = 0.0) */ public function getNodeTypes(): array { - return [Class_::class]; + return [Class_::class, Trait_::class]; } /** - * @param Class_ $node + * @param Class_|Trait_ $node */ public function refactor(Node $node): ?Node { @@ -163,7 +164,7 @@ private function setParamAttrGroupAsComment(Param $param): void private function resolvePropertiesFromPromotedParams( ClassMethod $classMethod, array $promotedParams, - Class_ $class + Class_|Trait_ $class ): array { $properties = $this->createPropertiesFromParams($classMethod, $promotedParams); $class->stmts = array_merge($properties, $class->stmts); @@ -177,7 +178,7 @@ private function resolvePropertiesFromPromotedParams( */ private function addPropertyAssignsToConstructorClassMethod( array $properties, - Class_ $class, + Class_|Trait_ $class, array $oldComments ): void { $assigns = [];