diff --git a/collects/tests/web-server/pr/12658-mod.rkt b/collects/tests/web-server/pr/12658-mod.rkt new file mode 100644 index 0000000000..a7c5579f34 --- /dev/null +++ b/collects/tests/web-server/pr/12658-mod.rkt @@ -0,0 +1,6 @@ +#lang web-server + +(define (go) + 42) + +(provide go) diff --git a/collects/tests/web-server/pr/12658.rkt b/collects/tests/web-server/pr/12658.rkt new file mode 100644 index 0000000000..c5d2dbfde2 --- /dev/null +++ b/collects/tests/web-server/pr/12658.rkt @@ -0,0 +1,11 @@ +#lang racket/base +(require rackunit + "12658-mod.rkt") + +(check-equal? + (with-handlers ([exn? (λ (x) (exn-message x))]) + (go 42) + (error 'go "Failed to throw exn")) + "procedure go: expects no arguments, given 1: 42") + + diff --git a/collects/web-server/lang/closure.rkt b/collects/web-server/lang/closure.rkt index 55c55192cf..508415ec15 100644 --- a/collects/web-server/lang/closure.rkt +++ b/collects/web-server/lang/closure.rkt @@ -82,7 +82,7 @@ (make-keyword-procedure (lambda (kws kw-vals clsr . rst) (let-values ([#,fvars ((CLOSURE-ref clsr 0))]) - (keyword-apply #,stx + (keyword-apply (procedure-rename #,stx '#,(syntax-local-name)) kws kw-vals rst))))))