~ chicken-core (chicken-5) caf6b73968f45b4b79202e371c2a510a0b441697


commit caf6b73968f45b4b79202e371c2a510a0b441697
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Apr 18 00:38:58 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Mon Apr 18 00:38:58 2011 +0200

    don't remove type-defs on incompatible assignments; don't check for assigned type-compat. (because of icky map-compiler-syntax expansion)

diff --git a/scrutinizer.scm b/scrutinizer.scm
index 9a42840d..fd683e56 100755
--- a/scrutinizer.scm
+++ b/scrutinizer.scm
@@ -669,8 +669,7 @@
 		       (sprintf 
 			   "assignment of value of type `~a' to toplevel variable `~a' does not match declared type `~a'"
 			 rt var type)
-		       #t)
-		      (mark-variable var '##compiler#type #f))
+		       #t))
 		    (when (and (not type)
 			       (not b)
 			       (not (eq? '* rt))
@@ -686,7 +685,10 @@
 		      (cond ((eq? 'undefined (cdr b)) (set-cdr! b rt))
 			    (strict-variable-types
 			     (let ((ot (or (blist-type var flow) (cdr b))))
-			       (unless (compatible-types? ot rt)
+			       ;;XXX compiler-syntax for "map" will introduce
+			       ;;    assignments that trigger this warning, so this
+			       ;;    is currently disabled
+			       #;(unless (compatible-types? ot rt)
 				 (report
 				  loc
 				  (sprintf 
@@ -924,7 +926,7 @@
 		(when (and old (not (equal? old new)))
 		  (##sys#notice
 		   (sprintf
-		       "type-deifnition `~a' for toplevel binding `~a' conflicts with previously loaded type `~a'"
+		       "type-definition `~a' for toplevel binding `~a' conflicts with previously loaded type `~a'"
 		     name new old)))
 		(mark-variable name '##compiler#type new)
 		(when specs
Trap