~ chicken-core (chicken-5) 0eaead56d58ea77579e891c0c854713579d92bf1


commit 0eaead56d58ea77579e891c0c854713579d92bf1
Author:     Moritz Heidkamp <moritz@twoticketsplease.de>
AuthorDate: Sat Apr 14 20:37:06 2012 +0200
Commit:     Christian Kellermann <ckeen@pestilenz.org>
CommitDate: Mon Apr 16 10:32:45 2012 +0200

    Correct the types.db entry for `eval' to allow multiple return values.
    
    Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>

diff --git a/tests/library-tests.scm b/tests/library-tests.scm
index f133f3fe..1268bd46 100644
--- a/tests/library-tests.scm
+++ b/tests/library-tests.scm
@@ -278,3 +278,9 @@
 
 (assert-fail (make-blob -1))
 (assert-fail (make-vector -1))
+
+;;; eval return values
+
+(assert (= 1 (eval 1)))
+(assert (eq? '() (receive (eval '(values)))))
+(assert (equal? '(1 2 3) (receive (eval '(values 1 2 3)))))
diff --git a/types.db b/types.db
index be902250..7aed56f9 100644
--- a/types.db
+++ b/types.db
@@ -659,7 +659,7 @@
 			 (let ((#(tmp2) #(2)))
 			   (#(tmp2) (#(tmp1)))))))
 
-(eval (procedure eval (* #!optional (struct environment)) *))
+(eval (procedure eval (* #!optional (struct environment)) . *))
 (char-ready? (#(procedure #:enforce) char-ready? (#!optional input-port) boolean))
 
 (imag-part (#(procedure #:clean #:enforce) imag-part (number) number)
Trap