~ chicken-core (chicken-5) 1e2546c1ee895e0809dc1900b485506470264865
commit 1e2546c1ee895e0809dc1900b485506470264865 Author: Peter Bex <peter.bex@xs4all.nl> AuthorDate: Sat Mar 5 20:08:06 2011 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Sun Mar 6 12:55:21 2011 +0100 Fix #519 by putting a ##core#real-name onto module-exported symbols diff --git a/expand.scm b/expand.scm index 4424e084..8efd4460 100644 --- a/expand.scm +++ b/expand.scm @@ -269,11 +269,12 @@ (define ##sys#enable-runtime-macros #f) (define (##sys#module-rename sym prefix) - (##sys#string->symbol - (string-append - (##sys#slot prefix 1) - "#" - (##sys#slot sym 1) ) ) ) + (let ((qualified-symbol (##sys#string->symbol (string-append + (##sys#slot prefix 1) + "#" + (##sys#slot sym 1) ) ))) + (putp qualified-symbol '##core#real-name sym) + qualified-symbol) ) (define (##sys#alias-global-hook sym assign where) (define (mrename sym) diff --git a/tests/syntax-tests.scm b/tests/syntax-tests.scm index 16878b23..3d151ee2 100644 --- a/tests/syntax-tests.scm +++ b/tests/syntax-tests.scm @@ -196,6 +196,22 @@ (bar foo)))) ) +;;; strip-syntax on renamed module identifiers, as well as core identifiers +(module foo (bar) + (import chicken scheme) + + (define bar 1)) + +(import foo) + +(define-syntax baz + (er-macro-transformer + (lambda (e r c) + `',(strip-syntax (r 'bar))))) + +(t 'bar (baz bar)) +(t 'bar (baz void)) + ;;; alternative ellipsis test (SRFI-46) (define-syntax fooTrap