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)
|
||||
(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)
|
||||
|
|
|
@ -1280,7 +1280,8 @@ static Scheme_Object *_dynamic_require(int argc, Scheme_Object *argv[],
|
|||
srcm2 = module_load(srcmname, env, errname);
|
||||
|
||||
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])) {
|
||||
/* simple re-export applies: */
|
||||
srcm = srcm2;
|
||||
|
|
Loading…
Reference in New Issue
Block a user