diff --git a/racket/src/expander/expand/def-id.rkt b/racket/src/expander/expand/def-id.rkt index 190051d5dd..a8e2ab86d4 100644 --- a/racket/src/expander/expand/def-id.rkt +++ b/racket/src/expander/expand/def-id.rkt @@ -49,8 +49,10 @@ (define defined-sym (if (and (not (defined-as-other? (hash-ref defined-syms-at-phase sym #f) id phase top-level-bind-scope)) ;; Only use `sym` directly if there are no - ;; extra scopes on the binding form - (no-extra-scopes? id all-scopes-stx top-level-bind-scope phase)) + ;; extra scopes on the binding form... + (no-extra-scopes? id all-scopes-stx top-level-bind-scope phase) + ;; ... and if it's interned + (symbol-interned? sym)) sym (let loop ([pos 1]) (define s (string->unreadable-symbol (format "~a.~a" sym pos))) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index fa46c6124d..230656384a 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -32412,11 +32412,14 @@ static const char *startup_source = " id_52" " phase_81" " top-level-bind-scope_3))" -"(no-extra-scopes?" +"(if(no-extra-scopes?" " id_52" " all-scopes-stx_3" " top-level-bind-scope_3" " phase_81)" +"(symbol-interned?" +" sym_9)" +" #f)" " #f)" " sym_9" "((letrec-values(((loop_91)"