From 7ec8835bc4c3dc61195ca7e4c5be0e593921a422 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 17 Sep 2010 12:52:39 -0600 Subject: [PATCH] allow intra-module var reference to link in a non-module namespace Closes PR 11155 --- src/racket/src/eval.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/racket/src/eval.c b/src/racket/src/eval.c index 0ffe9114de..d03957a60a 100644 --- a/src/racket/src/eval.c +++ b/src/racket/src/eval.c @@ -1954,9 +1954,15 @@ static Scheme_Object *link_toplevel(Scheme_Object **exprs, int which, Scheme_Env Scheme_Object *modname, *varname; int mod_phase = 0; if (SCHEME_SYMBOLP(expr)) { - varname = expr; - modname = env->module->modname; - mod_phase = env->mod_phase; + if (!env->module) { + /* compiled as a module variable, but instantiated in a non-module + namespace; grab a bucket */ + return (Scheme_Object *)scheme_global_bucket(expr, env); + } else { + varname = expr; + modname = env->module->modname; + mod_phase = env->mod_phase; + } } else { varname = SCHEME_CAR(expr); modname = SCHEME_CDR(expr);