Updated Rector to commit dea2e16665cf567c20664c7ef9bac38d0d7d4f49

dea2e16665 [PHP 8.0] Fix case insenstive false positive replacement for str_ends_with (#5677)
This commit is contained in:
Tomas Votruba 2024-03-02 13:08:36 +00:00
parent 991980cf2b
commit d31429d029
12 changed files with 43 additions and 27 deletions

View File

@ -163,12 +163,18 @@ CODE_SAMPLE
return null; return null;
} }
$substrCompareFuncCall = $funcCallAndExpr->getFuncCall(); $substrCompareFuncCall = $funcCallAndExpr->getFuncCall();
if (\count($substrCompareFuncCall->getArgs()) < 2) { $args = $substrCompareFuncCall->getArgs();
if (\count($args) < 2) {
return null;
}
$haystack = $args[0]->value;
$needle = $args[1]->value;
$thirdArgValue = $args[2]->value;
$isCaseInsensitiveValue = isset($args[4]) ? $this->valueResolver->getValue($args[4]->value) : null;
// is case insensitive → not valid replacement
if ($isCaseInsensitiveValue === \true) {
return null; return null;
} }
$haystack = $substrCompareFuncCall->getArgs()[0]->value;
$needle = $substrCompareFuncCall->getArgs()[1]->value;
$thirdArgValue = $substrCompareFuncCall->getArgs()[2]->value;
if (!$this->isUnaryMinusStrlenFuncCallArgValue($thirdArgValue, $needle) && !$this->isHardCodedLNumberAndString($thirdArgValue, $needle)) { if (!$this->isUnaryMinusStrlenFuncCallArgValue($thirdArgValue, $needle) && !$this->isHardCodedLNumberAndString($thirdArgValue, $needle)) {
return null; return null;
} }

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api * @api
* @var string * @var string
*/ */
public const PACKAGE_VERSION = '7191fae140cc8c35a699b6487117e1efa8b4d2f5'; public const PACKAGE_VERSION = 'dea2e16665cf567c20664c7ef9bac38d0d7d4f49';
/** /**
* @api * @api
* @var string * @var string
*/ */
public const RELEASE_DATE = '2024-03-01 20:04:35'; public const RELEASE_DATE = '2024-03-02 13:06:24';
/** /**
* @var int * @var int
*/ */

View File

