Fixing another problem discover because of Galler

This commit is contained in:
Jay McCarthy 2012-02-06 09:12:33 -07:00
parent 30239514a3
commit 078540b17c
2 changed files with 16 additions and 6 deletions

View File

@ -39,8 +39,20 @@
(let ([f (let ([m 7]) m)])
(+ f initial)))))])
(check = 8 (test-m00.4 '(dispatch-start start 1)))))
(test-case
"set!"
(let-values ([(test-m00.4)
(make-module-eval
(module m00.4 (lib "lang.rkt" "web-server")
(provide start)
(define x 1)
(define (start initial)
(set! x (add1 x))
x)))])
(check = 2 (test-m00.4 '(dispatch-start start #f)))
(check = 3 (test-m00.4 '(dispatch-start start #f)))))
(test-case
"Embedded Definitions"
(let-values ([(test-m00.4)
@ -589,6 +601,4 @@
(module test (lib "lang.rkt" "web-server")
(define (show-user)
(define-values (point i) (values #t 1))
i)))))))
))
i)))))))))

View File

@ -25,7 +25,7 @@
(with-syntax ([(be ...) (map (elim-letrec ids) (syntax->list #'(be ...)))])
(syntax/loc stx
(begin0 be ...)))]
[(set! v ve)
[(set! id ve)
(with-syntax ([ve ((elim-letrec ids) #'ve)])
(if (bound-identifier-member? #'id ids)
(syntax/loc stx (#%plain-app set-box! id ve))