diff --git a/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt b/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt index f3975702dc..a9e400e588 100644 --- a/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt +++ b/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt @@ -1165,8 +1165,28 @@ (tc-e (make-lock-file-name "tmp.dir" "tmp.file") -Pathlike) + ;New set operations + (tc-e (set-union (set 'one) (set 'two)) (-set (one-of/c 'one 'two))) + (tc-e (set-intersect (set 'one) (set 'two)) (-set (-val 'one))) + (tc-e (set-subtract (set 'one) (set 'two)) (-set (-val 'one))) + (tc-e (set-symmetric-difference (set 'one) (set 'two)) (-set (one-of/c 'one 'two))) + + (tc-e (list->set (list 'one 'two)) (-set (one-of/c 'one 'two))) + (tc-e (list->seteq (list 'one 'two)) (-set (one-of/c 'one 'two))) + (tc-e (list->seteqv (list 'one 'two)) (-set (one-of/c 'one 'two))) + (tc-e (set->list (set 'one 'two)) (-lst (one-of/c 'one 'two))) + ;Syntax + + (tc-e (syntax? #'id) #:ret (ret B (-FS -top -bot))) + (tc-e (syntax? 2) #:ret (ret B (-FS -bot -top))) + + (tc-e (syntax-source #'here) Univ) + (tc-e (syntax-line #'here) (-opt -PosInt)) + (tc-e (syntax-column #'here) (-opt -Nat)) + (tc-e (syntax-position #'here) (-opt -PosInt)) + (tc-e (syntax-span #'here) (-opt -Nat)) diff --git a/collects/typed-scheme/base-env/base-env.rkt b/collects/typed-scheme/base-env/base-env.rkt index 71f52f4e98..2cc1d51e33 100644 --- a/collects/typed-scheme/base-env/base-env.rkt +++ b/collects/typed-scheme/base-env/base-env.rkt @@ -993,7 +993,7 @@ [set-union (-poly (e) (->* (list (-set e)) (-set e) (-set e)))] [set-intersect (-poly (a b) (->* (list (-set a)) (-set b) (-set a)))] [set-subtract (-poly (a b) (->* (list (-set a)) (-set b) (-set a)))] -[set-symmetric-difference (-poly (a b) (->* (list (-set a)) (-set b) (-set a)))] +[set-symmetric-difference (-poly (e) (->* (list (-set e)) (-set e) (-set e)))] [set=? (-poly (a b) (-> (-set a) (-set b) B))]