mirror of
https://github.com/rectorphp/rector.git
synced 2025-02-19 07:40:49 +01:00
[DeadCode] Fix RemoveDoubleAssignRector in catch
This commit is contained in:
parent
713707b42b
commit
5780ab30a3
@ -123,17 +123,34 @@ CODE_SAMPLE
|
||||
{
|
||||
$firstNodeParent = $this->betterNodeFinder->findFirstParentInstanceOf(
|
||||
$firstNode,
|
||||
[Foreach_::class, If_::class, While_::class, Do_::class, Else_::class, ElseIf_::class]
|
||||
[
|
||||
Foreach_::class,
|
||||
If_::class,
|
||||
While_::class,
|
||||
Do_::class,
|
||||
Else_::class,
|
||||
ElseIf_::class,
|
||||
Node\Stmt\Catch_::class,
|
||||
]
|
||||
);
|
||||
|
||||
$secondNodeParent = $this->betterNodeFinder->findFirstParentInstanceOf(
|
||||
$secondNode,
|
||||
[Foreach_::class, If_::class, While_::class, Do_::class, If_::class, ElseIf_::class]
|
||||
[
|
||||
Foreach_::class,
|
||||
If_::class,
|
||||
While_::class,
|
||||
Do_::class,
|
||||
If_::class,
|
||||
ElseIf_::class,
|
||||
Node\Stmt\Catch_::class,
|
||||
]
|
||||
);
|
||||
|
||||
if ($firstNodeParent === null || $secondNodeParent === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return ! $this->areNodesEqual($firstNodeParent, $secondNodeParent);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace Rector\DeadCode\Tests\Rector\Assign\RemoveDoubleAssignRector\Fixture;
|
||||
|
||||
class Example
|
||||
{
|
||||
public function action()
|
||||
{
|
||||
$noException = true;
|
||||
|
||||
try {
|
||||
$this->doSomething();
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
$noException = false;
|
||||
} catch (\Exception $e) {
|
||||
$noException = false;
|
||||
}
|
||||
}
|
||||
}
|
@ -18,6 +18,8 @@ final class RemoveDoubleAssignRectorTest extends AbstractRectorTestCase
|
||||
__DIR__ . '/Fixture/keep_property_assign_in_different_ifs.php.inc',
|
||||
__DIR__ . '/Fixture/inside_if_else.php.inc',
|
||||
__DIR__ . '/Fixture/inside_the_same_if.php.inc',
|
||||
// skip
|
||||
__DIR__ . '/Fixture/skip_double_catch.php.inc',
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@ use PhpParser\Node\Stmt\Class_;
|
||||
|
||||
final class UniqueObjectOrServiceDetector
|
||||
{
|
||||
public function isUniqueObject(Class_ $class): bool
|
||||
public function isUniqueObject(): bool
|
||||
{
|
||||
// ideas:
|
||||
// hook in container?
|
||||
|
Loading…
x
Reference in New Issue
Block a user