~ chicken-core (chicken-5) f9d92f5d4884c38705b6e0a9eb329eb7423b78ae


commit f9d92f5d4884c38705b6e0a9eb329eb7423b78ae
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat May 15 01:09:12 2010 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat May 15 01:09:12 2010 +0200

    no need to check proc syntax in internal compiler syntax for for-each and map

diff --git a/compiler-syntax.scm b/compiler-syntax.scm
index 78748a69..1e03af4f 100644
--- a/compiler-syntax.scm
+++ b/compiler-syntax.scm
@@ -68,10 +68,7 @@
 	(%lambda (r 'lambda))
 	(lsts (cddr x)))
     (if (and (memq 'for-each standard-bindings) ; we have to check this because the db (and thus 
-	     (> (length+ x) 2)			 ; intrinsic marks) isn't set up yet
-	     (or (and (pair? (cadr x))
-		      (c %lambda (caadr x)))
-		 (symbol? (cadr x))))
+	     (> (length+ x) 2))			 ; intrinsic marks) isn't set up yet
 	(let ((vars (map (lambda _ (gensym)) lsts)))
 	  `(,%let ((,%proc ,(cadr x))
 		   ,@(map list vars lsts))
@@ -106,10 +103,7 @@
 	(%pair? (r 'pair?))
 	(lsts (cddr x)))
     (if (and (memq 'map standard-bindings) ; s.a.
-	     (> (length+ x) 2)
-	     (or (and (pair? (cadr x))
-		      (c %lambda (caadr x)))
-		 (symbol? (cadr x))))
+	     (> (length+ x) 2))
 	(let ((vars (map (lambda _ (gensym)) lsts)))
 	  `(,%let ((,%result (,%quote ()))
 		   (,%node #f)
Trap