diff --git a/collects/tests/racket/submodule.rktl b/collects/tests/racket/submodule.rktl index 0be57053eb..ef9ba0652d 100644 --- a/collects/tests/racket/submodule.rktl +++ b/collects/tests/racket/submodule.rktl @@ -835,6 +835,20 @@ (void) (void))) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Check phase-level-2 submodules: + +(module check-module-meta-2 racket + (require (for-meta 2 racket/base)) + + (begin-for-syntax + (begin-for-syntax + (module* main #f + (define v 'ok) + (provide v))))) + +(test 'ok dynamic-require '(submod 'check-module-meta-2 main) 'v) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (report-errs) diff --git a/src/racket/src/module.c b/src/racket/src/module.c index 7f39721b6b..9dbd5ac7db 100644 --- a/src/racket/src/module.c +++ b/src/racket/src/module.c @@ -7158,7 +7158,13 @@ static Scheme_Object *do_module(Scheme_Object *form, Scheme_Comp_Env *env, } else if (SAME_OBJ(super_phase_shift, scheme_make_integer(-1))) { m->tt_requires = ins; } else { - scheme_signal_error("internal error: incomplete"); /* FIXME */ + Scheme_Hash_Table *oht; + oht = m->other_requires; + if (!oht) { + oht = scheme_make_hash_table_equal(); + m->other_requires = oht; + } + scheme_hash_set(oht, super_phase_shift, ins); } }