diff --git a/pkgs/racket-test-core/tests/racket/syntax.rktl b/pkgs/racket-test-core/tests/racket/syntax.rktl index 2e1d4a920e..a00abe0969 100644 --- a/pkgs/racket-test-core/tests/racket/syntax.rktl +++ b/pkgs/racket-test-core/tests/racket/syntax.rktl @@ -1634,6 +1634,15 @@ (define-syntax outer-x (make-rename-transformer #'x))) outer-x)) +(test 10 'splicing+begin-for-syntax + (eval + '(begin + (splicing-let ([x 10]) + (begin-for-syntax + (define id #'x))) + (define-syntax (m stx) id) + (m)))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Check keyword & optionals for define-syntax ;; and define-syntax-for-values: diff --git a/racket/collects/racket/splicing.rkt b/racket/collects/racket/splicing.rkt index 5096983a64..cd3514f212 100644 --- a/racket/collects/racket/splicing.rkt +++ b/racket/collects/racket/splicing.rkt @@ -171,6 +171,11 @@ [_ body]))])) (begin-for-syntax + (define-for-syntax ((maybe unintro) form) + (if (syntax-property form 'definition-intended-as-local) + form + (unintro form))) + (define-syntax (splicing-let-body/et stx) (syntax-case stx () [(_ marked-id markless-id body)