add `#%declare', require declaration of cross-phase persistent modules
original commit: 9e2cf2ab376a3461a1db943dfb35f6a152b70470
This commit is contained in:
parent
09e2e75f06
commit
0ab3099f7e
|
@ -16,8 +16,8 @@
|
|||
(provide tc-setup invis-kw maybe-optimize init-current-type-names)
|
||||
|
||||
(define-syntax-class invis-kw
|
||||
#:literals (define-values define-syntaxes #%require #%provide begin)
|
||||
(pattern (~or define-values define-syntaxes #%require #%provide begin)))
|
||||
#:literals (define-values define-syntaxes #%require #%provide #%declare begin)
|
||||
(pattern (~or define-values define-syntaxes #%require #%provide #%declare begin)))
|
||||
|
||||
(define (maybe-optimize body)
|
||||
;; do we optimize?
|
||||
|
|
|
@ -214,6 +214,7 @@
|
|||
;; these forms should always be ignored
|
||||
[(#%require . _) (void)]
|
||||
[(#%provide . _) (void)]
|
||||
[(#%declare . _) (void)]
|
||||
[(define-syntaxes . _) (void)]
|
||||
[(begin-for-syntax . _) (void)]
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
;; For simplicity, protect everything produced by Typed Racket.
|
||||
(define (arm stx)
|
||||
(syntax-case stx (module module* #%plain-module-begin
|
||||
#%require #%provide begin
|
||||
#%require #%provide #%declare begin
|
||||
define-values define-syntaxes
|
||||
begin-for-syntax)
|
||||
[(module name initial-import mb)
|
||||
|
@ -18,6 +18,7 @@
|
|||
'opaque)]
|
||||
[(#%require . _) stx]
|
||||
[(#%provide . _) stx]
|
||||
[(#%declare . _) stx]
|
||||
[(begin form ...)
|
||||
(quasisyntax/loc stx (begin #,@(stx-map arm #'(form ...))))]
|
||||
[(begin-for-syntax form ...)
|
||||
|
|
Loading…
Reference in New Issue
Block a user