summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2017-11-24 16:36:33 +0200
committerEli Zaretskii <eliz@gnu.org>2017-11-24 16:36:33 +0200
commitb4f67ebb92b3d753e601e333f64b871a602b3979 (patch)
treeca50396b640d84329497f0d6c84fd53218bbdf2a
parent8a2b204e646b50ad2e2a302c21a9f6e6cc78908e (diff)
downloademacs-b4f67ebb92.tar.gz
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)
-rw-r--r--doc/lispref/compile.texi10
-rw-r--r--doc/lispref/variables.texi4
2 files changed, 11 insertions, 3 deletions
diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi
index 201d9fc2fa5..57ff06085d9 100644
--- a/doc/lispref/compile.texi
+++ b/doc/lispref/compile.texi
@@ -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
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 52d1f3bbf5e..99bbfc91243 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -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,