Make provide expansion respect disappeared uses on expanded syntax.
This commit is contained in:
parent
9c9e922b4a
commit
408d86f1c7
|
@ -1387,7 +1387,21 @@
|
||||||
(let ([form (expand `(module m racket/base
|
(let ([form (expand `(module m racket/base
|
||||||
(require (rename-in racket/base [lib racket-base:lib])
|
(require (rename-in racket/base [lib racket-base:lib])
|
||||||
(racket-base:lib "racket/base"))))])
|
(racket-base:lib "racket/base"))))])
|
||||||
(test #t find-disappeared form #'racket-base:lib)))
|
(test #t find-disappeared form #'racket-base:lib))
|
||||||
|
;; Check case where the provide transformer also sets disappeared-use
|
||||||
|
(let ([form (expand `(module m racket/base
|
||||||
|
(require (for-syntax racket/base racket/provide-transform))
|
||||||
|
(define-syntax my-out
|
||||||
|
(make-provide-transformer
|
||||||
|
(lambda (stx phases) null)
|
||||||
|
(lambda (stx phases)
|
||||||
|
(syntax-case stx ()
|
||||||
|
[(head id)
|
||||||
|
(syntax-property #'(rename-out)
|
||||||
|
'disappeared-use
|
||||||
|
(syntax-local-introduce #'id))]))))
|
||||||
|
(provide (my-out map))))])
|
||||||
|
(test #t find-disappeared form #'map)))
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,8 @@
|
||||||
stx))
|
stx))
|
||||||
(syntax-property v
|
(syntax-property v
|
||||||
'disappeared-use
|
'disappeared-use
|
||||||
(syntax-local-introduce #'id)))
|
(cons (syntax-local-introduce #'id)
|
||||||
|
(or (syntax-property v 'disappeared-use) null))))
|
||||||
stx))]
|
stx))]
|
||||||
[_ stx]))))
|
[_ stx]))))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user