~ 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