diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector/Fixture/skip_empty_iterable_value_type.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector/Fixture/skip_empty_iterable_value_type.php.inc new file mode 100644 index 00000000000..bdfd6bc198b --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/Class_/ClassMethodArrayDocblockParamFromLocalCallsRector/Fixture/skip_empty_iterable_value_type.php.inc @@ -0,0 +1,18 @@ +someCall($value); + } + + private function someCall(array $value) + { + } +} diff --git a/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php b/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php index a74c46e0096..38b913e9378 100644 --- a/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php +++ b/rules/TypeDeclarationDocblocks/NodeDocblockTypeDecorator.php @@ -45,6 +45,11 @@ public function decorateGenericIterableParamType( $normalizedType = $this->typeNormalizer->generalizeConstantTypes($type); $typeNode = $this->createTypeNode($normalizedType); + // no value iterable type + if ($typeNode instanceof IdentifierTypeNode) { + return false; + } + $paramTagValueNode = new ParamTagValueNode($typeNode, false, '$' . $parameterName, '', false); $this->addTagValueNodeAndUpdatePhpDocInfo($phpDocInfo, $paramTagValueNode, $classMethod); @@ -64,6 +69,11 @@ public function decorateGenericIterableReturnType( return false; } + // no value iterable type + if ($typeNode instanceof IdentifierTypeNode) { + return false; + } + $returnTagValueNode = new ReturnTagValueNode($typeNode, ''); $this->addTagValueNodeAndUpdatePhpDocInfo($classMethodPhpDocInfo, $returnTagValueNode, $classMethod); @@ -80,6 +90,11 @@ public function decorateGenericIterableVarType(Type $type, PhpDocInfo $phpDocInf return false; } + // no value iterable type + if ($typeNode instanceof IdentifierTypeNode) { + return false; + } + $varTagValueNode = new VarTagValueNode($typeNode, '', ''); $this->addTagValueNodeAndUpdatePhpDocInfo($phpDocInfo, $varTagValueNode, $property);