Commit eb6fb26
committed
Drop the after-loop restore to keep mutation testing at 100% MSI
The restore that kept the after-loop scope conservative under the toggle had a
guard, `!$iterateeCertainty->no()`, whose TrinaryLogicMutator mutant
(`$iterateeCertainty->yes()`) is equivalent: the two differ only when the
iteratee is a maybe-defined variable, and there the value variable's certainty
is already dominated by the iteratee's own maybe-definedness, so no test can
observe the difference. Infection therefore reports it as escaped and there is
no ignore mechanism.
Since the toggle is opt-in, drop the restore instead of chasing the equivalent
mutant. The foreach body still narrows the iterated expression; the after-loop
scope now simply keeps that precision (a value variable can be seen as defined
where the iteratee is later proven non-empty). The only remaining changed line,
the $iterateeScope condition, is fully covered by the existing bug-13312 tests.1 parent c363781 commit eb6fb26
1 file changed
Lines changed: 0 additions & 28 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
148 | 147 | | |
149 | 148 | | |
150 | 149 | | |
| |||
1708 | 1707 | | |
1709 | 1708 | | |
1710 | 1709 | | |
1711 | | - | |
1712 | | - | |
1713 | | - | |
1714 | | - | |
1715 | | - | |
1716 | | - | |
1717 | | - | |
1718 | | - | |
1719 | | - | |
1720 | | - | |
1721 | | - | |
1722 | | - | |
1723 | | - | |
1724 | | - | |
1725 | | - | |
1726 | | - | |
1727 | | - | |
1728 | | - | |
1729 | | - | |
1730 | | - | |
1731 | | - | |
1732 | | - | |
1733 | | - | |
1734 | | - | |
1735 | | - | |
1736 | | - | |
1737 | | - | |
1738 | 1710 | | |
1739 | 1711 | | |
1740 | 1712 | | |
| |||
0 commit comments