From fa3c5abd009a6c07bf9d687bfa03d101a19bde56 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 4 Sep 2018 14:08:31 -0600 Subject: [PATCH] syntax-parametereize: fix `set!` with rename transformers Relevant to bootstrapworld/curr#423 --- pkgs/racket-test-core/tests/racket/stxparam.rktl | 12 ++++++++++++ racket/collects/racket/private/stxparamkey.rkt | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pkgs/racket-test-core/tests/racket/stxparam.rktl b/pkgs/racket-test-core/tests/racket/stxparam.rktl index b792161737..a745492130 100644 --- a/pkgs/racket-test-core/tests/racket/stxparam.rktl +++ b/pkgs/racket-test-core/tests/racket/stxparam.rktl @@ -168,6 +168,18 @@ (define trois (slv num)))) (test #t = trois 3)) +(let () + (define x 1) + (define y 10) + (define-rename-transformer-parameter num + (make-rename-transformer #'y)) + (syntax-parameterize ([num (make-rename-transformer #'x)]) + (test #t = num 1) + (set! num 3) + (test #t = num 3)) + (test #t = x 3) + (test #t = num 10)) + ;; ---------------------------------------- (let () diff --git a/racket/collects/racket/private/stxparamkey.rkt b/racket/collects/racket/private/stxparamkey.rkt index f629c12dbc..7bd15809be 100644 --- a/racket/collects/racket/private/stxparamkey.rkt +++ b/racket/collects/racket/private/stxparamkey.rkt @@ -2,7 +2,8 @@ (module stxparamkey '#%kernel (#%require "small-scheme.rkt" "define.rkt" "stxcase.rkt" "stxloc.rkt" "with-stx.rkt" - (only '#%unsafe unsafe-root-continuation-prompt-tag)) + (only '#%unsafe unsafe-root-continuation-prompt-tag) + (for-template '#%kernel)) ;; Consulted before the expander's table, for use by compile-time ;; code wrapped by a run-time-phased `syntax-parameterize`: