Initialize fail-escape in contract-exercise

Some exercise procedure might invoke
contract-random-generate/choose, therefore
fail-escape needs to be initialized.
This commit is contained in:
shhyou 2018-08-02 14:06:54 -05:00 committed by Robby Findler
parent 5ba910d143
commit 43b0cd4a7e
2 changed files with 11 additions and 1 deletions

View File

@ -435,3 +435,11 @@
(λ (x) (λ (y) #f))
'pos
'neg))
(check-exercise
5
void?
(contract (-> (and/c #f #t) any)
(λ (_) 'thing)
'pos
'neg))

View File

@ -61,7 +61,9 @@
[(null? exers) (void)]
[(null? vals) (loop exers orig-vals)]
[else
((car exers) (car vals))
(let/ec k
(parameterize ([fail-escape (λ () (k))])
((car exers) (car vals))))
(loop (cdr exers) (cdr vals))])))
available-ctcs)]
[else