"end of file on ~S"
(stream-error-stream condition)))))
+(define-condition closed-stream-error (stream-error) ()
+ (:report
+ (lambda (condition stream)
+ (format stream "~S is closed" (stream-error-stream condition)))))
+
(define-condition file-error (error)
((pathname :reader file-error-pathname :initarg :pathname))
(:report
(define-condition simple-reference-error (reference-condition simple-error)
())
+(define-condition simple-reference-warning (reference-condition simple-warning)
+ ())
+
(define-condition duplicate-definition (reference-condition warning)
((name :initarg :name :reader duplicate-definition-name))
(:report (lambda (c s)
\f
;;; A knob for muffling warnings, mostly for use while loading files.
(defvar *muffled-warnings* 'uninteresting-redefinition
- "A type that ought to specify a subtype of WARNING. Whenever a warning
-is signaled, if the warning if of this type, it will be muffled.")
+ "A type that ought to specify a subtype of WARNING. Whenever a
+warning is signaled, if the warning if of this type and is not
+handled by any other handler, it will be muffled.")
\f
;;; Various STYLE-WARNING signaled in the system.
;; For the moment, we're only getting into the details for function
;; clearly uninteresting, and we'll say arbitrarily that
;; replacing an interpreted function with an interpreted
;; function is uninteresting, too, but leave out the
- ;; compiled-to-interpreted and interpreted-to-compiled cases.
- (when (or (and (typep old-fdefn
- '(or #!+sb-eval sb!eval:interpreted-function))
- (typep new-fdefn
- '(or #!+sb-eval sb!eval:interpreted-function)))
+ ;; compiled-to-interpreted case.
+ (when (or (typep
+ old-fdefn
+ '(or #!+sb-eval sb!eval:interpreted-function))
(and (typep old-fdefn
'(and compiled-function
(not funcallable-instance)))
(redefinition-with-deftransform-transform warning)))))
\f
;;; Various other STYLE-WARNINGS
-(define-condition ignoring-asterisks-in-variable-name
+(define-condition dubious-asterisks-around-variable-name
(style-warning simple-condition)
()
(:report (lambda (warning stream)
(simple-condition-format-control warning)
(simple-condition-format-arguments warning)))))
-(define-condition ignoring-asterisks-in-lexical-variable-name
- (ignoring-asterisks-in-variable-name)
+(define-condition asterisks-around-lexical-variable-name
+ (dubious-asterisks-around-variable-name)
())
-(define-condition ignoring-asterisks-in-constant-variable-name
- (ignoring-asterisks-in-variable-name)
+(define-condition asterisks-around-constant-variable-name
+ (dubious-asterisks-around-variable-name)
())
-(define-condition undefined-alien (style-warning)
+;; We call this UNDEFINED-ALIEN-STYLE-WARNING because there are some
+;; subclasses of ERROR above having to do with undefined aliens.
+(define-condition undefined-alien-style-warning (style-warning)
((symbol :initarg :symbol :reader undefined-alien-symbol))
(:report (lambda (warning stream)
(format stream "Undefined alien: ~S"