X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fmacros.lisp;h=6fe63255b63f94471b3b52e4683918a6099f65d7;hb=dfa55a883f94470267b626dae77ce7e7dfac3df6;hp=713f224d38f259884bf8c350e9fdc4b26f02d0ae;hpb=cfb9e3640e34706acdfccd26236024de259f3b4f;p=sbcl.git diff --git a/src/compiler/macros.lisp b/src/compiler/macros.lisp index 713f224..6fe6325 100644 --- a/src/compiler/macros.lisp +++ b/src/compiler/macros.lisp @@ -284,7 +284,6 @@ ;;; The second value is a list of all the arguments bound. We make the ;;; variables IGNORABLE so that we don't have to manually declare them ;;; Ignore if their only purpose is to make the syntax work. -(declaim (ftype (function (list list symbol t) list) parse-deftransform)) (defun parse-deftransform (lambda-list body args error-form) (multiple-value-bind (req opt restp rest keyp keys allowp) (parse-lambda-list lambda-list) @@ -313,7 +312,7 @@ (dolist (spec keys) (if (or (atom spec) (atom (first spec))) (let* ((var (if (atom spec) spec (first spec))) - (key (intern (symbol-name var) "KEYWORD"))) + (key (keywordicate var))) (vars var) (binds `(,var (find-keyword-continuation ,n-keys ,key))) (keywords key)) @@ -336,7 +335,7 @@ `(<= ,min-args ,n-length)) ,@(when keyp (if allowp - `((check-keywords-constant ,n-keys)) + `((check-key-args-constant ,n-keys)) `((check-transform-keys ,n-keys ',(keywords)))))) ,error-form) (let ,(binds) @@ -665,7 +664,7 @@ ,(if restart-p `(cond ((eq (continuation-block ,cont-var) ,n-block) - (assert (continuation-next ,cont-var)) + (aver (continuation-next ,cont-var)) (continuation-next ,cont-var)) (t (let ((start (block-start ,n-block))) @@ -745,7 +744,7 @@ (eval-when (:compile-toplevel :load-toplevel :execute) -(defstruct event-info +(defstruct (event-info (:copier nil)) ;; The name of this event. (name (required-argument) :type symbol) ;; The string rescribing this event.