Fixes bug with `in-hole' generation

This commit is contained in:
Casey Klein 2010-11-15 07:34:05 -06:00
parent e7e504741e
commit 1147318426
2 changed files with 8 additions and 3 deletions

View File

@ -307,12 +307,13 @@
(let ([ctx (recur context)]
[ctm (recur contractum)])
(λ (r s a e h)
(let-values ([(term env) (ctm r s a e h)])
(ctx r s a env term))))]
(let*-values ([(tctm env) (ctm r s a e h)]
[(tctx env) (ctx r s a env the-hole)])
(values (plug tctx tctm) env))))]
[`(hide-hole ,pattern)
(let ([g (recur pattern)])
(λ (r s a e h)
(g r s a e the-hole)))]
(g r s a e the-not-hole)))]
[`any
(λ (r s a e h)
(let*-values ([(lang nt) ((next-any-decision) langc sexpc)]

View File

@ -412,6 +412,10 @@
#:num (build-list 5 (λ (x) (λ (_) x)))))
'(+ (+ 1 2) (+ 0 (+ 3 4))))
(test (let/ec k
(generate-term lang (side-condition (in-hole C_1 1) (k (term C_1))) 5))
(term hole))
(test (generate-term lang (in-hole (in-hole (1 hole) hole) 5) 5) '(1 5))
(test (generate-term lang (hole 4) 5) (term (hole 4)))
(test (generate-term/decisions