projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor GET-TOPLEVEL-FORM &co between debugger and disassembler
[sbcl.git]
/
src
/
code
/
parse-defmacro.lisp
diff --git
a/src/code/parse-defmacro.lisp
b/src/code/parse-defmacro.lisp
index
8fb6d8c
..
0ddf097
100644
(file)
--- a/
src/code/parse-defmacro.lisp
+++ b/
src/code/parse-defmacro.lisp
@@
-39,6
+39,9
@@
((:default-default *default-default*))
(error-fun 'error)
(wrap-block t))
((:default-default *default-default*))
(error-fun 'error)
(wrap-block t))
+ (unless (listp lambda-list)
+ (bad-type lambda-list 'list "~S lambda-list is not a list: ~S"
+ context lambda-list))
(multiple-value-bind (forms declarations documentation)
(parse-body body :doc-string-allowed doc-string-allowed)
(let ((*arg-tests* ())
(multiple-value-bind (forms declarations documentation)
(parse-body body :doc-string-allowed doc-string-allowed)
(let ((*arg-tests* ())
@@
-321,8
+324,7
@@
:maximum ,explicit-maximum))))))
*arg-tests*))
(when key-seen
:maximum ,explicit-maximum))))))
*arg-tests*))
(when key-seen
- (let ((problem (gensym "KEY-PROBLEM-"))
- (info (gensym "INFO-")))
+ (with-unique-names (problem info)
(push `(multiple-value-bind (,problem ,info)
(verify-keywords ,rest-name
',keys
(push `(multiple-value-bind (,problem ,info)
(verify-keywords ,rest-name
',keys
@@
-340,7
+342,7
@@
;;; We save space in macro definitions by calling this function.
(defun arg-count-error (context name args lambda-list minimum maximum)
(let (#-sb-xc-host
;;; We save space in macro definitions by calling this function.
(defun arg-count-error (context name args lambda-list minimum maximum)
(let (#-sb-xc-host
- (sb!debug:*stack-top-hint* (nth-value 1 (find-caller-name-and-frame))))
+ (sb!debug:*stack-top-hint* (or sb!debug:*stack-top-hint* 'arg-count-error)))
(error 'arg-count-error
:kind context
:name name
(error 'arg-count-error
:kind context
:name name