~ 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 specsTrap