|
11 | 11 | use PhpParser\Node\Stmt\Class_; |
12 | 12 | use PhpParser\Node\Stmt\ClassMethod; |
13 | 13 | use PhpParser\Node\Stmt\Function_; |
14 | | -use PhpParser\Node\Stmt\Goto_; |
15 | 14 | use PhpParser\Node\Stmt\Return_; |
16 | 15 | use PhpParser\NodeVisitor; |
17 | 16 | use PHPStan\Type\NullType; |
18 | 17 | use PHPStan\Type\UnionType; |
19 | 18 | use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory; |
20 | 19 | use Rector\BetterPhpDocParser\PhpDocManipulator\PhpDocTypeChanger; |
21 | 20 | use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory; |
22 | | -use Rector\PhpParser\Node\BetterNodeFinder; |
23 | 21 | use Rector\Rector\AbstractRector; |
24 | 22 | use Rector\TypeDeclaration\TypeInferer\ReturnTypeInferer; |
25 | 23 | use Rector\TypeDeclaration\TypeInferer\SilentVoidResolver; |
@@ -51,18 +49,13 @@ final class ExplicitReturnNullRector extends AbstractRector |
51 | 49 | * @readonly |
52 | 50 | */ |
53 | 51 | private ReturnTypeInferer $returnTypeInferer; |
54 | | - /** |
55 | | - * @readonly |
56 | | - */ |
57 | | - private BetterNodeFinder $betterNodeFinder; |
58 | | - public function __construct(SilentVoidResolver $silentVoidResolver, PhpDocInfoFactory $phpDocInfoFactory, TypeFactory $typeFactory, PhpDocTypeChanger $phpDocTypeChanger, ReturnTypeInferer $returnTypeInferer, BetterNodeFinder $betterNodeFinder) |
| 52 | + public function __construct(SilentVoidResolver $silentVoidResolver, PhpDocInfoFactory $phpDocInfoFactory, TypeFactory $typeFactory, PhpDocTypeChanger $phpDocTypeChanger, ReturnTypeInferer $returnTypeInferer) |
59 | 53 | { |
60 | 54 | $this->silentVoidResolver = $silentVoidResolver; |
61 | 55 | $this->phpDocInfoFactory = $phpDocInfoFactory; |
62 | 56 | $this->typeFactory = $typeFactory; |
63 | 57 | $this->phpDocTypeChanger = $phpDocTypeChanger; |
64 | 58 | $this->returnTypeInferer = $returnTypeInferer; |
65 | | - $this->betterNodeFinder = $betterNodeFinder; |
66 | 59 | } |
67 | 60 | public function getRuleDefinition() : RuleDefinition |
68 | 61 | { |
@@ -121,10 +114,6 @@ public function refactor(Node $node) : ?Node |
121 | 114 | if (!$returnType instanceof UnionType) { |
122 | 115 | return null; |
123 | 116 | } |
124 | | - $hasGoto = (bool) $this->betterNodeFinder->findFirstInFunctionLikeScoped($node, fn(Node $node): bool => $node instanceof Goto_); |
125 | | - if ($hasGoto) { |
126 | | - return null; |
127 | | - } |
128 | 117 | $hasChanged = \false; |
129 | 118 | $this->traverseNodesWithCallable((array) $node->stmts, static function (Node $node) use(&$hasChanged) { |
130 | 119 | if ($node instanceof Class_ || $node instanceof Function_ || $node instanceof Closure) { |
|
0 commit comments