~ chicken-core (chicken-5) d7aad7e15128253c0e502c1a00ef1f977e28bb46
commit d7aad7e15128253c0e502c1a00ef1f977e28bb46
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Tue Sep 9 21:46:30 2014 +1200
Commit: Christian Kellermann <ckeen@pestilenz.org>
CommitDate: Wed Sep 10 09:48:00 2014 +0200
Evaluate length/##sys#length subforms when specializing for null
Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
diff --git a/types.db b/types.db
index 2621686a..2b6c85b9 100644
--- a/types.db
+++ b/types.db
@@ -156,11 +156,11 @@
(##sys#list (#(procedure #:pure) ##sys#list (#!rest) list))
(length (#(procedure #:clean #:enforce) length (list) fixnum) ; may loop
- ((null) '0)
+ ((null) (let ((#(tmp) #(1))) '0))
((list) (##core#inline "C_u_i_length" #(1))))
(##sys#length (#(procedure #:clean #:enforce) ##sys#length (list) fixnum)
- ((null) '0)
+ ((null) (let ((#(tmp) #(1))) '0))
((list) (##core#inline "C_u_i_length" #(1))))
;; these are special cased (see scrutinizer.scm)
Trap