diff --git a/collects/tests/web-server/lang-test.rkt b/collects/tests/web-server/lang-test.rkt index ca21a925d6..b094877768 100644 --- a/collects/tests/web-server/lang-test.rkt +++ b/collects/tests/web-server/lang-test.rkt @@ -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))))))))) diff --git a/collects/web-server/lang/elim-letrec.rkt b/collects/web-server/lang/elim-letrec.rkt index e3cf3e81dd..f169babf03 100644 --- a/collects/web-server/lang/elim-letrec.rkt +++ b/collects/web-server/lang/elim-letrec.rkt @@ -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))