X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fcondition.lisp;h=d6cfa9d1c11bb645fc917f07edc081caab6596c2;hb=da54f0f75754190f30f8585ff05bebd254aa4e40;hp=9a3ae5ee7640ed868a026d4f8c59c64ab458336d;hpb=1250e993756076f6e12a6459983d9a953529ff96;p=sbcl.git diff --git a/src/code/condition.lisp b/src/code/condition.lisp index 9a3ae5e..d6cfa9d 100644 --- a/src/code/condition.lisp +++ b/src/code/condition.lisp @@ -604,6 +604,13 @@ "The function ~S is undefined." (cell-error-name condition))))) +(define-condition special-form-function (undefined-function) () + (:report + (lambda (condition stream) + (format stream + "Cannot FUNCALL the SYMBOL-FUNCTION of special operator ~S." + (cell-error-name condition))))) + (define-condition arithmetic-error (error) ((operation :reader arithmetic-error-operation :initarg :operation @@ -691,7 +698,12 @@ ;;; Out-of-range &KEY END arguments are similar to, but off by one ;;; from out-of-range indices into the sequence. -(define-condition index-too-large-error (type-error) +;;; +;;; FIXME: Uh, but it isn't used for &KEY END things -- in fact, this +;;; is only used in one place, in SUBSEQ. Is it really necessary? Is +;;; it here so that we can actually go round seq.lisp decorating all +;;; the sequence functions with extra checks? -- CSR, 2002-11-01 +(define-condition end-too-large-error (type-error) () (:report (lambda (condition stream) @@ -735,6 +747,17 @@ "unexpected end of file on ~S ~A" (stream-error-stream condition) (reader-eof-error-context condition))))) + +(define-condition reader-impossible-number-error (reader-error) + ((error :reader reader-impossible-number-error-error :initarg :error)) + (:report + (lambda (condition stream) + (let ((error-stream (stream-error-stream condition))) + (format stream "READER-ERROR ~@[at ~W ~]on ~S:~%~?~%Original error: ~A" + (file-position error-stream) error-stream + (reader-error-format-control condition) + (reader-error-format-arguments condition) + (reader-impossible-number-error-error condition)))))) ;;;; special SBCL extension conditions