fixed a bug in using a precompiled variable transformers.

This commit is contained in:
Abdulaziz Ghuloum 2009-10-16 09:54:14 +03:00
parent ad0612905a
commit 858198b886
2 changed files with 5 additions and 2 deletions

View File

@ -1 +1 @@
1858 1859

View File

@ -2713,7 +2713,6 @@
(lambda (p e r) (do-macro-call (local-macro-transformer p) e r))) (lambda (p e r) (do-macro-call (local-macro-transformer p) e r)))
(define (chi-global-macro p e r) (define (chi-global-macro p e r)
;;; FIXME: does not handle macro!?
(let ((lib (car p)) (let ((lib (car p))
(loc (cdr p))) (loc (cdr p)))
(unless (eq? lib '*interaction*) (unless (eq? lib '*interaction*)
@ -2722,6 +2721,10 @@
(let ((transformer (let ((transformer
(cond (cond
((procedure? x) x) ((procedure? x) x)
((and (pair? x)
(eq? (car x) 'macro!)
(procedure? (cdr x)))
(cdr x))
(else (assertion-violation 'chi-global-macro (else (assertion-violation 'chi-global-macro
"BUG: not a procedure" x))))) "BUG: not a procedure" x)))))
(do-macro-call transformer e r))))) (do-macro-call transformer e r)))))