UPGRADED-ARRAY-ELEMENT-TYPE: more thoroughly signal errors on unknown types.
[sbcl.git] / src / compiler / defconstant.lisp
index 0b6f423..db7d628 100644 (file)
@@ -24,9 +24,9 @@
   (unless (symbolp name)
     (error "The constant name is not a symbol: ~S" name))
   (when (looks-like-name-of-special-var-p name)
-    (style-warn "defining ~S as a constant, even though the name follows~@
-the usual naming convention (names like *FOO*) for special variables"
-                name))
+    (style-warn 'sb!kernel:asterisks-around-constant-variable-name
+                :format-control "defining ~S as a constant"
+                :format-arguments (list name)))
   (sb!c:with-source-location (source-location)
     (setf (info :source-location :constant name) source-location))
   (let ((kind (info :variable :kind name)))
@@ -43,7 +43,7 @@ the usual naming convention (names like *FOO*) for special variables"
        (if (boundp name)
            (if (typep name '(or boolean keyword))
                ;; Non-continuable error.
-               (about-to-modify-symbol-value name "define ~S as a constant")
+               (about-to-modify-symbol-value name 'defconstant)
                (let ((old (symbol-value name)))
                  (unless (eql value old)
                    (multiple-value-bind (ignore aborted)
@@ -57,7 +57,7 @@ the usual naming convention (names like *FOO*) for special variables"
                      (when aborted
                        (return-from sb!c::%defconstant name))))))
            (warn "redefining a MAKUNBOUND constant: ~S" name)))
-      (:global
+      (:unknown
        ;; (This is OK -- undefined variables are of this kind. So we
        ;; don't warn or error or anything, just fall through.)
        )