Updated Rector to commit 1848724bf2308c31e53d0937013715fa7a40a9c3

1848724bf2 [EarlyReturn] Skip append variable in PreparedValueToEarlyReturnRector (#8390) (#5545)
This commit is contained in:
Tomas Votruba 2024-02-02 21:56:32 +00:00
parent 5c93328f48
commit 2080c1456d
2 changed files with 28 additions and 10 deletions

View File

@ -93,19 +93,20 @@ CODE_SAMPLE
if ($node->stmts === null) {
return null;
}
/** @var BareSingleAssignIf[] $bareSingleAssignIfs */
$bareSingleAssignIfs = [];
/** @var If_[] $ifs */
$ifs = [];
$initialAssign = null;
$initialAssignPosition = null;
foreach ($node->stmts as $key => $stmt) {
$bareSingleAssignIf = $this->matchBareSingleAssignIf($stmt, $key, $node);
if ($bareSingleAssignIf instanceof BareSingleAssignIf) {
$bareSingleAssignIfs[] = $bareSingleAssignIf;
if ($stmt instanceof If_) {
$ifs[$key] = $stmt;
continue;
}
if ($stmt instanceof Expression && $stmt->expr instanceof Assign) {
$initialAssign = $stmt->expr;
$initialAssignPosition = $key;
$ifs = [];
continue;
}
if (!$stmt instanceof Return_) {
continue;
@ -121,16 +122,33 @@ CODE_SAMPLE
if (!$initialAssign instanceof Assign) {
return null;
}
if ($bareSingleAssignIfs === []) {
$matchingBareSingleAssignIfs = $this->getMatchingBareSingleAssignIfs($ifs, $node);
if ($matchingBareSingleAssignIfs === []) {
return null;
}
if (!$this->isVariableSharedInAssignIfsAndReturn($bareSingleAssignIfs, $return->expr, $initialAssign)) {
if (!$this->isVariableSharedInAssignIfsAndReturn($matchingBareSingleAssignIfs, $return->expr, $initialAssign)) {
return null;
}
return $this->refactorToDirectReturns($node, $initialAssignPosition, $bareSingleAssignIfs, $initialAssign, $return);
return $this->refactorToDirectReturns($node, $initialAssignPosition, $matchingBareSingleAssignIfs, $initialAssign, $return);
}
return null;
}
/**
* @param If_[] $ifs
* @return BareSingleAssignIf[]
*/
private function getMatchingBareSingleAssignIfs(array $ifs, StmtsAwareInterface $stmtsAware) : array
{
$bareSingleAssignIfs = [];
foreach ($ifs as $key => $if) {
$bareSingleAssignIf = $this->matchBareSingleAssignIf($if, $key, $stmtsAware);
if (!$bareSingleAssignIf instanceof BareSingleAssignIf) {
return [];
}
$bareSingleAssignIfs[] = $bareSingleAssignIf;
}
return $bareSingleAssignIfs;
}
/**
* @param BareSingleAssignIf[] $bareSingleAssignIfs
*/

View File

@ -19,12 +19,12 @@ final class VersionResolver
* @api
* @var string
*/
public const PACKAGE_VERSION = 'cdc57233696fd680c8ebe3040b02c54d1da9c779';
public const PACKAGE_VERSION = '1848724bf2308c31e53d0937013715fa7a40a9c3';
/**
* @api
* @var string
*/
public const RELEASE_DATE = '2024-02-02 13:43:27';
public const RELEASE_DATE = '2024-02-03 04:54:25';
/**
* @var int
*/