1.0.25.24: x86/x86-64 runtime pseudo atomic fixes
[sbcl.git] / src / code / macros.lisp
index bd9714b..838d699 100644 (file)
 is not of the specified type. If an error is signalled and the restart
 is used to return, this can only return if the STORE-VALUE restart is
 invoked. In that case it will store into PLACE and start over."
+  ;; Detect a common user-error.
+  (when (and (consp type) (eq 'quote (car type)))
+    (error 'simple-reference-error
+           :format-control "Quoted type specifier in ~S: ~S"
+           :format-arguments (list 'check-type type)
+           :references (list '(:ansi-cl :macro check-type))))
   ;; KLUDGE: We use a simpler form of expansion if PLACE is just a
   ;; variable to work around Python's blind spot in type derivation.
   ;; For more complex places getting the type derived should not
@@ -176,7 +182,7 @@ invoked. In that case it will store into PLACE and start over."
    (case-kind :initarg :case-kind
               :reader case-warning-case-kind)
    (occurrences :initarg :occurrences
-                :type (cons (integer 0) (cons t null))
+                :type list
                 :reader duplicate-case-key-warning-occurrences))
   (:report
     (lambda (condition stream)
@@ -216,7 +222,7 @@ invoked. In that case it will store into PLACE and start over."
                      do (when existing
                           (let ((sb!c::*current-path*
                                  (when (boundp 'sb!c::*source-paths*)
-                                   (or (gethash case sb!c::*source-paths*)
+                                   (or (sb!c::get-source-path case)
                                        sb!c::*current-path*))))
                             (warn 'duplicate-case-key-warning
                                   :key k