~ chicken-core (chicken-5) 3348229625aff9f8cd2bcb52079655c058fffb01
commit 3348229625aff9f8cd2bcb52079655c058fffb01
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Sun Mar 20 21:17:33 2011 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sun Mar 20 21:17:33 2011 +0100
changed functor instantiation syntax
diff --git a/expand.scm b/expand.scm
index 69a38a03..dde1c707 100644
--- a/expand.scm
+++ b/expand.scm
@@ -1313,17 +1313,18 @@
(##sys#er-transformer
(lambda (x r c)
(let ((len (length x)))
- (cond ((and (fx>= len 2) (pair? (cadr x)))
- (##sys#check-syntax 'module x '(_ (symbol (symbol . #(_ 1))) . #(_ 0 1)))
+ (cond ((and (fx>= len 4) (c (r '=) (caddr x)))
+ (##sys#check-syntax 'module x '(_ symbol _ (symbol . #(_ 1)) . #(_ 0 1)))
(let* ((x (##sys#strip-syntax x))
- (head (cadr x)))
+ (name (cadr x))
+ (app (cadddr x)))
(##sys#instantiate-functor
- (car head)
- (caadr head)
- (cdadr head)
- (if (null? (cddr x))
+ name
+ (car app) ; functor name
+ (cdr app) ; functor arguments
+ (if (null? (cddddr x))
'*
- (##sys#validate-exports (caddr x) (car head))))))
+ (##sys#validate-exports (car (cddddr x)) name)))))
((and (fx= len 3) (symbol? (cadr x)))
(##sys#check-syntax 'module x '(_ symbol symbol))
(let ((x (##sys#strip-syntax x)))
Trap