diff --git a/docs/AllRectorsOverview.md b/docs/AllRectorsOverview.md index f24a97cae92..e4b94e1eb2c 100644 --- a/docs/AllRectorsOverview.md +++ b/docs/AllRectorsOverview.md @@ -2606,7 +2606,7 @@ Changes rand, srand and getrandmax by new md_* alternatives. - 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 81aef55e937..134b5d8a865 100644 --- a/docs/NodesOverview.md +++ b/docs/NodesOverview.md @@ -910,7 +910,7 @@ if (true) { ```php ?> -feelfeel diff --git a/packages/BetterPhpDocParser/src/Attributes/Ast/AttributeAwareNodeFactory.php b/packages/BetterPhpDocParser/src/Attributes/Ast/AttributeAwareNodeFactory.php index 3bd932e2815..271c24a383d 100644 --- a/packages/BetterPhpDocParser/src/Attributes/Ast/AttributeAwareNodeFactory.php +++ b/packages/BetterPhpDocParser/src/Attributes/Ast/AttributeAwareNodeFactory.php @@ -124,7 +124,7 @@ final class AttributeAwareNodeFactory } if ($phpDocTagValueNode instanceof MethodTagValueNode) { - $typeNode = $phpDocTagValueNode->returnType ? $this->createFromTypeNode( + $typeNode = $phpDocTagValueNode->returnType !== null ? $this->createFromTypeNode( $phpDocTagValueNode->returnType ) : null; return new AttributeAwareMethodTagValueNode( diff --git a/packages/BetterPhpDocParser/src/Printer/OriginalSpacingRestorer.php b/packages/BetterPhpDocParser/src/Printer/OriginalSpacingRestorer.php index ce6c9b38b40..0cd28a99d78 100644 --- a/packages/BetterPhpDocParser/src/Printer/OriginalSpacingRestorer.php +++ b/packages/BetterPhpDocParser/src/Printer/OriginalSpacingRestorer.php @@ -20,7 +20,7 @@ final class OriginalSpacingRestorer $oldWhitespaces = $this->detectOldWhitespaces($tokens, $startEndInfo); // no original whitespaces, return - if (! $oldWhitespaces) { + if ($oldWhitespaces === []) { return $nodeOutput; } @@ -54,7 +54,7 @@ final class OriginalSpacingRestorer if ($this->isQuotedStringWithSpaces($tokens, $i)) { $matches = Strings::matchAll($tokens[$i][0], '#\s+#m'); - if ($matches) { + if ($matches !== []) { $oldWhitespaces = array_merge($oldWhitespaces, Arrays::flatten($matches)); } } diff --git a/packages/BetterPhpDocParser/src/Printer/PhpDocInfoPrinter.php b/packages/BetterPhpDocParser/src/Printer/PhpDocInfoPrinter.php index b99f93c588f..bb158ffa8ef 100644 --- a/packages/BetterPhpDocParser/src/Printer/PhpDocInfoPrinter.php +++ b/packages/BetterPhpDocParser/src/Printer/PhpDocInfoPrinter.php @@ -107,7 +107,7 @@ final class PhpDocInfoPrinter foreach ($phpDocNode->children as $phpDocChildNode) { if ($phpDocChildNode instanceof PhpDocTextNode) { - if ($phpDocChildNode->text) { + if ($phpDocChildNode->text !== '') { return false; } } else { @@ -221,7 +221,7 @@ final class PhpDocInfoPrinter */ private function getRemovedNodesPositions(): array { - if ($this->removedNodePositions) { + if ($this->removedNodePositions !== []) { return $this->removedNodePositions; } diff --git a/packages/DeadCode/src/Rector/For_/RemoveDeadIfForeachForRector.php b/packages/DeadCode/src/Rector/For_/RemoveDeadIfForeachForRector.php index c5fa28c8e48..c3d318408b3 100644 --- a/packages/DeadCode/src/Rector/For_/RemoveDeadIfForeachForRector.php +++ b/packages/DeadCode/src/Rector/For_/RemoveDeadIfForeachForRector.php @@ -78,7 +78,7 @@ CODE_SAMPLE } if ($node instanceof For_) { - if ($node->stmts) { + if ($node->stmts !== []) { return null; } @@ -92,15 +92,15 @@ CODE_SAMPLE private function processIf(If_ $if): ?If_ { - if ($if->stmts) { + if ($if->stmts !== []) { return null; } - if ($if->else) { + if ($if->else !== null) { return null; } - if ($if->elseifs) { + if ($if->elseifs !== []) { return null; } @@ -115,7 +115,7 @@ CODE_SAMPLE private function processForeach(Foreach_ $node): ?Foreach_ { - if ($node->stmts) { + if ($node->stmts !== []) { return null; } @@ -137,11 +137,6 @@ CODE_SAMPLE if ($expr instanceof Scalar) { return false; } - - if ($this->isBool($expr)) { - return false; - } - - return true; + return ! $this->isBool($expr); } } diff --git a/packages/Php/src/EregToPcreTransformer.php b/packages/Php/src/EregToPcreTransformer.php index 91453da7fd5..9246c73c5c1 100644 --- a/packages/Php/src/EregToPcreTransformer.php +++ b/packages/Php/src/EregToPcreTransformer.php @@ -200,10 +200,10 @@ final class EregToPcreTransformer } $bound = substr($s, $i + 1, $ii - ($i + 1)); if (! preg_match( - '/^([0-9]|[1-9][0-9]|1[0-9][0-9]| - 2[0-4][0-9]|25[0-5]) - (,([0-9]|[1-9][0-9]|1[0-9][0-9]| - 2[0-4][0-9]|25[0-5])?)?$/x', + '/^(\d|[1-9]\d|1\d\d| + 2[0-4]\d|25[0-5]) + (,(\d|[1-9]\d|1\d\d| + 2[0-4]\d|25[0-5])?)?$/x', $bound, $m )) { diff --git a/packages/Php/src/Rector/FunctionLike/AbstractTypeDeclarationRector.php b/packages/Php/src/Rector/FunctionLike/AbstractTypeDeclarationRector.php index f13683c1eb1..d33d5d1b04b 100644 --- a/packages/Php/src/Rector/FunctionLike/AbstractTypeDeclarationRector.php +++ b/packages/Php/src/Rector/FunctionLike/AbstractTypeDeclarationRector.php @@ -104,7 +104,7 @@ abstract class AbstractTypeDeclarationRector extends AbstractRector } $classNode = $classMethod->getAttribute(Attribute::CLASS_NODE); - if (! ($classNode instanceof Class_ || $classNode instanceof Interface_)) { + if (! $classNode instanceof Class_ && ! $classNode instanceof Interface_) { return false; } diff --git a/packages/PhpSpecToPHPUnit/src/Rector/MethodCall/PhpSpecMocksToPHPUnitMocksRector.php b/packages/PhpSpecToPHPUnit/src/Rector/MethodCall/PhpSpecMocksToPHPUnitMocksRector.php index 0f8229184f3..fe7e4411aa9 100644 --- a/packages/PhpSpecToPHPUnit/src/Rector/MethodCall/PhpSpecMocksToPHPUnitMocksRector.php +++ b/packages/PhpSpecToPHPUnit/src/Rector/MethodCall/PhpSpecMocksToPHPUnitMocksRector.php @@ -131,7 +131,7 @@ final class PhpSpecMocksToPHPUnitMocksRector extends AbstractPhpSpecToPHPUnitRec } $createMockCall = $this->createCreateMockCall($param, $param->type); - if ($createMockCall) { + if ($createMockCall !== null) { $assigns[] = $createMockCall; } } @@ -163,7 +163,7 @@ final class PhpSpecMocksToPHPUnitMocksRector extends AbstractPhpSpecToPHPUnitRec $methodCall->name = new Identifier('method'); $methodCall->args = [new Arg(new String_($mockMethodName))]; - if ($expectedArg) { + if ($expectedArg !== null) { return $this->appendWithMethodCall($methodCall, $expectedArg); } diff --git a/packages/PhpSpecToPHPUnit/src/Rector/MethodCall/PhpSpecPromisesToPHPUnitAssertRector.php b/packages/PhpSpecToPHPUnit/src/Rector/MethodCall/PhpSpecPromisesToPHPUnitAssertRector.php index a9f11634ed6..8b28a039152 100644 --- a/packages/PhpSpecToPHPUnit/src/Rector/MethodCall/PhpSpecPromisesToPHPUnitAssertRector.php +++ b/packages/PhpSpecToPHPUnit/src/Rector/MethodCall/PhpSpecPromisesToPHPUnitAssertRector.php @@ -190,7 +190,7 @@ final class PhpSpecPromisesToPHPUnitAssertRector extends AbstractPhpSpecToPHPUni /** @var Class_ $class */ $class = $node->getAttribute(Attribute::CLASS_NODE); // it's a method call, skip - if ($class->getMethod($methodName)) { + if ($class->getMethod($methodName) !== null) { return null; } @@ -217,13 +217,13 @@ final class PhpSpecPromisesToPHPUnitAssertRector extends AbstractPhpSpecToPHPUni $this->isBoolAssert = false; // special case with bool! - if ($expected) { + if ($expected !== null) { $name = $this->resolveBoolMethodName($name, $expected); } $assetMethodCall = new MethodCall(new Variable('this'), new Identifier($name)); - if ($this->isBoolAssert === false && $expected) { + if (! $this->isBoolAssert && $expected) { $assetMethodCall->args[] = new Arg($this->thisToTestedObjectPropertyFetch($expected)); } diff --git a/phpstan.neon b/phpstan.neon index ba668636429..c284724bf65 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -142,3 +142,4 @@ parameters: # false positive 0.11.5 - '#Unreachable statement \- code above always terminates#' - '#Method Rector\\NodeTypeResolver\\NodeVisitor\\(.*?)\:\:enterNode\(\) should return int\|PhpParser\\Node\|void\|null but return statement is missing#' + - '#Negated boolean expression is always true#' diff --git a/src/PhpParser/Node/Resolver/NameResolver.php b/src/PhpParser/Node/Resolver/NameResolver.php index dc19eb871a5..ac536df6caa 100644 --- a/src/PhpParser/Node/Resolver/NameResolver.php +++ b/src/PhpParser/Node/Resolver/NameResolver.php @@ -151,11 +151,7 @@ final class NameResolver // is probably fnmatch if (Strings::contains($name, '*')) { - if (fnmatch($name, $resolvedName, FNM_NOESCAPE)) { - return true; - } - - return false; + return fnmatch($name, $resolvedName, FNM_NOESCAPE); } return $resolvedName === $name;