From d3115e8b8a1514e83d8bc0eb5aec7584b621c49d Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 9 Jul 2019 17:06:58 +0200 Subject: [PATCH 1/2] [CodeQuality] Fix StrlenZeroToIdenticalEmptyStringRector skipping non-matching binary --- docs/AllRectorsOverview.md | 2 +- docs/NodesOverview.md | 2 +- .../FuncCall/StrlenZeroToIdenticalEmptyStringRector.php | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/AllRectorsOverview.md b/docs/AllRectorsOverview.md index a78d655b2025..e5c4edeb2852 100644 --- a/docs/AllRectorsOverview.md +++ b/docs/AllRectorsOverview.md @@ -3547,7 +3547,7 @@ services: - class: `Rector\Php\Rector\FuncCall\PregReplaceEModifierRector` -The /e modifier is no longer supported, use preg_replace_callback instead +The /e modifier is no longer supported, use preg_replace_callback instead ```diff class SomeClass diff --git a/docs/NodesOverview.md b/docs/NodesOverview.md index d84b5e956204..e5a0a4b3b9dd 100644 --- a/docs/NodesOverview.md +++ b/docs/NodesOverview.md @@ -917,7 +917,7 @@ if (true) { ```php ?> -feelfeel diff --git a/packages/CodeQuality/src/Rector/FuncCall/StrlenZeroToIdenticalEmptyStringRector.php b/packages/CodeQuality/src/Rector/FuncCall/StrlenZeroToIdenticalEmptyStringRector.php index 7a1dea13e28c..53a26214ed5b 100644 --- a/packages/CodeQuality/src/Rector/FuncCall/StrlenZeroToIdenticalEmptyStringRector.php +++ b/packages/CodeQuality/src/Rector/FuncCall/StrlenZeroToIdenticalEmptyStringRector.php @@ -64,9 +64,7 @@ public function refactor(Node $node): ?Node } $variable = $node->left->args[0]->value; - } - - if ($node->right instanceof FuncCall) { + } elseif ($node->right instanceof FuncCall) { if (! $this->isName($node->right, 'strlen')) { return null; } @@ -76,6 +74,8 @@ public function refactor(Node $node): ?Node } $variable = $node->right->args[0]->value; + } else { + return null; } /** @var Expr $variable */ From da6a3920c1ff98e051d1c8e4e739b4edb7382ccd Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 9 Jul 2019 17:29:04 +0200 Subject: [PATCH 2/2] cleanup --- tests/PhpParser/Node/Value/ValueResolverTest.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tests/PhpParser/Node/Value/ValueResolverTest.php b/tests/PhpParser/Node/Value/ValueResolverTest.php index 7a191189b41c..a16718451e71 100644 --- a/tests/PhpParser/Node/Value/ValueResolverTest.php +++ b/tests/PhpParser/Node/Value/ValueResolverTest.php @@ -2,7 +2,7 @@ namespace Rector\Tests\PhpParser\Node\Value; -use Generator; +use Iterator; use PhpParser\BuilderFactory; use PhpParser\Node\Expr; use PhpParser\Node\Expr\BinaryOp\Plus; @@ -28,17 +28,13 @@ protected function setUp(): void /** * @dataProvider dataProvider * @param mixed $expected - * @param Expr $expr */ public function test($expected, Expr $expr): void { $this->assertSame($expected, $this->valueResolver->resolve($expr)); } - /** - * @return Generator - */ - public function dataProvider(): Generator + public function dataProvider(): Iterator { $builderFactory = new BuilderFactory();