Handles expansion of internal forms inside splicing-syntax-parameterize
Fixes PR 14973 Closes #24.
This commit is contained in:
parent
39446d64d5
commit
425c584a30
|
@ -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))))
|
||||
|
|
11
typed-racket-test/fail/pr14973.rkt
Normal file
11
typed-racket-test/fail/pr14973.rkt
Normal 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"))
|
Loading…
Reference in New Issue
Block a user