Skip to content

Commit 949012e

Browse files
Refacto
1 parent 04bb72f commit 949012e

File tree

1 file changed

+8
-24
lines changed

1 file changed

+8
-24
lines changed

src/Analyser/NodeScopeResolver.php

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,16 +1522,12 @@ private function processStmtNode(
15221522
}
15231523

15241524
$breakExitPoints = $finalScopeResult->getExitPointsByType(Break_::class);
1525-
if ($alwaysIterates && count($breakExitPoints) > 0) {
1526-
$breakScope = null;
1525+
if (count($breakExitPoints) > 0) {
1526+
$breakScope = $alwaysIterates ? null : $finalScope;
15271527
foreach ($breakExitPoints as $breakExitPoint) {
15281528
$breakScope = $breakScope === null ? $breakExitPoint->getScope() : $breakScope->mergeWith($breakExitPoint->getScope());
15291529
}
15301530
$finalScope = $breakScope;
1531-
} else {
1532-
foreach ($breakExitPoints as $breakExitPoint) {
1533-
$finalScope = $finalScope->mergeWith($breakExitPoint->getScope());
1534-
}
15351531
}
15361532

15371533
$isIterableAtLeastOnce = $beforeCondBooleanType->isTrue()->yes();
@@ -1639,18 +1635,12 @@ private function processStmtNode(
16391635
}
16401636

16411637
$breakExitPoints = $bodyScopeResult->getExitPointsByType(Break_::class);
1642-
if ($alwaysIterates && count($breakExitPoints) > 0) {
1643-
$breakScope = null;
1638+
if (count($breakExitPoints) > 0) {
1639+
$breakScope = $alwaysIterates ? null : $finalScope;
16441640
foreach ($breakExitPoints as $breakExitPoint) {
1645-
$breakScope = $breakScope === null
1646-
? $breakExitPoint->getScope()
1647-
: $breakScope->mergeWith($breakExitPoint->getScope());
1641+
$breakScope = $breakScope === null ? $breakExitPoint->getScope() : $breakScope->mergeWith($breakExitPoint->getScope());
16481642
}
16491643
$finalScope = $breakScope;
1650-
} else {
1651-
foreach ($breakExitPoints as $breakExitPoint) {
1652-
$finalScope = $finalScope->mergeWith($breakExitPoint->getScope());
1653-
}
16541644
}
16551645

16561646
return new InternalStatementResult(
@@ -1762,18 +1752,12 @@ private function processStmtNode(
17621752
}
17631753

17641754
$breakExitPoints = $finalScopeResult->getExitPointsByType(Break_::class);
1765-
if ($alwaysIterates->yes() && count($breakExitPoints) > 0) {
1766-
$breakScope = null;
1755+
if (count($breakExitPoints) > 0) {
1756+
$breakScope = $alwaysIterates->yes() ? null : $finalScope;
17671757
foreach ($breakExitPoints as $breakExitPoint) {
1768-
$breakScope = $breakScope === null
1769-
? $breakExitPoint->getScope()
1770-
: $breakScope->mergeWith($breakExitPoint->getScope());
1758+
$breakScope = $breakScope === null ? $breakExitPoint->getScope() : $breakScope->mergeWith($breakExitPoint->getScope());
17711759
}
17721760
$finalScope = $breakScope;
1773-
} else {
1774-
foreach ($breakExitPoints as $breakExitPoint) {
1775-
$finalScope = $finalScope->mergeWith($breakExitPoint->getScope());
1776-
}
17771761
}
17781762

17791763
if ($isIterableAtLeastOnce->no() || $finalScopeResult->isAlwaysTerminating()) {

0 commit comments

Comments
 (0)