File tree Expand file tree Collapse file tree 2 files changed +24
-11
lines changed
test/lisp/emacs-lisp/eieio-tests Expand file tree Collapse file tree 2 files changed +24
-11
lines changed Original file line number Diff line number Diff line change @@ -510,16 +510,18 @@ instance."
510
510
All slots are unbound, except those initialized with PARAMS."
511
511
(let* ((newname (and (stringp (car params)) (pop params)))
512
512
(nobj (apply #'cl-call-next-method obj params))
513
- (nm (slot-value obj 'object-name )))
514
- (eieio-oset obj 'object-name
513
+ (nm (slot-value nobj 'object-name )))
514
+ (eieio-oset nobj 'object-name
515
515
(or newname
516
- (save-match-data
517
- (if (and nm (string-match " -\\ ([0-9]+\\ )" nm))
518
- (let ((num (1+ (string-to-number
519
- (match-string 1 nm)))))
520
- (concat (substring nm 0 (match-beginning 0 ))
521
- " -" (int-to-string num)))
522
- (concat nm " -1" )))))
516
+ (if (equal nm (slot-value obj 'object-name ))
517
+ (save-match-data
518
+ (if (and nm (string-match " -\\ ([0-9]+\\ )" nm))
519
+ (let ((num (1+ (string-to-number
520
+ (match-string 1 nm)))))
521
+ (concat (substring nm 0 (match-beginning 0 ))
522
+ " -" (int-to-string num)))
523
+ (concat nm " -1" )))
524
+ nm)))
523
525
nobj))
524
526
525
527
(cl-defmethod make-instance ((class (subclass eieio-named)) &rest args)
Original file line number Diff line number Diff line change @@ -862,8 +862,7 @@ Subclasses to override slot attributes.")
862
862
(should (oref obj1 a-slot))))
863
863
864
864
(defclass NAMED (eieio-named )
865
- ((some-slot :initform nil )
866
- )
865
+ ((some-slot :initform nil ))
867
866
" A class inheriting from eieio-named." )
868
867
869
868
(ert-deftest eieio-test-35-named-object ()
@@ -902,6 +901,18 @@ Subclasses to override slot attributes.")
902
901
(should
903
902
(fboundp 'eieio--defalias )))
904
903
904
+ (ert-deftest eieio-test-38-clone-named-object ()
905
+ (let* ((A (NAMED :object-name " aa" ))
906
+ (B (clone A :object-name " bb" ))
907
+ (C (clone A " cc" ))
908
+ (D (clone A))
909
+ (E (clone D)))
910
+ (should (string= " aa" (oref A object-name)))
911
+ (should (string= " bb" (oref B object-name)))
912
+ (should (string= " cc" (oref C object-name)))
913
+ (should (string= " aa-1" (oref D object-name)))
914
+ (should (string= " aa-2" (oref E object-name)))))
915
+
905
916
906
917
(provide 'eieio-tests )
907
918
You can’t perform that action at this time.
0 commit comments