projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.pre7.74:
[sbcl.git]
/
src
/
code
/
parse-defmacro-errors.lisp
diff --git
a/src/code/parse-defmacro-errors.lisp
b/src/code/parse-defmacro-errors.lisp
index
0ec4b1c
..
62972d4
100644
(file)
--- a/
src/code/parse-defmacro-errors.lisp
+++ b/
src/code/parse-defmacro-errors.lisp
@@
-1,9
+1,6
@@
;;;; error-handling machinery for PARSE-DEFMACRO, separated from
;;;; PARSE-DEFMACRO code itself because the happy path can be handled
;;;; error-handling machinery for PARSE-DEFMACRO, separated from
;;;; PARSE-DEFMACRO code itself because the happy path can be handled
-;;;; earlier in the bootstrap sequence than DEFINE-CONDITION can be,
-;;;; and because some of the error handling depends on SBCL
-;;;; extensions, while PARSE-DEFMACRO needs to run in the
-;;;; cross-compiler on the host Common Lisp
+;;;; earlier in the bootstrap sequence than DEFINE-CONDITION can be
;;;; This software is part of the SBCL system. See the README file for
;;;; more information.
;;;; This software is part of the SBCL system. See the README file for
;;;; more information.
@@
-17,11
+14,10
@@
(in-package "SB!KERNEL")
;;; We save space in macro definitions by calling this function.
(in-package "SB!KERNEL")
;;; We save space in macro definitions by calling this function.
-(defun do-arg-count-error (error-kind name arg lambda-list minimum maximum)
- (multiple-value-bind (fname sb!debug:*stack-top-hint*)
- (find-caller-name-and-frame)
- (declare (ignorable fname))
- (error 'defmacro-ll-arg-count-error
+(defun arg-count-error (error-kind name arg lambda-list minimum maximum)
+ (let (#-sb-xc-host
+ (sb!debug:*stack-top-hint* (nth-value 1 (find-caller-name-and-frame))))
+ (error 'arg-count-error
:kind error-kind
:name name
:argument arg
:kind error-kind
:name name
:argument arg
@@
-54,33
+50,33
@@
(defmacro-bogus-sublist-error-object condition)
(defmacro-bogus-sublist-error-lambda-list condition)))))
(defmacro-bogus-sublist-error-object condition)
(defmacro-bogus-sublist-error-lambda-list condition)))))
-(define-condition defmacro-ll-arg-count-error (defmacro-lambda-list-bind-error)
- ((argument :reader defmacro-ll-arg-count-error-argument :initarg :argument)
- (lambda-list :reader defmacro-ll-arg-count-error-lambda-list
+(define-condition arg-count-error (defmacro-lambda-list-bind-error)
+ ((argument :reader arg-count-error-argument :initarg :argument)
+ (lambda-list :reader arg-count-error-lambda-list
:initarg :lambda-list)
:initarg :lambda-list)
- (minimum :reader defmacro-ll-arg-count-error-minimum :initarg :minimum)
- (maximum :reader defmacro-ll-arg-count-error-maximum :initarg :maximum))
+ (minimum :reader arg-count-error-minimum :initarg :minimum)
+ (maximum :reader arg-count-error-maximum :initarg :maximum))
(:report
(lambda (condition stream)
(print-defmacro-ll-bind-error-intro condition stream)
(format stream
"invalid number of elements in:~% ~:S~%~
(:report
(lambda (condition stream)
(print-defmacro-ll-bind-error-intro condition stream)
(format stream
"invalid number of elements in:~% ~:S~%~
- to satisfy lambda-list:~% ~:S~%"
- (defmacro-ll-arg-count-error-argument condition)
- (defmacro-ll-arg-count-error-lambda-list condition))
- (cond ((null (defmacro-ll-arg-count-error-maximum condition))
+ to satisfy lambda list:~% ~:S~%"
+ (arg-count-error-argument condition)
+ (arg-count-error-lambda-list condition))
+ (cond ((null (arg-count-error-maximum condition))
(format stream "at least ~D expected"
(format stream "at least ~D expected"
- (defmacro-ll-arg-count-error-minimum condition)))
- ((= (defmacro-ll-arg-count-error-minimum condition)
- (defmacro-ll-arg-count-error-maximum condition))
+ (arg-count-error-minimum condition)))
+ ((= (arg-count-error-minimum condition)
+ (arg-count-error-maximum condition))
(format stream "exactly ~D expected"
(format stream "exactly ~D expected"
- (defmacro-ll-arg-count-error-minimum condition)))
+ (arg-count-error-minimum condition)))
(t
(format stream "between ~D and ~D expected"
(t
(format stream "between ~D and ~D expected"
- (defmacro-ll-arg-count-error-minimum condition)
- (defmacro-ll-arg-count-error-maximum condition))))
+ (arg-count-error-minimum condition)
+ (arg-count-error-maximum condition))))
(format stream ", but ~D found"
(format stream ", but ~D found"
- (length (defmacro-ll-arg-count-error-argument condition))))))
+ (length (arg-count-error-argument condition))))))
(define-condition defmacro-ll-broken-key-list-error
(defmacro-lambda-list-bind-error)
(define-condition defmacro-ll-broken-key-list-error
(defmacro-lambda-list-bind-error)