From a7c607a70853d394d039356001510632b248b509 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 20 Sep 2011 09:48:48 -0600 Subject: [PATCH] fix module expand bug --- collects/tests/racket/module.rktl | 8 ++++++++ src/racket/src/compenv.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/collects/tests/racket/module.rktl b/collects/tests/racket/module.rktl index b8e99d6352..16c8cf8550 100644 --- a/collects/tests/racket/module.rktl +++ b/collects/tests/racket/module.rktl @@ -560,6 +560,14 @@ variable-reference->module-source (eval (datum->syntax #'here '(#%variable-reference))))) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Check handling of unbound names in local-expand: + +(err/rt-test (expand '(module m racket + (require racket/require) + (require (filtered-in (lambda (n) foo) scheme)))) + exn:fail:contract:variable?) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (report-errs) diff --git a/src/racket/src/compenv.c b/src/racket/src/compenv.c index d11b12718c..51302dcc99 100644 --- a/src/racket/src/compenv.c +++ b/src/racket/src/compenv.c @@ -649,7 +649,7 @@ void scheme_register_unbound_toplevel(Scheme_Comp_Env *env, Scheme_Object *id) void scheme_merge_undefineds(Scheme_Comp_Env *exp_env, Scheme_Comp_Env *env) { - if (exp_env->prefix->unbound) { + if (exp_env->prefix->unbound && (env->genv->disallow_unbound < 0)) { /* adding a list to env->prefix->unbound indicates a phase-1 shift for the identifiers in the list: */ scheme_register_unbound_toplevel(env, exp_env->prefix->unbound);