~ chicken-core (chicken-5) ca17d63d565380cdab723688be6bb9e6c01beb71


commit ca17d63d565380cdab723688be6bb9e6c01beb71
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Aug 18 15:15:13 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Thu Aug 18 15:15:13 2011 +0200

    resolve typevars in warning messages

diff --git a/scrutinizer.scm b/scrutinizer.scm
index 9ecd2bba..4d036ccd 100755
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -360,8 +360,8 @@
 		(sprintf
 		    "~aexpected a value of type `~a', but was given a value of type `~a'"
 		  (pname) 
-		  xptype
-		  ptype))
+		  (resolve xptype typeenv)
+		  (resolve ptype typeenv)))
 	       (values '* #f))
 	      (else
 	       (let-values (((atypes values-rest)
@@ -384,7 +384,10 @@
 		      loc
 		      (sprintf
 			  "~aexpected argument #~a of type `~a', but was given an argument of type `~a'"
-			(pname) i (car atypes) (car args)))))
+			(pname) 
+			i
+			(resolve (car atypes) typeenv)
+			(resolve (car args) typeenv)))))
 		 (when (noreturn-procedure-type? ptype)
 		   (set! noreturn #t))
 		 (let ((r (procedure-result-types ptype values-rest (cdr args) typeenv)))
@@ -425,6 +428,7 @@
 					   (else (trail-restore trail0 typeenv)))))
 			     ((and specialize (get-specializations pn)) =>
 			      (lambda (specs)
+				(dd "   specializing: ~s" pn)
 				(let loop ((specs specs))
 				  (cond ((null? specs))
 					((match-argument-types
@@ -968,7 +972,7 @@
 			 (match1 (third t1) t2)))))
 	  (else #f)))
   (let ((m (match1 t1 t2)))
-    (dd "    match ~a <-> ~a -> ~a" t1 t2 m)
+    (dd "    match~a ~a <-> ~a -> ~a" (if exact " (exact)" "") t1 t2 m)
     m))
 
 (define (match-argument-types typelist atypes typeenv #!optional exact)
Trap