check-require: fix submod-related bugs
This commit is contained in:
parent
73f4fa86a3
commit
a02beaa821
|
@ -90,4 +90,7 @@
|
||||||
[(list 'file part)
|
[(list 'file part)
|
||||||
(ok? part)]
|
(ok? part)]
|
||||||
[(list 'planet part ...)
|
[(list 'planet part ...)
|
||||||
#t])))
|
#t]
|
||||||
|
[(list* 'submod base _)
|
||||||
|
;; Never bypass to submodules
|
||||||
|
#f])))
|
||||||
|
|
|
@ -140,7 +140,13 @@
|
||||||
;; FIXME: cache tables
|
;; FIXME: cache tables
|
||||||
(define (mod->bypass-table mod)
|
(define (mod->bypass-table mod)
|
||||||
(define table (make-hash))
|
(define table (make-hash))
|
||||||
(let ([prov (get-module-all-exports mod)])
|
(let/ec escape
|
||||||
|
(define prov
|
||||||
|
;; FIXME: hack around mis-resolution of mpis in case of submodules
|
||||||
|
;; by just bailing out; should just result in missed bypass opportunities
|
||||||
|
(with-handlers ([(lambda (e) #t)
|
||||||
|
(lambda (e) (escape (void)))])
|
||||||
|
(get-module-all-exports mod)))
|
||||||
(for* ([phase+exps (in-list prov)]
|
(for* ([phase+exps (in-list prov)]
|
||||||
#:when (car phase+exps) ;; Skip for-label provides
|
#:when (car phase+exps) ;; Skip for-label provides
|
||||||
[name+srcs (in-list (cdr phase+exps))]
|
[name+srcs (in-list (cdr phase+exps))]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user