elisp: Warning Tips
D.5 Tips for Avoiding Compiler Warnings
=======================================
• Try to avoid compiler warnings about undefined free variables, by
adding dummy ‘defvar’ definitions for these variables, like this:
(defvar foo)
Such a definition has no effect except to tell the compiler not to
warn about uses of the variable ‘foo’ in this file.
• Similarly, to avoid a compiler warning about an undefined function
that you know _will_ be defined, use a ‘declare-function’ statement
(Declaring Functions).
• If you use many functions and variables from a certain file, you
can add a ‘require’ for that package to avoid compilation warnings
for them. For instance,
(eval-when-compile
(require 'foo))
• If you bind a variable in one function, and use it or set it in
another function, the compiler warns about the latter function
unless the variable has a definition. But adding a definition
would be unclean if the variable has a short name, since Lisp
packages should not define short variable names. The right thing
to do is to rename this variable to start with the name prefix used
for the other functions and variables in your package.
• The last resort for avoiding a warning, when you want to do
something that is usually a mistake but you know is not a mistake
in your usage, is to put it inside ‘with-no-warnings’.
Compiler Errors.