fix `syntax-local-module-exports' for submodules in expand mode
This commit is contained in:
parent
8c2c84f74f
commit
c6eb82524b
|
@ -798,7 +798,8 @@
|
||||||
(test 10 values x-from-submodule-out)
|
(test 10 values x-from-submodule-out)
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; check `syntax-local-submodules' in compile and expand modes
|
;; check `syntax-local-submodules' (and `syntax-local-module-exports'
|
||||||
|
;; for submodules) in compile and expand modes
|
||||||
|
|
||||||
(let ([e '(module x racket/base
|
(let ([e '(module x racket/base
|
||||||
(require (for-syntax racket/base))
|
(require (for-syntax racket/base))
|
||||||
|
@ -806,6 +807,7 @@
|
||||||
(module m racket/base)
|
(module m racket/base)
|
||||||
|
|
||||||
(define-syntax (m stx)
|
(define-syntax (m stx)
|
||||||
|
(syntax-local-module-exports ''m) ; should succeed
|
||||||
#`(quote #,(syntax-local-submodules)))
|
#`(quote #,(syntax-local-submodules)))
|
||||||
|
|
||||||
(define x (m))
|
(define x (m))
|
||||||
|
|
|
@ -10966,8 +10966,12 @@ static int check_is_submodule(Scheme_Object *modname, Scheme_Object *_genv)
|
||||||
l = genv->module->pre_submodules;
|
l = genv->module->pre_submodules;
|
||||||
if (l) {
|
if (l) {
|
||||||
while (!SCHEME_NULLP(l)) {
|
while (!SCHEME_NULLP(l)) {
|
||||||
if (!SCHEME_SYMBOLP(SCHEME_CAR(l))) {
|
n = SCHEME_CAR(l);
|
||||||
n = scheme_resolved_module_path_value(((Scheme_Module *)SCHEME_CAR(l))->modname);
|
if (SCHEME_SYMBOLP(n)) {
|
||||||
|
if (SAME_OBJ(n, modname))
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
n = scheme_resolved_module_path_value(((Scheme_Module *)n)->modname);
|
||||||
while (SCHEME_PAIRP(SCHEME_CDR(n))) {
|
while (SCHEME_PAIRP(SCHEME_CDR(n))) {
|
||||||
n = SCHEME_CDR(n);
|
n = SCHEME_CDR(n);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user