fix quoted submodule path in `all-from-out'
This commit is contained in:
parent
4e0fac0477
commit
9f5324b754
|
@ -783,6 +783,20 @@
|
||||||
(module local-expand-lang-test 'local-expand-lang
|
(module local-expand-lang-test 'local-expand-lang
|
||||||
(module m 'local-expand-lang2))
|
(module m 'local-expand-lang2))
|
||||||
|
|
||||||
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; check that quoted submodule paths work with `all-from-out':
|
||||||
|
|
||||||
|
(module has-submodule-all-from-out racket/base
|
||||||
|
(module a racket/base
|
||||||
|
(define x-from-submodule-out 10)
|
||||||
|
(provide x-from-submodule-out))
|
||||||
|
|
||||||
|
(require 'a)
|
||||||
|
(void x-from-submodule-out)
|
||||||
|
(provide (all-from-out 'a)))
|
||||||
|
(require 'has-submodule-all-from-out)
|
||||||
|
(test 10 values x-from-submodule-out)
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(report-errs)
|
(report-errs)
|
||||||
|
|
|
@ -153,6 +153,12 @@ static void check_formerly_unbound(Scheme_Object *unbounds, Scheme_Comp_Env *env
|
||||||
static void install_stops(Scheme_Comp_Env *xenv, int phase, Scheme_Object **_begin_for_syntax_stx);
|
static void install_stops(Scheme_Comp_Env *xenv, int phase, Scheme_Object **_begin_for_syntax_stx);
|
||||||
static int is_modulestar_stop(Scheme_Comp_Env *env);
|
static int is_modulestar_stop(Scheme_Comp_Env *env);
|
||||||
|
|
||||||
|
typedef int (*Convert_Submodule_Proc)(Scheme_Object *mp, Scheme_Object *data);
|
||||||
|
static Scheme_Object *convert_submodule_path(Scheme_Object *name,
|
||||||
|
Convert_Submodule_Proc check,
|
||||||
|
Scheme_Object *check_data);
|
||||||
|
static int check_is_submodule(Scheme_Object *modname, Scheme_Object *_genv);
|
||||||
|
|
||||||
static Scheme_Object *scheme_sys_wraps_phase_worker(intptr_t p);
|
static Scheme_Object *scheme_sys_wraps_phase_worker(intptr_t p);
|
||||||
|
|
||||||
#define cons scheme_make_pair
|
#define cons scheme_make_pair
|
||||||
|
@ -9841,6 +9847,9 @@ Scheme_Object *scheme_module_imported_list(Scheme_Env *genv, Scheme_Object *bind
|
||||||
} else {
|
} else {
|
||||||
Scheme_Object *reprovided;
|
Scheme_Object *reprovided;
|
||||||
|
|
||||||
|
modpath = convert_submodule_path(modpath, check_is_submodule,
|
||||||
|
(Scheme_Object *)genv);
|
||||||
|
|
||||||
reprovided = scheme_make_pair(scheme_make_pair(modpath,
|
reprovided = scheme_make_pair(scheme_make_pair(modpath,
|
||||||
scheme_make_pair(scheme_false,
|
scheme_make_pair(scheme_false,
|
||||||
scheme_null)),
|
scheme_null)),
|
||||||
|
@ -10883,8 +10892,6 @@ void parse_provides(Scheme_Object *form, Scheme_Object *fst, Scheme_Object *e,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef int (*Convert_Submodule_Proc)(Scheme_Object *mp, Scheme_Object *data);
|
|
||||||
|
|
||||||
static int check_in_hash(Scheme_Object *mp, Scheme_Object *data)
|
static int check_in_hash(Scheme_Object *mp, Scheme_Object *data)
|
||||||
{
|
{
|
||||||
Scheme_Object *v;
|
Scheme_Object *v;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user