fix submodule declarations nested in phases > 1
This commit is contained in:
parent
111799ec94
commit
30a4b481dd
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user