diff options
-rw-r--r-- | module/ice-9/expand-support.scm | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/module/ice-9/expand-support.scm b/module/ice-9/expand-support.scm index 63ea2d2b1..372d959a5 100644 --- a/module/ice-9/expand-support.scm +++ b/module/ice-9/expand-support.scm @@ -149,13 +149,19 @@ (set-source-properties! e source)) e)) ((module-ref? e) - (if (and (module-ref-modname e) - (not (eq? (module-ref-modname e) - (module-name (current-module))))) - `(,(if (module-ref-public? e) '@ '@@) - ,(module-ref-modname e) - ,(module-ref-symbol e)) - (module-ref-symbol e))) + (cond + ((or (not (module-ref-modname e)) + (eq? (module-ref-modname e) + (module-name (current-module))) + (and (not (module-ref-public? e)) + (not (module-variable + (resolve-module (module-ref-modname e)) + (module-ref-symbol e))))) + (module-ref-symbol e)) + (else + `(,(if (module-ref-public? e) '@ '@@) + ,(module-ref-modname e) + ,(module-ref-symbol e))))) ((lexical? e) (lexical-gensym e)) ((record? e) |