Subject: Re: bug#20141: 24.4.91; Helm is broken after last changes in eieio

From: Michael Heerdegen <[email-masked]>
Date: Thu, 19 Mar 2015 09:10:22 +0100

Michael Heerdegen <[email-masked]> writes:

> (defclass helm-source ()
>   ((name
>     :initarg :name
>     :initform nil
>    (header-name
>     :initarg :header-name)))
>    
>   "Main interface to define helm sources."
>   :abstract t)
>
> (eieio-class-slots 'helm-source)
>
> Until today it returned (name)

Why is there "header-name" missing in the return value, btw?  Sorry if
this is a dumb question, I don't know eieio much.

> , now, you get
>
> ([cl-struct-cl-slot-descriptor name nil t nil])

Let me add that it breaks this code in helm:

--8<---------------cut here---------------start------------->8---
(defun helm--create-source (object)
  "[INTERNAL] Build a helm source from OBJECT.
Where OBJECT is an instance of an eieio class."
  (cl-loop for s in (object-slots object)
           for slot-val = (slot-value object s)
           when slot-val
           collect (cons s (unless (eq t slot-val) slot-val))))
--8<---------------cut here---------------end--------------->8---

`slot-value' barks that the second arg is not a symbol.