diff --git a/packages/DeadCode/src/Rector/Concat/RemoveConcatAutocastRector.php b/packages/DeadCode/src/Rector/Concat/RemoveConcatAutocastRector.php index b977b363bad..f0ce3085756 100644 --- a/packages/DeadCode/src/Rector/Concat/RemoveConcatAutocastRector.php +++ b/packages/DeadCode/src/Rector/Concat/RemoveConcatAutocastRector.php @@ -3,7 +3,9 @@ namespace Rector\DeadCode\Rector\Concat; use PhpParser\Node; +use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Concat; +use PhpParser\Node\Expr\Cast\String_; use Rector\Rector\AbstractRector; use Rector\RectorDefinition\CodeSample; use Rector\RectorDefinition\RectorDefinition; @@ -56,8 +58,8 @@ CODE_SAMPLE return $node; } - private function removeStringCast(Node\Expr $expr): Node + private function removeStringCast(Expr $expr): Expr { - return $expr instanceof Node\Expr\Cast\String_ ? $expr->expr : $expr; + return $expr instanceof String_ ? $expr->expr : $expr; } } diff --git a/packages/NodeTypeResolver/src/NodeTypeResolver.php b/packages/NodeTypeResolver/src/NodeTypeResolver.php index 88c5d75fff5..cb37f72cbb0 100644 --- a/packages/NodeTypeResolver/src/NodeTypeResolver.php +++ b/packages/NodeTypeResolver/src/NodeTypeResolver.php @@ -35,7 +35,6 @@ use PHPStan\Type\ObjectType; use PHPStan\Type\StringType; use PHPStan\Type\Type; use PHPStan\Type\UnionType; -use Rector\Exception\ShouldNotHappenException; use Rector\NodeTypeResolver\Contract\NodeTypeResolverAwareInterface; use Rector\NodeTypeResolver\Contract\PerNodeTypeResolver\PerNodeTypeResolverInterface; use Rector\NodeTypeResolver\Node\AttributeKey; @@ -378,7 +377,8 @@ final class NodeTypeResolver { $classNode = $node->getAttribute(AttributeKey::CLASS_NODE); if ($classNode === null) { - throw new ShouldNotHappenException(); + // anonymous class + return []; } return $this->resolve($classNode); diff --git a/tests/Rector/ClassMethod/AddMethodParentCallRector/AddMethodParentCallRectorTest.php b/tests/Rector/ClassMethod/AddMethodParentCallRector/AddMethodParentCallRectorTest.php index 6ffd28e7cad..041626a26f6 100644 --- a/tests/Rector/ClassMethod/AddMethodParentCallRector/AddMethodParentCallRectorTest.php +++ b/tests/Rector/ClassMethod/AddMethodParentCallRector/AddMethodParentCallRectorTest.php @@ -10,10 +10,7 @@ final class AddMethodParentCallRectorTest extends AbstractRectorTestCase { public function test(): void { - $this->doTestFiles([ - __DIR__ . '/Fixture/fixture.php.inc', - __DIR__ . '/Fixture/skip_already_has.php.inc', - ]); + $this->doTestFiles([__DIR__ . '/Fixture/fixture.php.inc', __DIR__ . '/Fixture/skip_already_has.php.inc']); } /** diff --git a/tests/Rector/MethodCall/RenameMethodRector/Fixture/under_anonymous_class.php.inc b/tests/Rector/MethodCall/RenameMethodRector/Fixture/under_anonymous_class.php.inc new file mode 100644 index 00000000000..470e40d326b --- /dev/null +++ b/tests/Rector/MethodCall/RenameMethodRector/Fixture/under_anonymous_class.php.inc @@ -0,0 +1,25 @@ +expectException(\ErrorException::class); + + $class = new class { + public function triggerError(): void + { + $this->startErrorHandling(); + trigger_error('an error has occurred'); + $this->stopErrorHandling(); + } + }; + + $class->triggerError(); + } +} + +?> + diff --git a/tests/Rector/MethodCall/RenameMethodRector/RenameMethodRectorTest.php b/tests/Rector/MethodCall/RenameMethodRector/RenameMethodRectorTest.php index 8201854bd84..6817363e307 100644 --- a/tests/Rector/MethodCall/RenameMethodRector/RenameMethodRectorTest.php +++ b/tests/Rector/MethodCall/RenameMethodRector/RenameMethodRectorTest.php @@ -19,6 +19,7 @@ final class RenameMethodRectorTest extends AbstractRectorTestCase __DIR__ . '/Fixture/fixture4.php.inc', __DIR__ . '/Fixture/fixture5.php.inc', __DIR__ . '/Fixture/fixture6.php.inc', + __DIR__ . '/Fixture/under_anonymous_class.php.inc', __DIR__ . '/Fixture/SomeClass.php', __DIR__ . '/Fixture/nette_to_symfony_presenter.php.inc', ]); @@ -48,6 +49,10 @@ final class RenameMethodRectorTest extends AbstractRectorTestCase '*Presenter' => [ 'run' => '__invoke', ], + 'PHPUnit\Framework\TestClass' => [ + 'setExpectedException' => 'expectedException', + 'setExpectedExceptionRegExp' => 'expectedException', + ], ], ], ];