From 61bac799dd1a1c004537a2ee2a21e729179d67f2 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 2 Sep 2010 21:29:26 -0700 Subject: back-compat in (rnrs) for deprecated modules-in-value-namespace * module/rnrs.scm (rnrs): Work around some unavoidable (I think) behavior when back-compatible unified namespaces are enabled; see comments in source. --- module/rnrs.scm | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'module/rnrs.scm') diff --git a/module/rnrs.scm b/module/rnrs.scm index 1c07e4096..c329aeb07 100644 --- a/module/rnrs.scm +++ b/module/rnrs.scm @@ -209,10 +209,17 @@ ;; (rnrs syntax-case) - make-variable-transformer syntax syntax-case identifier? - bound-identifier=? free-identifier=? syntax->datum datum->syntax - generate-temporaries with-syntax quasisyntax unsyntax - unsyntax-splicing syntax-violation + make-variable-transformer syntax + ;; Until the deprecated support for a unified modules and + ;; bindings namespace is removed, we need to manually resolve + ;; a conflict between two bindings: that of the (rnrs + ;; syntax-case) module, and the imported `syntax-case' + ;; binding. We do so here and below by renaming the macro + ;; import. + (rename (syntax-case-hack syntax-case)) + identifier? bound-identifier=? free-identifier=? + syntax->datum datum->syntax generate-temporaries with-syntax + quasisyntax unsyntax unsyntax-splicing syntax-violation ;; (rnrs unicode) @@ -288,5 +295,7 @@ (rnrs records procedural (6)) (rnrs records syntactic (6)) (rnrs sorting (6)) - (rnrs syntax-case (6)) + ;; See note above on exporting syntax-case. + (rename (rnrs syntax-case (6)) + (syntax-case syntax-case-hack)) (rnrs unicode (6)))) -- cgit v1.2.3