emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Solving some specific warnings (was: Fixing compilation and byte-compila


From: Artur Malabarba
Subject: Solving some specific warnings (was: Fixing compilation and byte-compilation warnings before 25.1)
Date: Sat, 14 Nov 2015 12:05:16 +0000

Hi Daniel

2015-11-14 5:54 GMT+00:00 daniel sutton <address@hidden>:
> Hello everyone. I'm a bit new to mucking about in the internals of emacs but
> wanted to help out with cleaning up some compiler and byte compiler
> warnings.

Great!

> I'm building and noticing the error
> minibuffer.el:1697:12 display-completion-list called with 2 arguments but
> accepts only 1.
>
> I'm a little confused as the this function has this signature:
> (defun display-completion-list (completions &optional common-substring) ...)
> In fact, this is a recursive call inside of the function
> display-completion-list.

This is because `display-completion-list' includes the line (declare
(advertised-calling-convention (completions) "24.4")).

This means that, since 24.4, the old way of calling this function was
made obsolete, and it should only be called with one argument now.
Instead of just removing the second argument entirely (which would
break backwards compatibility of code out there) we "pretend" that the
function only takes one argument, so that new code won't use the
second argument.

Normally, the way to solve this warning is to update the way that the
function is being called to conform with the new arglist.
However, looking at the source here, it seems that if the clause `(not
(bufferp standard-output))' is true, then the function just wants to
call itself again (with the same arguments) in a temp-buffer, so you
shouldn't change that.

So it is safe to just mute this warning (and add a comment to the
function saying why). To mute the warning, wrap the form in a
`(with-no-warnings ...)'



reply via email to

[Prev in Thread] Current Thread [Next in Thread]