From a9a110f21125e407ef6b0eaf96eee5cfcd0ebee2 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Fri, 23 Dec 2011 19:29:13 +0100 Subject: [PATCH] Improve the compiler message in C1SETQ1. --- src/cmp/cmpvar.lsp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cmp/cmpvar.lsp b/src/cmp/cmpvar.lsp index 3cbc940c5..9972c8137 100644 --- a/src/cmp/cmpvar.lsp +++ b/src/cmp/cmpvar.lsp @@ -345,9 +345,11 @@ (return-from c1setq1 (c1expr `(setf ,name ,form)))) (let* ((name1 (c1vref name)) (form1 (c1expr form)) - (type (type-and (var-type name1) (c1form-primary-type form1)))) + (v-type (var-type name1)) + (f-type (c1form-primary-type form1)) + (type (type-and v-type f-type))) (unless type - (cmpwarn "Type mismatch between ~s and ~s." name form) + (cmpwarn "Variable ~s is declared to be of type~%~s~%and assigned an incompatible object of type~%~s." name v-type f-type) (setq type T)) ;; Is this justified???? #+nil(setf (c1form-type form1) type)