From 395f539e5f5433b1485e1b16baed255368b808d9 Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Sat, 9 Feb 2013 10:47:07 -0800 Subject: [PATCH] Fix type of set?. Closes PR13509. original commit: 485f246f39cd44f0c1cf3d838a3b624bc9331078 --- collects/tests/typed-racket/unit-tests/typecheck-tests.rkt | 4 ++++ collects/typed-racket/base-env/base-env.rkt | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt b/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt index 1cd017e3..b6baa0fc 100644 --- a/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt +++ b/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt @@ -1575,6 +1575,10 @@ [tc-err (let () (: g (All (i ...) Any -> (values Any ... i))) (define (g x) 2))] + [tc-err + (let ((s (ann (set 2) Any))) + (if (set? s) (ann s (Setof String)) ((inst set String))))] + ) (test-suite "check-type tests" diff --git a/collects/typed-racket/base-env/base-env.rkt b/collects/typed-racket/base-env/base-env.rkt index 95c7c345..fc3426e9 100644 --- a/collects/typed-racket/base-env/base-env.rkt +++ b/collects/typed-racket/base-env/base-env.rkt @@ -985,6 +985,8 @@ [set-empty? (-poly (e) (-> (-set e) B))] [set-count (-poly (e) (-> (-set e) -Index))] [set-member? (-poly (e) (-> (-set e) e B))] +[set-first (-poly (e) (-> (-set e) e))] +[set-rest (-poly (e) (-> (-set e) (-set e)))] [set-add (-poly (e) (-> (-set e) e (-set e)))] [set-remove (-poly (e) (-> (-set e) e (-set e)))] @@ -999,17 +1001,18 @@ [proper-subset? (-poly (e) (-> (-set e) (-set e) B))] [set-map (-poly (e b) (-> (-set e) (-> e b) (-lst b)))] [set-for-each (-poly (e b) (-> (-set e) (-> e b) -Void))] -[set? (make-pred-ty (-poly (e) (-set e)))] +[set? (make-pred-ty (-set Univ))] [set-equal? (-poly (e) (-> (-set e) B))] [set-eqv? (-poly (e) (-> (-set e) B))] [set-eq? (-poly (e) (-> (-set e) B))] - +[in-set (-poly (e) (-> (-set e) (-seq e)))] [list->set (-poly (e) (-> (-lst e) (-set e)))] [list->seteq (-poly (e) (-> (-lst e) (-set e)))] [list->seteqv (-poly (e) (-> (-lst e) (-set e)))] [set->list (-poly (e) (-> (-set e) (-lst e)))] +;Section 3.4 (Byte Strings) [bytes (->* (list) -Integer -Bytes)] [bytes? (make-pred-ty -Bytes)] [make-bytes (cl-> [(-Integer -Integer) -Bytes]