~ chicken-core (chicken-5) 7042404349f086aa08e0781fb63f441c36669604


commit 7042404349f086aa08e0781fb63f441c36669604
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Wed Aug 17 11:35:13 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Wed Aug 17 11:35:13 2011 +0200

    more accurate type for call-with-values, cleverly optimizes single-value case

diff --git a/types.db b/types.db
index d8c4235a..360eb2aa 100644
--- a/types.db
+++ b/types.db
@@ -496,7 +496,12 @@
 (dynamic-wind (procedure! dynamic-wind (procedure procedure procedure) . *))
 (values (procedure values (#!rest values) . *))
 (##sys#values (procedure ##sys#values (#!rest values) . *))
-(call-with-values (procedure! call-with-values (procedure procedure) . *))
+
+(call-with-values (procedure! call-with-values ((procedure () . *) procedure) . *)
+  (((procedure () *) *) (let ((#(tmp1) #(1)))
+			  (let ((#(tmp2) #(2)))
+			    (#(tmp2) (#(tmp1)))))))
+
 (eval (procedure eval (* #!optional *) *))
 (char-ready? (procedure! char-ready? (#!optional port) boolean))
 
Trap