repair interaction of taints and submodule expansion
original commit: dc11090f6bc6f4bf4494e50350526a221cfed50a
This commit is contained in:
parent
609f5d5aa2
commit
1fabdff401
|
@ -5,21 +5,25 @@
|
|||
|
||||
;; For simplicity, protect everything produced by Typed Racket.
|
||||
(define (arm stx)
|
||||
(syntax-case stx (module #%plain-module-begin
|
||||
(syntax-case stx (module module* #%plain-module-begin
|
||||
#%require #%provide begin
|
||||
define-values define-syntaxes
|
||||
define-values-for-syntax)
|
||||
begin-for-syntax)
|
||||
[(module name initial-import mb)
|
||||
(quasisyntax/loc stx (module name initial-import #,(arm #'mb)))]
|
||||
[(#%plain-module-begin . _) (syntax-arm stx)]
|
||||
[(module* name initial-import mb)
|
||||
(quasisyntax/loc stx (module* name initial-import #,(arm #'mb)))]
|
||||
[(#%plain-module-begin . _) (syntax-property (syntax-arm stx)
|
||||
'taint-mode
|
||||
'opaque)]
|
||||
[(#%require . _) stx]
|
||||
[(#%provide . _) stx]
|
||||
[(begin form ...)
|
||||
(quasisyntax/loc stx (begin #,@(stx-map arm #'(form ...))))]
|
||||
[(begin-for-syntax form ...)
|
||||
(quasisyntax/loc stx (begin-for-syntax #,@(stx-map arm #'(form ...))))]
|
||||
[(define-values ids expr)
|
||||
(quasisyntax/loc stx (define-values ids #,(arm #'expr)))]
|
||||
[(define-syntaxes ids expr)
|
||||
(quasisyntax/loc stx (define-syntaxes ids #,(arm #'expr)))]
|
||||
[(define-values-for-syntax ids expr)
|
||||
(quasisyntax/loc stx (define-values-for-syntax ids #,(arm #'expr)))]
|
||||
[_ (syntax-arm stx)]))
|
||||
|
|
Loading…
Reference in New Issue
Block a user