@ -1928,17 +1928,17 @@
}, },
{ {
"name": "sebastian\/diff", "name": "sebastian\/diff",
"version": "5.1.0", "version": "5.1.1",
"version_normalized": "5.1.0.0", "version_normalized": "5.1.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https:\/\/github.com\/sebastianbergmann\/diff.git", "url": "https:\/\/github.com\/sebastianbergmann\/diff.git",
"reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f" "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https:\/\/api.github.com\/repos\/sebastianbergmann\/diff\/zipball\/fbf413a49e54f6b9b17e12d900ac7f6101591b7f", "url": "https:\/\/api.github.com\/repos\/sebastianbergmann\/diff\/zipball\/c41e007b4b62af48218231d6c2275e4c9b975b2e",
"reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f", "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -1946,9 +1946,9 @@
}, },
"require-dev": { "require-dev": {
"phpunit\/phpunit": "^10.0", "phpunit\/phpunit": "^10.0",
"symfony\/process": "^4.2 || ^5" "symfony\/process": "^6.4"
}, },
"time": "2023-12-22T10:55:06+00:00", "time": "2024-03-02T07:15:17+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
@ -1986,7 +1986,7 @@
"support": { "support": {
"issues": "https:\/\/github.com\/sebastianbergmann\/diff\/issues", "issues": "https:\/\/github.com\/sebastianbergmann\/diff\/issues",
"security": "https:\/\/github.com\/sebastianbergmann\/diff\/security\/policy", "security": "https:\/\/github.com\/sebastianbergmann\/diff\/security\/policy",
"source": "https:\/\/github.com\/sebastianbergmann\/diff\/tree\/5.1.0" "source": "https:\/\/github.com\/sebastianbergmann\/diff\/tree\/5.1.1"
}, },
"funding": [ "funding": [
{ {

File diff suppressed because one or more lines are too long

View File

@ -2,6 +2,12 @@
All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
## [5.1.1] - 2024-03-02
### Changed
* Do not use implicitly nullable parameters
## [5.1.0] - 2023-12-22 ## [5.1.0] - 2023-12-22
### Added ### Added
@ -124,6 +130,7 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt
* This component is no longer supported on PHP 5.6 * This component is no longer supported on PHP 5.6
[5.1.1]: https://github.com/sebastianbergmann/diff/compare/5.1.0...5.1.1
[5.1.0]: https://github.com/sebastianbergmann/diff/compare/5.0.3...5.1.0 [5.1.0]: https://github.com/sebastianbergmann/diff/compare/5.0.3...5.1.0
[5.0.3]: https://github.com/sebastianbergmann/diff/compare/5.0.2...5.0.3 [5.0.3]: https://github.com/sebastianbergmann/diff/compare/5.0.2...5.0.3
[5.0.2]: https://github.com/sebastianbergmann/diff/compare/5.0.1...5.0.2 [5.0.2]: https://github.com/sebastianbergmann/diff/compare/5.0.1...5.0.2

View File

@ -1,6 +1,6 @@
BSD 3-Clause License BSD 3-Clause License
Copyright (c) 2002-2023, Sebastian Bergmann Copyright (c) 2002-2024, Sebastian Bergmann
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

View File

@ -36,7 +36,7 @@
}, },
"require-dev": { "require-dev": {
"phpunit\/phpunit": "^10.0", "phpunit\/phpunit": "^10.0",
"symfony\/process": "^4.2 || ^5" "symfony\/process": "^6.4"
}, },
"autoload": { "autoload": {
"classmap": [ "classmap": [

View File

@ -48,7 +48,7 @@ final class Differ
* @param mixed[]|string $from * @param mixed[]|string $from
* @param mixed[]|string $to * @param mixed[]|string $to
*/ */
public function diff($from, $to, LongestCommonSubsequenceCalculator $lcs = null) : string public function diff($from, $to, ?LongestCommonSubsequenceCalculator $lcs = null) : string
{ {
$diff = $this->diffToArray($from, $to, $lcs); $diff = $this->diffToArray($from, $to, $lcs);
return $this->outputBuilder->getDiff($diff); return $this->outputBuilder->getDiff($diff);
@ -57,7 +57,7 @@ final class Differ
* @param mixed[]|string $from * @param mixed[]|string $from
* @param mixed[]|string $to * @param mixed[]|string $to
*/ */
public function diffToArray($from, $to, LongestCommonSubsequenceCalculator $lcs = null) : array public function diffToArray($from, $to, ?LongestCommonSubsequenceCalculator $lcs = null) : array
{ {
if (is_string($from)) { if (is_string($from)) {
$from = $this->splitStringByLines($from); $from = $this->splitStringByLines($from);

View File

@ -17,7 +17,7 @@ use function sprintf;
use Exception; use Exception;
final class ConfigurationException extends InvalidArgumentException final class ConfigurationException extends InvalidArgumentException
{ {
public function __construct(string $option, string $expected, $value, int $code = 0, Exception $previous = null) public function __construct(string $option, string $expected, $value, int $code = 0, ?Exception $previous = null)
{ {
parent::__construct(sprintf('Option "%s" must be %s, got "%s".', $option, $expected, is_object($value) ? \get_class($value) : (null === $value ? '<null>' : gettype($value) . '#' . $value)), $code, $previous); parent::__construct(sprintf('Option "%s" must be %s, got "%s".', $option, $expected, is_object($value) ? \get_class($value) : (null === $value ? '<null>' : gettype($value) . '#' . $value)), $code, $previous);
} }

View File

@ -65,7 +65,11 @@ final class MemoryEfficientLongestCommonSubsequenceCalculator implements Longest
if ($from[$i] === $to[$j]) { if ($from[$i] === $to[$j]) {
$current[$j + 1] = $prev[$j] + 1; $current[$j + 1] = $prev[$j] + 1;
} else { } else {
// don't use max() to avoid function call overhead /**
* @noinspection PhpConditionCanBeReplacedWithMinMaxCallInspection
*
* We do not use max() here to avoid the function call overhead
*/
if ($current[$j] > $prev[$j + 1]) { if ($current[$j] > $prev[$j + 1]) {
$current[$j + 1] = $current[$j]; $current[$j + 1] = $current[$j];
} else { } else {

View File

@ -230,11 +230,11 @@ final class StrictUnifiedDiffOutputBuilder implements DiffOutputBuilderInterface
$this->changed = \true; $this->changed = \true;
fwrite($output, $diff[$i][0]); fwrite($output, $diff[$i][0]);
} }
//} elseif ($diff[$i][1] === Differ::DIFF_LINE_END_WARNING) { // custom comment inserted by PHPUnit/diff package // } elseif ($diff[$i][1] === Differ::DIFF_LINE_END_WARNING) { // custom comment inserted by PHPUnit/diff package
// skip // skip
//} else { // } else {
// unknown/invalid // unknown/invalid
//} // }
} }
} }
private function assertString(array $options, string $option) : void private function assertString(array $options, string $option) : void

View File

@ -20,7 +20,6 @@ use function max;
use function min; use function min;
use function str_ends_with; use function str_ends_with;
use function stream_get_contents; use function stream_get_contents;
use function strlen;
use function substr; use function substr;
use RectorPrefix202403\SebastianBergmann\Diff\Differ; use RectorPrefix202403\SebastianBergmann\Diff\Differ;
/** /**
@ -59,7 +58,7 @@ final class UnifiedDiffOutputBuilder extends AbstractChunkOutputBuilder
$buffer = fopen('php://memory', 'r+b'); $buffer = fopen('php://memory', 'r+b');
if ('' !== $this->header) { if ('' !== $this->header) {
fwrite($buffer, $this->header); fwrite($buffer, $this->header);
if (\substr_compare($this->header, "\n", -strlen("\n")) !== 0) { if (\substr_compare($this->header, "\n", -\strlen("\n")) !== 0) {
fwrite($buffer, "\n"); fwrite($buffer, "\n");
} }
} }
@ -71,7 +70,7 @@ final class UnifiedDiffOutputBuilder extends AbstractChunkOutputBuilder
// If the diff is non-empty and last char is not a linebreak: add it. // If the diff is non-empty and last char is not a linebreak: add it.
// This might happen when both the `from` and `to` do not have a trailing linebreak // This might happen when both the `from` and `to` do not have a trailing linebreak
$last = substr($diff, -1); $last = substr($diff, -1);
return 0 !== strlen($diff) && "\n" !== $last && "\r" !== $last ? $diff . "\n" : $diff; return '' !== $diff && "\n" !== $last && "\r" !== $last ? $diff . "\n" : $diff;
} }
private function writeDiffHunks($output, array $diff) : void private function writeDiffHunks($output, array $diff) : void
{ {