From 61a18def236993ca2af7b190902b5db1e1cc5efc Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Mon, 4 Nov 2013 18:08:46 -0500 Subject: [PATCH] Add `in-set` to Typed Racket Closes PR 14128 original commit: 3fa3225c544160b3d2f0448012de1d7cd66b5195 --- .../typed-racket/base-env/base-special-env.rkt | 3 +++ .../typed-racket/unit-tests/typecheck-tests.rkt | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-special-env.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-special-env.rkt index 62968eb7..b1aaa8d9 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-special-env.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-special-env.rkt @@ -139,6 +139,9 @@ ;; in-bytes-lines [(make-template-identifier 'in-bytes-lines 'racket/private/for) (->opt [-Input-Port -Symbol] (-seq -Bytes))] + ;; in-set + [(make-template-identifier 'in-set 'racket/private/set) + (-poly (a) (-> (-set a) (-seq a)))] ;; check-in-bytes-lines [(make-template-identifier 'check-in-bytes-lines 'racket/private/for) (-> Univ Univ Univ)] diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt index 8c0933d3..16b180ad 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt @@ -1802,6 +1802,21 @@ ;; Unit test for PR 13298. Should raise an unbound id error ;; instead of just allowing `x` to be undefined [tc-err (let () (: x Number) 3)] + + ;; Sets as sequences + [tc-e (in-set (set 1 2 3)) (-seq -PosByte)] + [tc-e + (let () + (: lst (Listof Integer)) + (define lst + (for/list: : (Listof Integer) ([i : Integer (set 1 2 3)]) i)) + (void)) + -Void] + [tc-e + (let () + (for: ([k : Symbol (in-set (set 'x 'y 'z))]) (displayln k)) + (void)) + -Void] ) (test-suite "tc-literal tests"