Subject: Re: bug#19696: Acknowledgement (24.4; python.el: blank line eldoc error)

From: Carlos Pita <[email-masked]>
Date: Wed, 4 Feb 2015 15:11:38 -0300

I'm not the expert here, but could it be that there is no previous
value for eldoc-documentation-function? I mean, from:

    (add-function WHERE PLACE FUNCTION &optional PROPS)

    Add a piece of advice on the function stored at PLACE.
    [...]
    `:before-until'    (lambda (&rest r) (or  (apply FUNCTION r)
(apply OLDFUN r)))

What is OLDFUN at the point where python.el advises it?:

  (add-function :before-until (local 'eldoc-documentation-function)
                #'python-eldoc-function)

It makes sense that if fails only when there is no symbol to get info
about, as (apply FUNCTION r) evals to nil and (apply OLDFUN r) gets
called, while OLDFUN has no value in its function cell.

On Wed, Feb 4, 2015 at 3:01 PM, Carlos Pita <[email-masked]> wrote:
> Sure Stefan.
>
> This:
>
>
> #[128 "\300\301^B\"\206^K^@\300\302^B\"\207" [apply
> python-eldoc-function #[128 "\301\302\300!^B\"\207"
> [eldoc-documentation-function apply default-value] 4 "
>
> (fn &rest ARGS)"] nil] 4 nil]
>
>
> is the content of eldoc-documentation-function at this point of execution:
>
>
>      (if eldoc-documentation-function
>          (eldoc-message (funcall eldoc-documentation-function))
>       [...]
>
>
> The error raised by the evaluation of the funcall is:
>
>
>     Symbol's function definition is void: nil
>
>
> And that triggers the message in the echo area:
>
>
>     eldoc error: (void-function nil)