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?)
|
||||
|
||||
;; 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)
|
||||
|
|
|
@ -1240,7 +1240,9 @@
|
|||
;; Done case (no more clauses, and no generated clauses to emit):
|
||||
[(_ [orig-stx nested? emit? ()] ([fold-var fold-init] ...) ()
|
||||
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):
|
||||
[(_ [orig-stx nested? #f binds] ([fold-var fold-init] ...) () . body)
|
||||
#`(for/foldX/derived [orig-stx nested? #t binds]
|
||||
|
|
Loading…
Reference in New Issue
Block a user