From e430463ea4475be8984cde1056ba3025942d5acd Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 13 Jul 2012 09:37:16 -0600 Subject: [PATCH] another submodule expansion repair Relevant to PR 12902 --- collects/tests/racket/submodule.rktl | 9 +++++++++ src/racket/src/module.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/collects/tests/racket/submodule.rktl b/collects/tests/racket/submodule.rktl index 500d71d7a2..dc8decb16a 100644 --- a/collects/tests/racket/submodule.rktl +++ b/collects/tests/racket/submodule.rktl @@ -380,6 +380,15 @@ (module+ m2 (begin-for-syntax here))))))) +(parameterize ([current-namespace (make-base-namespace)]) + (eval + (expand + (expand '(module t racket + (begin-for-syntax) + (begin-for-syntax) + (define x 7) + (module* t #f x)))))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; `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 f09106ab55..e1f4af003b 100644 --- a/src/racket/src/module.c +++ b/src/racket/src/module.c @@ -6548,7 +6548,7 @@ static Scheme_Object *phase_shift_skip_submodules(Scheme_Object *fm, Scheme_Obje /* found `begin-for-syntax': */ naya = phase_shift_skip_submodules(v1, ps, phase+1); v2 = SCHEME_STX_CDR(fm); - v3 = phase_shift_skip_submodules(v2, ps, phase+1); + v3 = phase_shift_skip_submodules(v2, ps, phase); if (SAME_OBJ(naya, v1) && SAME_OBJ(v2, v3)) return fm; else {