diff --git a/pkgs/racket-test-core/tests/racket/stxparam.rktl b/pkgs/racket-test-core/tests/racket/stxparam.rktl index 2e2081e5d3..928eb447c7 100644 --- a/pkgs/racket-test-core/tests/racket/stxparam.rktl +++ b/pkgs/racket-test-core/tests/racket/stxparam.rktl @@ -169,5 +169,13 @@ ;; ---------------------------------------- +(let ([msg "syntax-parameterize: not bound as a syntax parameter"]) + (test (list msg) regexp-match + (regexp-quote msg) + (with-handlers ([exn:fail? (λ (x) (exn-message x))]) + (eval #'(syntax-parameterize ([x (make-rename-transformer #'f)]) 1))))) + +;; ---------------------------------------- + (report-errs) diff --git a/racket/collects/racket/private/stxparamkey.rkt b/racket/collects/racket/private/stxparamkey.rkt index f20bdb5a84..16bf8479c6 100644 --- a/racket/collects/racket/private/stxparamkey.rkt +++ b/racket/collects/racket/private/stxparamkey.rkt @@ -42,7 +42,7 @@ (define (syntax-parameter-local-value id) (let*-values ([(rt* rt-target) - (syntax-local-value/immediate id (lambda () #f))] + (syntax-local-value/immediate id (lambda () (values #f #f)))] [(rt) (if (syntax-parameter? rt*) rt* (or (and rt-target @@ -55,7 +55,8 @@ sp)) (define (syntax-parameter-local-value-pre id) - (define-values (rt* rt-target) (syntax-local-value/immediate id (λ () #f))) + (define-values (rt* rt-target) + (syntax-local-value/immediate id (λ () (values #f #f)))) (cond [(not rt-target) rt*]