~ 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