From 1c7cdfb302629606903385dd830a59631cf1273c Mon Sep 17 00:00:00 2001 From: Carl Eastlund Date: Sat, 27 Jul 2013 13:13:40 -0400 Subject: [PATCH] Fixed a few bugs in set/c's keyword options, and one test for set/c. Specifically, set/c no longer behaves as a flat contract, so it is necessary to apply at least one set operation to detect a contract error on an element. It is possible the flat behavior can be restored for some kinds of sets, but it's not immediately obvious what kinds those should be. (Immutable hash sets in particular? Any sets that don't implement set-add! or set-remove!?) --- pkgs/racket-pkgs/racket-test/tests/racket/contract/set.rkt | 6 +++--- racket/collects/racket/set.rkt | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/racket-pkgs/racket-test/tests/racket/contract/set.rkt b/pkgs/racket-pkgs/racket-test/tests/racket/contract/set.rkt index c641e8634d..c203fcfd1a 100644 --- a/pkgs/racket-pkgs/racket-test/tests/racket/contract/set.rkt +++ b/pkgs/racket-pkgs/racket-test/tests/racket/contract/set.rkt @@ -13,9 +13,9 @@ (test/pos-blame 'set/c2 - '(contract (set/c integer?) - (set #t) - 'pos 'neg)) + '(set-first (contract (set/c integer?) + (set #t) + 'pos 'neg))) (test/pos-blame 'set/c3 diff --git a/racket/collects/racket/set.rkt b/racket/collects/racket/set.rkt index a0ee57d89a..e0f7c5cf0a 100644 --- a/racket/collects/racket/set.rkt +++ b/racket/collects/racket/set.rkt @@ -96,10 +96,10 @@ (unless (set-equal? x) (raise-blame-error b x "expected an equal?-based set"))] [(eqv) - (unless (set-equal? x) + (unless (set-eqv? x) (raise-blame-error b x "expected an eqv?-based set"))] [(eq) - (unless (set-equal? x) + (unless (set-eq? x) (raise-blame-error b x "expected an eq?-based set"))]) (case kind [(mutable-or-weak) @@ -109,7 +109,7 @@ (unless (set-mutable? x) (raise-blame-error b x "expected a mutable set"))] [(weak) - (unless (set-mutable? x) + (unless (set-weak? x) (raise-blame-error b x "expected a weak set"))] [(immutable) (unless (set-immutable? x)