fix bytecode compiler bug

This commit is contained in:
Matthew Flatt 2011-11-10 13:24:45 -07:00
parent 233323faac
commit 43e421faf4
2 changed files with 19 additions and 1 deletions

View File

@ -1725,6 +1725,24 @@
(unc1))))
(unc1))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Regression test related to the `let'-resolve pass:
(module check-against-problem-in-let-resolver racket/base
(let-values (((fail2) 12))
(let ([debugger-local-bindings
(lambda ()
(case-lambda ((v) (set! fail2 v))))])
(let ([f3 (lambda ()
(let ([debugger-local-bindings
(lambda ()
(debugger-local-bindings))])
'3))])
(let ([debugger-local-bindings
(lambda ()
(case-lambda ((v) (set! f3 v))))])
(f3))))))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(report-errs)

View File

@ -1429,7 +1429,7 @@ scheme_resolve_lets(Scheme_Object *form, Resolve_Info *info)
if (!clv->value)
isproc = 1;
else if (clv->count == 1)
isproc = is_nonconstant_procedure(clv->value, info, head->count);
isproc = is_nonconstant_procedure(clv->value, info, post_bind ? 0 : head->count);
else
isproc = 0;
if (num_rec_procs && isproc) {