X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fmacros.lisp;h=7525fbfdf085f7b22b012d63c58d6caf967cfd95;hb=408ed62925d643c163f0e9fc7b3fd41cce65fbea;hp=b3e3c03eff9e59d8068ae86723a777e97d3d178a;hpb=df871446529da0e83d670f35a9566c11d814be32;p=sbcl.git diff --git a/src/code/macros.lisp b/src/code/macros.lisp index b3e3c03..7525fbf 100644 --- a/src/code/macros.lisp +++ b/src/code/macros.lisp @@ -73,7 +73,7 @@ invoked. In that case it will store into PLACE and start over." ;; variable to work around Python's blind spot in type derivation. ;; For more complex places getting the type derived should not ;; matter so much anyhow. - (let ((expanded (sb!xc:macroexpand place env))) + (let ((expanded (%macroexpand place env))) (if (symbolp expanded) `(do () ((typep ,place ',type)) @@ -152,9 +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) - (setf (fdocumentation name 'compiler-macro) 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 @@ -165,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 @@ -303,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)