1.0.19.22: fix bug #425
[sbcl.git] / src / code / condition.lisp
index 59afa4a..d7b2e4d 100644 (file)
              "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)
@@ -1276,8 +1284,9 @@ the values returned by the form as a list. No associated restarts."))
 \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
@@ -1398,11 +1407,10 @@ is signaled, if the warning if of this type, it will be muffled.")
        ;; 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)))
@@ -1468,7 +1476,7 @@ is signaled, if the warning if of this type, it will be muffled.")
                      (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)
@@ -1477,15 +1485,17 @@ the usual naming convention (names like *FOO*) for special variables"
                      (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"