Handles expansion of internal forms inside splicing-syntax-parameterize

Fixes PR 14973

Closes #24.
This commit is contained in:
Alexis King 2015-02-09 20:03:11 -08:00 committed by Sam Tobin-Hochstadt
parent 39446d64d5
commit 425c584a30
2 changed files with 13 additions and 0 deletions

View File

@ -76,6 +76,8 @@
#:attributes (value)
#:literal-sets (kernel-literals internal-form-literals)
(pattern (define-values () (begin (quote-syntax value:expr) (#%plain-app values))))
;; handles form that splicing-syntax-parameterize expands to
(pattern (define-values () (letrec-syntaxes+values _ () (quote-syntax value:expr) (#%plain-app values))))
;; for use in forms like classes that transform definitions
(pattern (let-values ([() (begin (quote-syntax value:expr) (#%plain-app values))])
(#%plain-app void))))

View File

@ -0,0 +1,11 @@
#lang typed/racket/base
(require (for-syntax racket/base)
racket/splicing
racket/stxparam)
(define-syntax-parameter foo #f)
(splicing-syntax-parameterize ([foo #t])
(: x Number)
(define x "string"))