Commit b4f9aaf
perf: replace ValueOption tracking with while! in pairwise and distinctUntilChanged family
pairwise, distinctUntilChanged, distinctUntilChangedWith, and
distinctUntilChangedWithAsync previously used a ValueOption mutable
and a for-in loop over the source to track the 'previous' element.
used in other optimized functions (except, exceptOfSeq, skipWhile, etc.).
This avoids the per-element struct match (ValueNone vs ValueSome branch)
and is structurally consistent with the rest of the library.
All 5251 tests pass.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent fc687a3 commit b4f9aaf
2 files changed
Lines changed: 41 additions & 39 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1488 | 1488 | | |
1489 | 1489 | | |
1490 | 1490 | | |
1491 | | - | |
| 1491 | + | |
| 1492 | + | |
1492 | 1493 | | |
1493 | | - | |
1494 | | - | |
1495 | | - | |
1496 | | - | |
1497 | | - | |
1498 | | - | |
1499 | | - | |
1500 | | - | |
1501 | | - | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
1502 | 1502 | | |
1503 | | - | |
| 1503 | + | |
1504 | 1504 | | |
1505 | 1505 | | |
1506 | 1506 | | |
1507 | 1507 | | |
1508 | 1508 | | |
1509 | 1509 | | |
1510 | | - | |
| 1510 | + | |
| 1511 | + | |
1511 | 1512 | | |
1512 | | - | |
1513 | | - | |
1514 | | - | |
1515 | | - | |
1516 | | - | |
1517 | | - | |
1518 | | - | |
1519 | | - | |
1520 | | - | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
1521 | 1521 | | |
1522 | | - | |
| 1522 | + | |
1523 | 1523 | | |
1524 | 1524 | | |
1525 | 1525 | | |
1526 | 1526 | | |
1527 | 1527 | | |
1528 | 1528 | | |
1529 | | - | |
| 1529 | + | |
| 1530 | + | |
1530 | 1531 | | |
1531 | | - | |
1532 | | - | |
1533 | | - | |
1534 | | - | |
1535 | | - | |
1536 | | - | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
1537 | 1538 | | |
1538 | 1539 | | |
1539 | | - | |
1540 | | - | |
1541 | | - | |
| 1540 | + | |
1542 | 1541 | | |
1543 | | - | |
| 1542 | + | |
1544 | 1543 | | |
1545 | 1544 | | |
1546 | 1545 | | |
1547 | 1546 | | |
1548 | 1547 | | |
1549 | 1548 | | |
1550 | | - | |
| 1549 | + | |
| 1550 | + | |
1551 | 1551 | | |
1552 | | - | |
1553 | | - | |
1554 | | - | |
1555 | | - | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
1556 | 1557 | | |
1557 | | - | |
| 1558 | + | |
1558 | 1559 | | |
1559 | 1560 | | |
1560 | 1561 | | |
| |||
0 commit comments