diff --git a/collects/tests/racket/submodule.rktl b/collects/tests/racket/submodule.rktl index 13c09df857..0a6eb4fd35 100644 --- a/collects/tests/racket/submodule.rktl +++ b/collects/tests/racket/submodule.rktl @@ -369,6 +369,17 @@ [(md m r/b (m-b mod)) #`(md m r/b (m-b (begin 10 mod)))]))) +(parameterize ([current-namespace (make-base-namespace)]) + (eval + (expand + (expand + '(module foo2 racket + (begin-for-syntax + (define here 'here)) + + (module+ m2 + (begin-for-syntax here))))))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; `begin-for-syntax' doesn't affect `module' with non-#f language: diff --git a/src/racket/src/module.c b/src/racket/src/module.c index 4258d0d29b..bebe5a1a40 100644 --- a/src/racket/src/module.c +++ b/src/racket/src/module.c @@ -6544,6 +6544,8 @@ static Scheme_Object *phase_shift_skip_submodules(Scheme_Object *fm, Scheme_Obje if (SAME_OBJ(naya, v1) && SAME_OBJ(v2, v3)) return fm; else { + if (SAME_OBJ(naya, v1)) + naya = phase_shift_tail(naya, ps); if (SAME_OBJ(v2, v3)) v3 = phase_shift_tail(v3, ps); return rebuild_with_phase_shift(fm, naya, v3, ps);