~ 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