Commit a349699
committed
1. Nested namedtuple set/frozenset updates could replace the whole result with the inner
namedtuple, dropping the outer container.
Fixed by updating the namedtuple in its actual parent when nested, while preserving root-level
namedtuple behavior.
2. Tuple deltas using iterable opcodes could silently do nothing for insert/delete-only changes.
Fixed by writing the transformed tuple back instead of reconstructing the original tuple.
3. Applying a delta with both moved and added iterable items could mutate the delta’s own
internal diff data.
Fixed by copying the added-items mapping before inserting temporary move placeholders.
4. Removing multiple dictionary items with complex keys could crash during path sorting.
Fixed by correcting the None check and falling back to string comparison when same-type path
elements are still not orderable.
Regression tests were added for each case, and the full Delta test suite passes.1 parent 2db8427 commit a349699
2 files changed
Lines changed: 52 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
391 | 391 | | |
392 | 392 | | |
393 | 393 | | |
394 | | - | |
| 394 | + | |
395 | 395 | | |
396 | 396 | | |
397 | 397 | | |
| |||
448 | 448 | | |
449 | 449 | | |
450 | 450 | | |
451 | | - | |
| 451 | + | |
452 | 452 | | |
453 | 453 | | |
454 | 454 | | |
| |||
457 | 457 | | |
458 | 458 | | |
459 | 459 | | |
460 | | - | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
461 | 466 | | |
462 | 467 | | |
463 | 468 | | |
| |||
677 | 682 | | |
678 | 683 | | |
679 | 684 | | |
680 | | - | |
| 685 | + | |
681 | 686 | | |
682 | 687 | | |
683 | 688 | | |
| |||
725 | 730 | | |
726 | 731 | | |
727 | 732 | | |
728 | | - | |
729 | | - | |
730 | | - | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
731 | 737 | | |
732 | | - | |
| 738 | + | |
733 | 739 | | |
734 | | - | |
735 | | - | |
736 | | - | |
737 | | - | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
738 | 749 | | |
739 | | - | |
| 750 | + | |
740 | 751 | | |
741 | 752 | | |
742 | 753 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
645 | 645 | | |
646 | 646 | | |
647 | 647 | | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
648 | 674 | | |
649 | 675 | | |
650 | 676 | | |
| |||
2133 | 2159 | | |
2134 | 2160 | | |
2135 | 2161 | | |
| 2162 | + | |
2136 | 2163 | | |
2137 | 2164 | | |
| 2165 | + | |
2138 | 2166 | | |
2139 | 2167 | | |
2140 | 2168 | | |
| |||
0 commit comments