diff --git a/pkgs/racket-test-core/tests/racket/set.rktl b/pkgs/racket-test-core/tests/racket/set.rktl index 99013eeaeb..9206cb0526 100644 --- a/pkgs/racket-test-core/tests/racket/set.rktl +++ b/pkgs/racket-test-core/tests/racket/set.rktl @@ -139,6 +139,9 @@ 'set-symmetric-difference/list '(1 3)) +(test #t equal? (set) (let ([a (set 1 2 3)]) (set-symmetric-difference a a))) +(test #t equal? (set) (let ([a (set 1 2 3)] [b (set 1 2 3)]) (set-symmetric-difference a b))) + (let ([s (set 1 2 3)]) (test #t equal? s (set-add (set-add (set-add (set) 1) 2) 3)) (test #t equal? (seteq 1 2 3) (seteq 1 2 3)) diff --git a/racket/collects/racket/private/set-types.rkt b/racket/collects/racket/private/set-types.rkt index 3cac666e70..bc22c1c6a3 100644 --- a/racket/collects/racket/private/set-types.rkt +++ b/racket/collects/racket/private/set-types.rkt @@ -186,8 +186,7 @@ s (for/fold ([table (custom-set-table largest-immutable)]) - ([s2 (in-list (cons s sets))] - #:unless (eq? s2 largest-immutable)) + ([s2 (in-list (remove largest-immutable (cons s sets)))]) (for/fold ([table table]) ([x (in-hash-keys (custom-set-table s2))]) (if (hash-ref table x #f) (hash-remove table x)