From 34e1a8d46588bcaba90b419214f2318b367ff471 Mon Sep 17 00:00:00 2001 From: Joseph Bielawski Date: Thu, 4 Jul 2019 12:33:18 +0200 Subject: [PATCH] [Bugfix] PHPDoc type-hint `resource` should not be used as PHP type-hint --- .../FunctionLike/ParamTypeDeclarationRector.php | 7 +++++++ .../Fixture/resource.php.inc | 13 +++++++++++++ .../ParamTypeDeclarationRectorTest.php | 1 + 3 files changed, 21 insertions(+) create mode 100644 packages/TypeDeclaration/tests/Rector/FunctionLike/ParamTypeDeclarationRector/Fixture/resource.php.inc diff --git a/packages/TypeDeclaration/src/Rector/FunctionLike/ParamTypeDeclarationRector.php b/packages/TypeDeclaration/src/Rector/FunctionLike/ParamTypeDeclarationRector.php index dffd9bd7553b..22fee31d74f5 100644 --- a/packages/TypeDeclaration/src/Rector/FunctionLike/ParamTypeDeclarationRector.php +++ b/packages/TypeDeclaration/src/Rector/FunctionLike/ParamTypeDeclarationRector.php @@ -151,6 +151,13 @@ public function refactor(Node $node): ?Node } } else { $paramNode->type = $paramTypeInfo->getTypeNode(); + + // "resource" is valid phpdoc type, but it's not implemented in PHP + if ($paramNode->type instanceof Node\Name && reset($paramNode->type->parts) === 'resource') { + $paramNode->type = null; + + continue; + } } $this->populateChildren($node, $position, $paramTypeInfo); diff --git a/packages/TypeDeclaration/tests/Rector/FunctionLike/ParamTypeDeclarationRector/Fixture/resource.php.inc b/packages/TypeDeclaration/tests/Rector/FunctionLike/ParamTypeDeclarationRector/Fixture/resource.php.inc new file mode 100644 index 000000000000..84d1eebf3847 --- /dev/null +++ b/packages/TypeDeclaration/tests/Rector/FunctionLike/ParamTypeDeclarationRector/Fixture/resource.php.inc @@ -0,0 +1,13 @@ +