Make for/fold/derived check the values in the body in the last clause.
Closes PR 13285.
This commit is contained in:
parent
acd1fe7f8d
commit
9c014b61e6
|
@ -435,4 +435,11 @@
|
||||||
(err/rt-test (for/fold () ([x '(1 2)]) x) exn:fail:contract:arity?)
|
(err/rt-test (for/fold () ([x '(1 2)]) x) exn:fail:contract:arity?)
|
||||||
(err/rt-test (for*/fold () ([x '(1 2)]) x) exn:fail:contract:arity?)
|
(err/rt-test (for*/fold () ([x '(1 2)]) x) exn:fail:contract:arity?)
|
||||||
|
|
||||||
|
;; for/fold result-arity checking:
|
||||||
|
(err/rt-test (begin (for/fold () ([i (in-range 10)]) 1) 1) #rx".*expected number of values not received.*")
|
||||||
|
(err/rt-test (begin (for/fold () () 1) 1) #rx".*expected number of values not received.*")
|
||||||
|
(err/rt-test (begin (for/fold ([x 1]) () (values 1 2)) 1) #rx".*expected number of values not received.*")
|
||||||
|
(err/rt-test (begin (for/fold ([x 1] [y 2]) ([i (in-range 10)]) 1) 1) #rx".*expected number of values not received.*")
|
||||||
|
(test 1 'one (begin (for/fold () () (values)) 1))
|
||||||
|
|
||||||
(report-errs)
|
(report-errs)
|
||||||
|
|
|
@ -1240,7 +1240,9 @@
|
||||||
;; Done case (no more clauses, and no generated clauses to emit):
|
;; Done case (no more clauses, and no generated clauses to emit):
|
||||||
[(_ [orig-stx nested? emit? ()] ([fold-var fold-init] ...) ()
|
[(_ [orig-stx nested? emit? ()] ([fold-var fold-init] ...) ()
|
||||||
expr1 expr ...)
|
expr1 expr ...)
|
||||||
#`(let ([fold-var fold-init] ...) (let () expr1 expr ...))]
|
#`(let ([fold-var fold-init] ...)
|
||||||
|
(let-values ([(fold-var ...) (let () expr1 expr ...)])
|
||||||
|
(values fold-var ...)))]
|
||||||
;; Switch-to-emit case (no more clauses to generate):
|
;; Switch-to-emit case (no more clauses to generate):
|
||||||
[(_ [orig-stx nested? #f binds] ([fold-var fold-init] ...) () . body)
|
[(_ [orig-stx nested? #f binds] ([fold-var fold-init] ...) () . body)
|
||||||
#`(for/foldX/derived [orig-stx nested? #t binds]
|
#`(for/foldX/derived [orig-stx nested? #t binds]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user