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 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)
|
||||
|
|
|
@ -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 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);
|
||||
|
||||
#define cons scheme_make_pair
|
||||
|
@ -9841,6 +9847,9 @@ Scheme_Object *scheme_module_imported_list(Scheme_Env *genv, Scheme_Object *bind
|
|||
} else {
|
||||
Scheme_Object *reprovided;
|
||||
|
||||
modpath = convert_submodule_path(modpath, check_is_submodule,
|
||||
(Scheme_Object *)genv);
|
||||
|
||||
reprovided = scheme_make_pair(scheme_make_pair(modpath,
|
||||
scheme_make_pair(scheme_false,
|
||||
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)
|
||||
{
|
||||
Scheme_Object *v;
|
||||
|
|
Loading…
Reference in New Issue
Block a user