[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.