From 5ba83c6340f0f377df834ebc650982fedfe133ab Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 26 Feb 2018 19:18:58 -0700 Subject: [PATCH] expander: fix cross-module reference to `gensym`ed name --- racket/src/expander/expand/def-id.rkt | 6 ++++-- racket/src/racket/src/startup.inc | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) 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)"