diff --git a/rules/type-declaration/src/TypeInferer/ReturnTypeInferer/ReturnTagReturnTypeInferer.php b/rules/type-declaration/src/TypeInferer/ReturnTypeInferer/ReturnTagReturnTypeInferer.php index 2bfb1f0b205..c88c9c5b856 100644 --- a/rules/type-declaration/src/TypeInferer/ReturnTypeInferer/ReturnTagReturnTypeInferer.php +++ b/rules/type-declaration/src/TypeInferer/ReturnTypeInferer/ReturnTagReturnTypeInferer.php @@ -8,6 +8,7 @@ use PhpParser\Node\Expr\Closure; use PhpParser\Node\FunctionLike; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Function_; +use PHPStan\Type\MixedType; use PHPStan\Type\Type; use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo; use Rector\NodeTypeResolver\Node\AttributeKey; @@ -21,8 +22,11 @@ final class ReturnTagReturnTypeInferer extends AbstractTypeInferer implements Re */ public function inferFunctionLike(FunctionLike $functionLike): Type { - /** @var PhpDocInfo $phpDocInfo */ + /** @var PhpDocInfo|null $phpDocInfo */ $phpDocInfo = $functionLike->getAttribute(AttributeKey::PHP_DOC_INFO); + if ($phpDocInfo === null) { + return new MixedType(); + } return $phpDocInfo->getReturnType(); }