From b97fe194b45a7915fd1509b9388315f49582cb2c Mon Sep 17 00:00:00 2001 From: Abdul Malik Ikhsan Date: Tue, 30 May 2023 06:37:11 +0700 Subject: [PATCH] [Php80] Remove parent attribute usage on ClassPropertyAssignToConstructorPromotionRector (#4022) --- .../PhpDocManipulator/PhpDocTypeChanger.php | 10 ++-------- ...ClassPropertyAssignToConstructorPromotionRector.php | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocTypeChanger.php b/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocTypeChanger.php index 5afc6962927..34787725722 100644 --- a/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocTypeChanger.php +++ b/packages/BetterPhpDocParser/PhpDocManipulator/PhpDocTypeChanger.php @@ -205,7 +205,7 @@ public function isAllowed(TypeNode $typeNode): bool return in_array((string) $typeNode, self::ALLOWED_IDENTIFIER_TYPENODE_TYPES, true); } - public function copyPropertyDocToParam(Property $property, Param $param): void + public function copyPropertyDocToParam(ClassMethod $classMethod, Property $property, Param $param): void { $phpDocInfo = $this->phpDocInfoFactory->createFromNode($property); if (! $phpDocInfo instanceof PhpDocInfo) { @@ -222,13 +222,7 @@ public function copyPropertyDocToParam(Property $property, Param $param): void return; } - $parentNode = $param->getAttribute(AttributeKey::PARENT_NODE); $paramVarName = $this->nodeNameResolver->getName($param->var); - - if (! $parentNode instanceof ClassMethod) { - return; - } - if (! $this->isAllowed($varTagValueNode->type)) { return; } @@ -240,7 +234,7 @@ public function copyPropertyDocToParam(Property $property, Param $param): void $phpDocInfo->removeByType(VarTagValueNode::class); $param->setAttribute(AttributeKey::PHP_DOC_INFO, $phpDocInfo); - $phpDocInfo = $parentNode->getAttribute(AttributeKey::PHP_DOC_INFO); + $phpDocInfo = $classMethod->getAttribute(AttributeKey::PHP_DOC_INFO); $paramType = $this->staticTypeMapper->mapPHPStanPhpDocTypeToPHPStanType($varTagValueNode, $property); $this->changeParamType($phpDocInfo, $paramType, $param, $paramVarName); diff --git a/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php b/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php index 8495f1903b4..fc4792291b5 100644 --- a/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php +++ b/rules/Php80/Rector/Class_/ClassPropertyAssignToConstructorPromotionRector.php @@ -175,7 +175,7 @@ public function refactor(Node $node): ?Node $param->attrGroups = array_merge($param->attrGroups, $property->attrGroups); $this->processNullableType($property, $param); - $this->phpDocTypeChanger->copyPropertyDocToParam($property, $param); + $this->phpDocTypeChanger->copyPropertyDocToParam($constructClassMethod, $property, $param); } return $node;