From 0be76c5537eed5de6054e0ea8a227e62b20ec8ad Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 13 Dec 2016 19:43:03 -0700 Subject: [PATCH] sync with change to `for` expansion The expansion of `for` for a generic sequence has changed to receive and use an extra result from the internal `make-sequence` function. --- typed-racket-lib/info.rkt | 2 +- typed-racket-lib/typed-racket/base-env/base-special-env.rkt | 1 + typed-racket-lib/typed-racket/optimizer/sequence.rkt | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/typed-racket-lib/info.rkt b/typed-racket-lib/info.rkt index e5686824..aca2f5a2 100644 --- a/typed-racket-lib/info.rkt +++ b/typed-racket-lib/info.rkt @@ -2,7 +2,7 @@ (define collection 'multi) -(define deps '(("base" #:version "6.4.0.5") +(define deps '(("base" #:version "6.7.0.4") "source-syntax" "compatibility-lib" ;; to assign types "string-constants-lib")) diff --git a/typed-racket-lib/typed-racket/base-env/base-special-env.rkt b/typed-racket-lib/typed-racket/base-env/base-special-env.rkt index 08d2ee83..ca2ca67c 100644 --- a/typed-racket-lib/typed-racket/base-env/base-special-env.rkt +++ b/typed-racket-lib/typed-racket/base-env/base-special-env.rkt @@ -58,6 +58,7 @@ (lambda (a) (-values (list (-> Univ (-values a)) + (Un (-> Univ Univ) (-val #f)) (-> Univ Univ) Univ (Un (-> Univ Univ) (-val #f)) diff --git a/typed-racket-lib/typed-racket/optimizer/sequence.rkt b/typed-racket-lib/typed-racket/optimizer/sequence.rkt index 4da7afe0..1eb36f94 100644 --- a/typed-racket-lib/typed-racket/optimizer/sequence.rkt +++ b/typed-racket-lib/typed-racket/optimizer/sequence.rkt @@ -48,7 +48,7 @@ (pattern (#%plain-app op:make-sequence _ l:list-expr) #:do [(log-seq-opt "in-list" #'l)] #:with opt #'(let ((i l.opt)) - (values unsafe-car unsafe-cdr i + (values unsafe-car unsafe-cdr values i (lambda (x) (not (null? x))) (lambda (x) #t) (lambda (x y) #t)))) @@ -58,6 +58,7 @@ #:with opt #'(let* ((i v.opt) (len (unsafe-vector-length i))) (values (lambda (x) (unsafe-vector-ref i x)) + #f (lambda (x) (unsafe-fx+ 1 x)) 0 (lambda (x) (unsafe-fx< x len)) @@ -69,6 +70,7 @@ #:with opt #'(let* ((i s.opt) (len (string-length i))) (values (lambda (x) (string-ref i x)) + #f (lambda (x) (unsafe-fx+ 1 x)) 0 (lambda (x) (unsafe-fx< x len)) @@ -79,6 +81,7 @@ #:with opt #'(let* ((i s.opt) (len (bytes-length i))) (values (lambda (x) (bytes-ref i x)) + #f (lambda (x) (unsafe-fx+ 1 x)) 0 (lambda (x) (unsafe-fx< x len)) @@ -88,6 +91,7 @@ #:do [(log-seq-opt "in-range" #'s)] #:with opt #'(let* ((end s.opt)) (values (lambda (x) x) + #f (lambda (x) (unsafe-fx+ 1 x)) 0 (lambda (x) (unsafe-fx< x end))