emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 daa9e85 5/5: Improve warning and error messages


From: Eric Abrahamsen
Subject: [Emacs-diffs] emacs-26 daa9e85 5/5: Improve warning and error messages
Date: Thu, 22 Mar 2018 00:57:45 -0400 (EDT)

branch: emacs-26
commit daa9e853bd6de90e0fc0b13e30eb261c5a45774e
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>

    Improve warning and error messages
    
    * lisp/emacs-lisp/eieio-base.el (eieio-persistent-read,
      (eieio-persistent-validate/fix-slot-value): Indicate exactly what
      went wrong.
---
 lisp/emacs-lisp/eieio-base.el | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/lisp/emacs-lisp/eieio-base.el b/lisp/emacs-lisp/eieio-base.el
index 5ff8574..cba6cab 100644
--- a/lisp/emacs-lisp/eieio-base.el
+++ b/lisp/emacs-lisp/eieio-base.el
@@ -219,7 +219,7 @@ for CLASS.  Optional ALLOW-SUBCLASS says that it is ok for
 `eieio-persistent-read' to load in subclasses of class instead of
 being pedantic."
   (unless class
-    (message "Unsafe call to `eieio-persistent-read'."))
+    (warn "`eieio-persistent-read' called without specifying a class"))
   (when class (cl-check-type class class))
   (let ((ret nil)
        (buffstr nil))
@@ -234,13 +234,16 @@ being pedantic."
          ;; the current buffer will work.
          (setq ret (read buffstr))
          (when (not (child-of-class-p (car ret) 'eieio-persistent))
-           (error "Corrupt object on disk: Unknown saved object"))
+           (error
+             "Invalid object: %s is not a subclass of `eieio-persistent'"
+             (car ret)))
          (when (and class
-                    (not (or (eq (car ret) class ) ; same class
-                             (and allow-subclass
-                                  (child-of-class-p (car ret) class)) ; 
subclasses
-                             )))
-           (error "Corrupt object on disk: Invalid saved class"))
+                    (not (or (eq (car ret) class) ; same class
+                             (and allow-subclass  ; subclass
+                                  (child-of-class-p (car ret) class)))))
+           (error
+             "Invalid object: %s is not an object of class %s nor a subclass"
+             (car ret) class))
          (setq ret (eieio-persistent-convert-list-to-object ret))
          (oset ret file filename))
       (kill-buffer " *tmp eieio read*"))
@@ -332,7 +335,8 @@ Second, any text properties will be stripped from strings."
                  ;; We have a predicate, but it doesn't satisfy the predicate?
                  (dolist (PV (cdr proposed-value))
                    (unless (child-of-class-p (car PV) (car classtype))
-                     (error "Corrupt object on disk")))
+                     (error "Invalid object: slot member %s does not match 
class %s"
+                             (car PV) (car classtype))))
 
                  ;; We have a list of objects here.  Lets load them
                  ;; in.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]