[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19645: 25.0.50; Recent EIEIO changes broke helm: Lisp error: (cl-no-
From: |
Stefan Monnier |
Subject: |
bug#19645: 25.0.50; Recent EIEIO changes broke helm: Lisp error: (cl-no-next-method helm--setup-source... |
Date: |
Wed, 21 Jan 2015 14:49:00 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
>> I'm not sure how to preserve the compatibility with this mistake.
I just pushed a change which includes a hack to preserve this old behavior.
> `:before' and `:after' specify execution order (i.e., when this
> form is called). If neither of these symbols are present, the
> default priority is used (before `:after' and after `:before');
> this default priority is represented in CLOS as `:primary'.
> I didn't specify :primary, because as I understand it is implicit if not
> mentionned, so IIUC I have to specify it now ?
Indeed you don't need to specify ":primary". The problem is that for
the type of the object used in the call, there is only one method that
can be used, and it's a :before method.
Before/after methods are like before/after advice: they are executed
before/after the "main course". In the case of methods, the "main
course" are the primary methods. Adding an after/before method when
there's no primary, is like adding an after/before advice to an
undefined function: if you're lucky the "before" advice/method will be
run first, but when this "before" advice/method finishes, you'll
get an error that the main course in undefined.
Stefan
bug#19645: 25.0.50; Recent EIEIO changes broke helm: Lisp error: (cl-no-next-method helm--setup-source..., Tassilo Horn, 2015/01/22