Updated Rector to commit 4a77565302216f6fde71232600cd175422a00965

4a77565302 ExplicitReturnNullRector should skip never return (#5802)
This commit is contained in:
Tomas Votruba 2024-04-05 18:04:27 +00:00
parent 6e04d0eb08
commit 6678ca05d4
2 changed files with 11 additions and 4 deletions

View File

@ -20,6 +20,7 @@ use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger;
use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory;
use Rector\Rector\AbstractRector; use Rector\Rector\AbstractRector;
use Rector\TypeDeclaration\NodeAnalyzer\NeverFuncCallAnalyzer;
use Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer; use Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer;
use Rector\TypeDeclaration\TypeInferer\SilentVoidResolver; use Rector\TypeDeclaration\TypeInferer\SilentVoidResolver;
use Rector\ValueObject\MethodName; use Rector\ValueObject\MethodName;
@ -50,17 +51,23 @@ final class ExplicitReturnNullRector extends AbstractRector
* @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger * @var \Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger
*/ */
private $phpDocTypeChanger; private $phpDocTypeChanger;
/**
* @readonly
* @var \Rector\TypeDeclaration\NodeAnalyzer\NeverFuncCallAnalyzer
*/
private $neverFuncCallAnalyzer;
/** /**
* @readonly * @readonly
* @var \Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer * @var \Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer
*/ */
private $returnTypeInferer; private $returnTypeInferer;
public function __construct(SilentVoidResolver $silentVoidResolver, PhpDocInfoFactory $phpDocInfoFactory, TypeFactory $typeFactory, PhpDocTypeChanger $phpDocTypeChanger, ReturnTypeInferer $returnTypeInferer) public function __construct(SilentVoidResolver $silentVoidResolver, PhpDocInfoFactory $phpDocInfoFactory, TypeFactory $typeFactory, PhpDocTypeChanger $phpDocTypeChanger, NeverFuncCallAnalyzer $neverFuncCallAnalyzer, ReturnTypeInferer $returnTypeInferer)
{ {
$this->silentVoidResolver = $silentVoidResolver; $this->silentVoidResolver = $silentVoidResolver;
$this->phpDocInfoFactory = $phpDocInfoFactory; $this->phpDocInfoFactory = $phpDocInfoFactory;
$this->typeFactory = $typeFactory; $this->typeFactory = $typeFactory;
$this->phpDocTypeChanger = $phpDocTypeChanger; $this->phpDocTypeChanger = $phpDocTypeChanger;
$this->neverFuncCallAnalyzer = $neverFuncCallAnalyzer;
$this->returnTypeInferer = $returnTypeInferer; $this->returnTypeInferer = $returnTypeInferer;
} }
public function getRuleDefinition() : RuleDefinition public function getRuleDefinition() : RuleDefinition
@ -132,7 +139,7 @@ CODE_SAMPLE
} }
return null; return null;
}); });
if (!$this->silentVoidResolver->hasSilentVoid($node)) { if (!$this->silentVoidResolver->hasSilentVoid($node) || $this->neverFuncCallAnalyzer->hasNeverFuncCall($node)) {
if ($hasChanged) { if ($hasChanged) {
$this->transformDocUnionVoidToUnionNull($node); $this->transformDocUnionVoidToUnionNull($node);
return $node; return $node;

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api * @api
* @var string * @var string
*/ */
public const PACKAGE_VERSION = '1.0.4'; public const PACKAGE_VERSION = '4a77565302216f6fde71232600cd175422a00965';
/** /**
* @api * @api
* @var string * @var string
*/ */
public const RELEASE_DATE = '2024-04-04 20:57:17'; public const RELEASE_DATE = '2024-04-05 20:02:11';
/** /**
* @var int * @var int
*/ */