diff --git a/pkgs/macro-debugger-pkgs/macro-debugger-text-lib/macro-debugger/analysis/private/moduledb.rkt b/pkgs/macro-debugger-pkgs/macro-debugger-text-lib/macro-debugger/analysis/private/moduledb.rkt index 7a2ec03691..e005eed8a3 100644 --- a/pkgs/macro-debugger-pkgs/macro-debugger-text-lib/macro-debugger/analysis/private/moduledb.rkt +++ b/pkgs/macro-debugger-pkgs/macro-debugger-text-lib/macro-debugger/analysis/private/moduledb.rkt @@ -90,4 +90,7 @@ [(list 'file part) (ok? part)] [(list 'planet part ...) - #t]))) + #t] + [(list* 'submod base _) + ;; Never bypass to submodules + #f]))) diff --git a/pkgs/macro-debugger-pkgs/macro-debugger-text-lib/macro-debugger/analysis/private/nom-use-alg.rkt b/pkgs/macro-debugger-pkgs/macro-debugger-text-lib/macro-debugger/analysis/private/nom-use-alg.rkt index a89cc38e2c..a7dc997e66 100644 --- a/pkgs/macro-debugger-pkgs/macro-debugger-text-lib/macro-debugger/analysis/private/nom-use-alg.rkt +++ b/pkgs/macro-debugger-pkgs/macro-debugger-text-lib/macro-debugger/analysis/private/nom-use-alg.rkt @@ -140,7 +140,13 @@ ;; FIXME: cache tables (define (mod->bypass-table mod) (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)] #:when (car phase+exps) ;; Skip for-label provides [name+srcs (in-list (cdr phase+exps))]