From 23e67294ec391d1456a6bd25c9793446abb32aee Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Thu, 7 Dec 2017 12:41:03 -0500 Subject: [PATCH] Handle renamed syntax-rules when expanding define-syntax --- scheme/eval.sld | 2 +- tests/when.scm | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scheme/eval.sld b/scheme/eval.sld index 761d4bfd..4474322a 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -887,7 +887,7 @@ (trans (caddr exp)) (body (cadr trans))) (cond - ((tagged-list? 'syntax-rules trans) ;; TODO: what if syntax-rules is renamed? + ((macro:syntax-rules? (env:lookup (car trans) env #f)) ;; Handles renamed 'syntax-rules' identifier (_expand `(define-syntax ,name ,(_expand trans env rename-env local-env)) env rename-env local-env)) diff --git a/tests/when.scm b/tests/when.scm index d210cb2f..c24cbf20 100644 --- a/tests/when.scm +++ b/tests/when.scm @@ -4,14 +4,14 @@ ; ((my-when test result1 result2 ...) ; (if test ; (begin result1 result2 ...))))) -; -;(define-syntax my-when2 -; (syntax-rules () -; ((my-when test result1 result2 ...) -; (list result2 ...)))) -; -;;(write -;; (my-when2 #t 1)) + +(define-syntax my-when2 + (syntax-rules () + ((my-when test result1 result2 ...) + (list result2 ...)))) + +(write + (my-when2 #t 1)) ; ; (define my-when2* ; (lambda (expr$28 rename$29 compare$30)