~ chicken-core (chicken-5) a2ea74893661fd798594c5be9792448e1fedab54


commit a2ea74893661fd798594c5be9792448e1fedab54
Author:     felix <felix@z.(none)>
AuthorDate: Sun Apr 3 09:14:11 2011 +0200
Commit:     felix <felix@z.(none)>
CommitDate: Sun Apr 3 09:14:11 2011 +0200

    enforcing adds blist entries for both cond.-tags

diff --git a/scrutinizer.scm b/scrutinizer.scm
index ed8418b4..c3eb0470 100755
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -750,7 +750,6 @@
 				      (alist-cons (cons var (car ctags)) pt blist)))
 				   (a
 				    (when enforces
-				      ;;XXX when ctags is set, add blist entries for both flows
 				      (let ((ar (cond ((blist-type var flow) =>
 						       (lambda (t)
 							 (if (type<=? t argr)
@@ -760,8 +759,15 @@
 						      ((type<=? (cdr a) argr) (cdr a))
 						      (else argr))))
 					(d "  assuming: ~a -> ~a (flow: ~a)" var ar (car flow))
-					(set! blist 
-					  (alist-cons (cons var (car flow)) ar blist)))))))))
+					(set! blist
+					  (alist-cons (cons var (car flow)) ar blist))
+					(when ctags
+					  (set! blist
+					    (alist-cons
+					     (cons var (car ctags)) ar
+					     (alist-cons
+					      (cons var (cdr ctags)) ar
+					      blist)))))))))))
 		       subs
 		       (cons fn (procedure-argument-types fn (sub1 len))))
 		      r)))
Trap