]> code.delx.au - gnu-emacs/blobdiff - lisp/emacs-lisp/eieio-compat.el
Removes the predicate from lisp-complete-symbol (Bug#20456)
[gnu-emacs] / lisp / emacs-lisp / eieio-compat.el
index ee8e731b043f90fa781c4f87579e351d064f60db..0283704e033231ea1571c188bc5f85b9e1f62ebb 100644 (file)
@@ -124,19 +124,22 @@ Summary:
        (defgeneric ,method ,args)
        (eieio--defmethod ',method ',key ',class #',code))))
 
+(defun eieio--generic-static-symbol-specializers (tag)
+  (cl-assert (or (null tag) (eieio--class-p tag)))
+  (when (eieio--class-p tag)
+    (let ((superclasses (eieio--generic-subclass-specializers tag))
+         (specializers ()))
+      (dolist (superclass superclasses)
+       (push superclass specializers)
+       (push `(eieio--static ,(cadr superclass)) specializers))
+      (nreverse specializers))))
+
 (defconst eieio--generic-static-symbol-generalizer
   (cl-generic-make-generalizer
    ;; Give it a slightly higher priority than `subclass' so that the
    ;; interleaved list comes before subclass's non-interleaved list.
    61 (lambda (name) `(and (symbolp ,name) (eieio--class-v ,name)))
-   (lambda (tag)
-     (when (eieio--class-p tag)
-       (let ((superclasses (eieio--generic-subclass-specializers tag))
-             (specializers ()))
-         (dolist (superclass superclasses)
-           (push superclass specializers)
-           (push `(eieio--static ,(cadr superclass)) specializers))
-         (nreverse specializers))))))
+   #'eieio--generic-static-symbol-specializers))
 (defconst eieio--generic-static-object-generalizer
   (cl-generic-make-generalizer
    ;; Give it a slightly higher priority than `class' so that the
@@ -148,7 +151,7 @@ Summary:
           (let ((superclasses (eieio--class-precedence-list tag))
                 (specializers ()))
             (dolist (superclass superclasses)
-              (setq superclass (eieio--class-symbol superclass))
+              (setq superclass (eieio--class-name superclass))
               (push superclass specializers)
               (push `(eieio--static ,superclass) specializers))
             (nreverse specializers))))))