From a4b5d5d935b55f90fb46da67521cffed8b1812c9 Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Wed, 30 Nov 2011 16:35:35 -0500 Subject: [PATCH] Allow integers as sequences in TR. original commit: 8509b81f4701dbaa06f5b113b431768430db5039 --- collects/tests/typed-racket/succeed/for.rkt | 23 +++++++++++++++++++ .../base-env/base-special-env.rkt | 5 ++++ 2 files changed, 28 insertions(+) diff --git a/collects/tests/typed-racket/succeed/for.rkt b/collects/tests/typed-racket/succeed/for.rkt index 8dfd6c08..86bce860 100644 --- a/collects/tests/typed-racket/succeed/for.rkt +++ b/collects/tests/typed-racket/succeed/for.rkt @@ -160,3 +160,26 @@ ([i : Integer (in-range 1 10)]) i) 362880) + + +;; Integers as sequences. +(check = + (for/sum: : Integer + ([i : Byte 4]) + i) + 6) +(check = + (for/sum: : Integer + ([i : Index (ann 4 Index)]) + i) + 6) +(check = + (for/sum: : Integer + ([i : Nonnegative-Fixnum (ann 4 Fixnum)]) + i) + 6) +(check = + (for/sum: : Integer + ([i : Natural (ann 4 Integer)]) + i) + 6) diff --git a/collects/typed-racket/base-env/base-special-env.rkt b/collects/typed-racket/base-env/base-special-env.rkt index 9b3e034f..050c79f4 100644 --- a/collects/typed-racket/base-env/base-special-env.rkt +++ b/collects/typed-racket/base-env/base-special-env.rkt @@ -64,6 +64,11 @@ (Un (->* a Univ) (-val #f)) (Un (->* (cons Univ a) Univ) (-val #f)))))]) (cl->* + (-> Univ -Byte (seq-vals (list -Byte))) + (-> Univ -Index (seq-vals (list -Index))) + ;; Generous. Negative numbers aren't allowed. + (-> Univ -Fixnum (seq-vals (list -NonNegFixnum))) + (-> Univ -Int (seq-vals (list -Nat))) (-> Univ (-seq a) (seq-vals (list a))) (-> Univ (-seq a b) (seq-vals (list a b))))))] ;; in-range