Skip to content

Preserve uniqueness in symmetric_difference_update - #108

Open
vitalivo wants to merge 1 commit into
rspeer:masterfrom
vitalivo:fix/symmetric-difference-duplicates
Open

vitalivo wants to merge 1 commit into
rspeer:masterfrom
vitalivo:fix/symmetric-difference-duplicates

Conversation

@vitalivo

Copy link
Copy Markdown

This replaces #107, which was accidentally closed and its source fork deleted. The implementation is unchanged; the original discussion and reviews remain linked there.


OrderedSet([1, 2]).symmetric_difference_update([2, 3, 3]) leaves [1, 3, 3] in the internal item list. Its length and index map then disagree with set semantics.

Materialize the operand as an OrderedSet before calculating additions and removals. This deduplicates new elements while preserving their first-seen order. Added list and tuple regressions that check contents, length, and index lookups; both fail before the fix.

Validation: all 55 tests/doctests pass on Python 3.14; 54 package/test-directory tests pass on Python 3.10. Current mypy reports the same 10 pre-existing diagnostics on both the base and this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant