From ec49225112ba68f0d1e7d73995835fa37822ab9a Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 27 Sep 2011 13:58:36 -0600 Subject: [PATCH] fix `expand-imports' for renamed `quote' Closes PR 12235 Thanks to Carl for the report and test case --- collects/racket/require-transform.rkt | 4 ++-- collects/tests/racket/module.rktl | 30 +++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/collects/racket/require-transform.rkt b/collects/racket/require-transform.rkt index c9fb9d4bd1..df5a5605d2 100644 --- a/collects/racket/require-transform.rkt +++ b/collects/racket/require-transform.rkt @@ -93,7 +93,7 @@ #f "invalid module-path form" stx)) - (let ([namess (syntax-local-module-exports stx)]) + (let ([namess (syntax-local-module-exports mod-path)]) (values (apply append @@ -112,7 +112,7 @@ stx)) (cdr names)))) namess)) - (list (make-import-source #'simple 0)))))] + (list (make-import-source (datum->syntax #'simple mod-path) 0)))))] [(id . rest) (identifier? #'id) (let ([t (syntax-local-value #'id (lambda () #f))]) diff --git a/collects/tests/racket/module.rktl b/collects/tests/racket/module.rktl index 16c8cf8550..6b2fc72457 100644 --- a/collects/tests/racket/module.rktl +++ b/collects/tests/racket/module.rktl @@ -568,6 +568,36 @@ (require (filtered-in (lambda (n) foo) scheme)))) exn:fail:contract:variable?) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Check that `quote' can be renamed for use in +;; require specs + +(parameterize ([current-namespace (make-base-namespace)]) + (map + eval + '((module service racket + (#%module-begin)) + + (module good-client racket + (#%module-begin + (require (quote service)))) + + (module another-good-client racket + (#%module-begin + (require + (rename-in racket/base + [quote dynamic-in])) + (require + (dynamic-in service)))) + + (module also-good-client racket + (#%module-begin + (require + (rename-in racket/base + [quote dynamic-in])) + (require + (rename-in (dynamic-in service)))))))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (report-errs)