From 408d86f1c7f678eaa00e50efae969dc075e263be Mon Sep 17 00:00:00 2001 From: Eric Dobson Date: Sun, 15 Mar 2015 10:24:34 -0700 Subject: [PATCH] Make provide expansion respect disappeared uses on expanded syntax. --- pkgs/racket-test-core/tests/racket/module.rktl | 16 +++++++++++++++- racket/collects/racket/provide-transform.rkt | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/pkgs/racket-test-core/tests/racket/module.rktl b/pkgs/racket-test-core/tests/racket/module.rktl index b658b53d37..5123d73d74 100644 --- a/pkgs/racket-test-core/tests/racket/module.rktl +++ b/pkgs/racket-test-core/tests/racket/module.rktl @@ -1387,7 +1387,21 @@ (let ([form (expand `(module m racket/base (require (rename-in racket/base [lib racket-base:lib]) (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))) ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/racket/collects/racket/provide-transform.rkt b/racket/collects/racket/provide-transform.rkt index 22306a7a31..781262b9e9 100644 --- a/racket/collects/racket/provide-transform.rkt +++ b/racket/collects/racket/provide-transform.rkt @@ -77,7 +77,8 @@ stx)) (syntax-property v 'disappeared-use - (syntax-local-introduce #'id))) + (cons (syntax-local-introduce #'id) + (or (syntax-property v 'disappeared-use) null)))) stx))] [_ stx]))))