fix dynamic-require
on certain forms of re-export from #%kernel
Closes #1445
This commit is contained in:
parent
5708526055
commit
cd44e78211
|
@ -1816,6 +1816,17 @@ case of module-leve bindings; it doesn't cover local bindings.
|
||||||
(lambda (exn)
|
(lambda (exn)
|
||||||
(regexp-match? #rx" already" (exn-message exn))))
|
(regexp-match? #rx" already" (exn-message exn))))
|
||||||
|
|
||||||
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Check re-export of an identifier from `#%kernel`
|
||||||
|
;; through a rename transformer:
|
||||||
|
|
||||||
|
(module rexports-values-from-kernel racket/base
|
||||||
|
(require (for-syntax racket/base))
|
||||||
|
(provide f)
|
||||||
|
(define-syntax f (make-rename-transformer #'values)))
|
||||||
|
|
||||||
|
(dynamic-require ''rexports-values-from-kernel 'f)
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(report-errs)
|
(report-errs)
|
||||||
|
|
|
@ -1280,7 +1280,8 @@ static Scheme_Object *_dynamic_require(int argc, Scheme_Object *argv[],
|
||||||
srcm2 = module_load(srcmname, env, errname);
|
srcm2 = module_load(srcmname, env, errname);
|
||||||
|
|
||||||
for (j = srcm2->me->rt->num_var_provides; j--; ) {
|
for (j = srcm2->me->rt->num_var_provides; j--; ) {
|
||||||
if (SCHEME_FALSEP(srcm2->me->rt->provide_srcs[j])
|
if ((!srcm2->me->rt->provide_srcs
|
||||||
|
|| SCHEME_FALSEP(srcm2->me->rt->provide_srcs[j]))
|
||||||
&& SAME_OBJ(srcname, srcm2->me->rt->provide_src_names[j])) {
|
&& SAME_OBJ(srcname, srcm2->me->rt->provide_src_names[j])) {
|
||||||
/* simple re-export applies: */
|
/* simple re-export applies: */
|
||||||
srcm = srcm2;
|
srcm = srcm2;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user