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.
This commit is contained in:
Matthew Flatt 2016-12-13 19:43:03 -07:00
parent 67bf3db5b8
commit 0be76c5537
3 changed files with 7 additions and 2 deletions

View File

@ -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"))

View File

@ -58,6 +58,7 @@
(lambda (a)
(-values (list
(-> Univ (-values a))
(Un (-> Univ Univ) (-val #f))
(-> Univ Univ)
Univ
(Un (-> Univ Univ) (-val #f))

View File

@ -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))