Improve discoverability of 'defvar' for suppressing warnings
* doc/lispref/compile.texi (Compiler Errors): Add index entries. * doc/lispref/variables.texi (Defining Variables): Mention that defvar with no value is used for suppressing compiler warnings. (Bug#29400)
This commit is contained in:
parent
8a2b204e64
commit
b4f67ebb92
2 changed files with 11 additions and 3 deletions
doc/lispref
|
@ -434,6 +434,7 @@ to what @code{eval-when-compile} does.
|
|||
@node Compiler Errors
|
||||
@section Compiler Errors
|
||||
@cindex compiler errors
|
||||
@cindex byte-compiler errors
|
||||
|
||||
Error and warning messages from byte compilation are printed in a
|
||||
buffer named @file{*Compile-Log*}. These messages include file names
|
||||
|
@ -450,6 +451,10 @@ compiled, and point shows how far the byte compiler was able to read;
|
|||
the cause of the error might be nearby. @xref{Syntax Errors}, for
|
||||
some tips for locating syntax errors.
|
||||
|
||||
@cindex byte-compiler warnings
|
||||
@cindex free variable, byte-compiler warning
|
||||
@cindex reference to free variable, compilation warning
|
||||
@cindex function not known to be defined, compilation warning
|
||||
A common type of warning issued by the byte compiler is for
|
||||
functions and variables that were used but not defined. Such warnings
|
||||
report the line number for the end of the file, not the locations
|
||||
|
@ -490,12 +495,13 @@ The reference to @var{variable} must be in the @var{then-form} of the
|
|||
|
||||
@item
|
||||
You can tell the compiler that a function is defined using
|
||||
@code{declare-function}. @xref{Declaring Functions}.
|
||||
@code{declare-function}. @xref{Declaring Functions}.
|
||||
|
||||
@item
|
||||
Likewise, you can tell the compiler that a variable is defined using
|
||||
@code{defvar} with no initial value. (Note that this marks the
|
||||
variable as special.) @xref{Defining Variables}.
|
||||
variable as special, i.e.@: dynamically bound.) @xref{Defining
|
||||
Variables}.
|
||||
@end itemize
|
||||
|
||||
You can also suppress any and all compiler warnings within a certain
|
||||
|
|
|
@ -435,7 +435,9 @@ dynamically bound value; @pxref{Void Variables}), then @var{value} is
|
|||
evaluated and @var{symbol} is set to the result. But if @var{symbol}
|
||||
is not void, @var{value} is not evaluated, and @var{symbol}'s value is
|
||||
left unchanged. If @var{value} is omitted, the value of @var{symbol}
|
||||
is not changed in any case.
|
||||
is not changed in any case. Using @code{defvar} with no value is one
|
||||
method of suppressing byte compilation warnings, see @ref{Compiler
|
||||
Errors}.
|
||||
|
||||
If @var{symbol} has a buffer-local binding in the current buffer,
|
||||
@code{defvar} acts on the default value, which is buffer-independent,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue