fix dynamic-require with symbol to not make available
to match behavior in docs and racket 6.
This commit is contained in:
parent
8d08264b41
commit
4be2c523b6
|
@ -2456,6 +2456,29 @@ case of module-leve bindings; it doesn't cover local bindings.
|
||||||
(check '(begin-for-syntax (struct bar ())) #rx"later defined as syntax")
|
(check '(begin-for-syntax (struct bar ())) #rx"later defined as syntax")
|
||||||
(check '(require (for-syntax (only-in racket/base [car bar]))) #rx"later bound differently"))
|
(check '(require (for-syntax (only-in racket/base [car bar]))) #rx"later bound differently"))
|
||||||
|
|
||||||
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Check that dynamic-require with a symbol argument
|
||||||
|
;; does not make the required module available for visits
|
||||||
|
|
||||||
|
(module shouldntvisit racket/base
|
||||||
|
(define x 5)
|
||||||
|
(provide x)
|
||||||
|
(require (for-syntax racket/base))
|
||||||
|
(define-for-syntax v #f)
|
||||||
|
(define-syntax (m stx)
|
||||||
|
(set! v #t)
|
||||||
|
#'(void))
|
||||||
|
(m)
|
||||||
|
(begin-for-syntax
|
||||||
|
(when (not v)
|
||||||
|
(error 'shouldntvisit "visited"))))
|
||||||
|
|
||||||
|
(module visitor racket/base
|
||||||
|
(require (for-syntax racket/base))
|
||||||
|
(begin-for-syntax
|
||||||
|
(dynamic-require ''shouldntvisit 'x))
|
||||||
|
(begin-for-syntax))
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(report-errs)
|
(report-errs)
|
||||||
|
|
|
@ -70,7 +70,8 @@
|
||||||
(define binding (provided-as-binding binding/p))
|
(define binding (provided-as-binding binding/p))
|
||||||
(define ex-sym (module-binding-sym binding))
|
(define ex-sym (module-binding-sym binding))
|
||||||
(define ex-phase (module-binding-phase binding))
|
(define ex-phase (module-binding-phase binding))
|
||||||
(namespace-module-instantiate! ns mpi phase #:run-phase phase)
|
(namespace-module-instantiate! ns mpi phase #:run-phase phase
|
||||||
|
#:otherwise-available? #f)
|
||||||
(define ex-mod-name (module-path-index-resolve
|
(define ex-mod-name (module-path-index-resolve
|
||||||
(module-path-index-shift
|
(module-path-index-shift
|
||||||
(module-binding-module binding)
|
(module-binding-module binding)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user