diff --git a/racket/src/expander/compile/extra-inspector.rkt b/racket/src/expander/compile/extra-inspector.rkt index ac5fff3ce9..fa80527d2d 100644 --- a/racket/src/expander/compile/extra-inspector.rkt +++ b/racket/src/expander/compile/extra-inspector.rkt @@ -131,12 +131,16 @@ ;; Merge inspectors from potentially different paths through imported linklets (define (module-use-merge-extra-inspectorss! existing-mu* mu*) - (define extra-inspectorss (module-use*-extra-inspectorss mu*)) (define existing-extra-inspectorss (module-use*-extra-inspectorss existing-mu*)) + (define extra-inspectorss (module-use*-extra-inspectorss mu*)) (define new-extra-inspectorss - (for/fold ([new-extra-inspectorss existing-extra-inspectorss]) ([(sym extra-inspectors) (in-hash extra-inspectorss)]) - (hash-set new-extra-inspectorss - sym - (extra-inspectors-merge extra-inspectors - (hash-ref new-extra-inspectorss sym (seteq)))))) + (cond + [(not existing-extra-inspectorss) extra-inspectorss] + [(not extra-inspectorss) existing-extra-inspectorss] + [else + (for/fold ([new-extra-inspectorss existing-extra-inspectorss]) ([(sym extra-inspectors) (in-hash extra-inspectorss)]) + (hash-set new-extra-inspectorss + sym + (extra-inspectors-merge extra-inspectors + (hash-ref new-extra-inspectorss sym (seteq)))))])) (set-module-use*-extra-inspectorss! existing-mu* new-extra-inspectorss)) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index 82f5a49331..a70e7352fa 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -31318,9 +31318,14 @@ static const char *startup_source = "(module-use-merge-extra-inspectorss!)" "(lambda(existing-mu*_0 mu*_0)" "(begin" -"(let-values(((extra-inspectorss_0)(module-use*-extra-inspectorss mu*_0)))" "(let-values(((existing-extra-inspectorss_0)(module-use*-extra-inspectorss existing-mu*_0)))" +"(let-values(((extra-inspectorss_0)(module-use*-extra-inspectorss mu*_0)))" "(let-values(((new-extra-inspectorss_0)" +"(if(not existing-extra-inspectorss_0)" +"(let-values() extra-inspectorss_0)" +"(if(not extra-inspectorss_0)" +"(let-values() existing-extra-inspectorss_0)" +"(let-values()" "(let-values(((ht_0) extra-inspectorss_0))" "(begin" "(if(variable-reference-from-unsafe?(#%variable-reference))" @@ -31356,7 +31361,7 @@ static const char *startup_source = " new-extra-inspectorss_0)))))" " for-loop_0)" " existing-extra-inspectorss_0" -"(hash-iterate-first ht_0))))))" +"(hash-iterate-first ht_0)))))))))" "(set-module-use*-extra-inspectorss! existing-mu*_0 new-extra-inspectorss_0)))))))" "(define-values" "(struct:link-info"