protect compile-time side-effects of DEFUN with a package-lock
[sbcl.git] / src / code / macros.lisp
index 71d7bad..b886d20 100644 (file)
@@ -152,10 +152,9 @@ invoked. In that case it will store into PLACE and start over."
              ;; FIXME: warn about incompatible lambda list with
              ;; respect to parent function?
              (setf (sb!xc:compiler-macro-function name) definition)
-             #-sb-xc-host
-             (setf (%fun-doc definition) doc)
              ,(when set-p
-                    `(setf (%fun-lambda-list definition) lambda-list
+                    `(setf (%fun-doc definition) doc
+                           (%fun-lambda-list definition) lambda-list
                            (%fun-name definition) debug-name))
              name))))
   (progn
@@ -166,7 +165,8 @@ invoked. In that case it will store into PLACE and start over."
 
 (eval-when (#-sb-xc :compile-toplevel :load-toplevel :execute)
 
-(define-condition duplicate-case-key-warning (style-warning)
+;;; Make this a full warning during SBCL build.
+(define-condition duplicate-case-key-warning (#-sb-xc-host style-warning #+sb-xc-host warning)
   ((key :initarg :key
         :reader case-warning-key)
    (case-kind :initarg :case-kind
@@ -304,11 +304,7 @@ invoked. In that case it will store into PLACE and start over."
          (cond
           ,@(nreverse clauses)
           ,@(if errorp
-                `((t (error 'case-failure
-                            :name ',name
-                            :datum ,keyform-value
-                            :expected-type ',expected-type
-                            :possibilities ',keys))))))))
+                `((t (case-failure ',name ,keyform-value ',keys))))))))
 ) ; EVAL-WHEN
 
 (defmacro-mundanely case (keyform &body cases)