emacs/lisp/emacs-lisp
Stefan Monnier a350ae058c * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings
Instead of warning about unused vars during the analysis phase of
closure conversion, do it in the actual closure conversion by
annotating the code with "unused" warnings, so that the warnings
get emitted later by the bytecomp phase, like all other warnings,
at which point the line-number info is a bit less imprecise.

Take advantage of this change to wrap the expressions of unused
let-bound vars inside (ignore ...) so the byte-compiler can better
optimize them away.

Finally, promote `macroexp--warn-and-return` to "official" status
by removing its "--" marker.

(cconv-captured+mutated, cconv-lambda-candidates): Remove vars.
(cconv-var-classification): New var to replace them.
(cconv-warnings-only): Delete function.
(cconv--warn-unused-msg, cconv--var-classification): New functions.
(cconv--convert-funcbody): Add warnings for unused args.
(cconv-convert): Add warnings for unused vars in `let` and `condition-case`.
(cconv--analyze-use): Don't emit an "unused var" warning any more,
but instead remember the fact in `cconv-var-classification`.

* lisp/emacs-lisp/bytecomp.el (byte-compile-force-lexical-warnings):
Remove variable.
(byte-compile-preprocess): Remove corresponding case.

* lisp/emacs-lisp/pcase.el (pcase--if): Don't throw away `test` effects.
(\`):
* lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Use `car-safe` instead
of `car`, so it can more easily be removed by the optimizer if the
result is not used.

* lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap): New function.
(macroexp-warn-and-return): Rename from `macroexp--warn-and-return`.
2021-02-26 20:24:52 -05:00
..
advice.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
autoload.el Extend the syntax of `interactive' to list applicable modes 2021-02-14 13:21:24 +01:00
avl-tree.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
backquote.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
backtrace.el (backtrace-goto-source-functions): Make it a normal abnormal hook 2021-02-13 10:41:45 -05:00
benchmark.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
bindat.el * lisp/emacs-lisp/bindat.el: Tweak example in comment 2021-02-18 11:15:13 -05:00
byte-opt.el Add the `always' function 2021-02-20 13:44:19 +01:00
byte-run.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
bytecomp.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
cconv.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
chart.el Fix typos 2021-02-18 16:50:55 +01:00
check-declare.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
checkdoc.el * lisp/emacs-lisp/checkdoc.el: Doc fix; don't mention built-ins. 2021-02-05 02:52:52 +01:00
cl-extra.el cl-extra: Fix docstring retrieval 2021-02-22 16:06:58 +01:00
cl-generic.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
cl-indent.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
cl-lib.el * lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function. 2021-02-24 13:52:45 -05:00
cl-macs.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
cl-preloaded.el Fix copyright years by hand 2021-01-01 00:33:28 -08:00
cl-print.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
cl-seq.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
copyright.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
crm.el Use lexical-binding in all of lisp/emacs-lisp 2021-01-28 14:42:21 -05:00
cursor-sensor.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
debug.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
derived.el Introduce an :interactive keyword for `defined-derived-mode' 2021-02-14 12:58:20 +01:00
disass.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
easy-mmode.el Add a new variable `global-minor-modes' 2021-02-15 13:08:21 +01:00
easymenu.el Fix syntax highlighting of easy-menu-define docstrings 2021-02-26 15:59:56 +01:00
edebug.el Remove redundant requires of easymenu 2021-02-26 15:52:26 +01:00
eieio-base.el * lisp/emacs-lisp/eieio-base.el: Silence warnings in last change 2021-01-11 16:44:39 -05:00
eieio-compat.el * lisp/emacs-lisp/edebug.el (edebug--handle-&-spec-op <&name>): New method 2021-02-13 16:21:53 -05:00
eieio-core.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
eieio-custom.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
eieio-datadebug.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
eieio-opt.el Use lexical-binding in all of lisp/emacs-lisp 2021-01-28 14:42:21 -05:00
eieio-speedbar.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
eieio.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
eldoc.el Fix typos 2021-02-18 16:50:55 +01:00
elint.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
elp.el Remove some unnecessary references to Emacs 19 2021-02-04 05:28:00 +01:00
ert-x.el * lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function. 2021-02-24 13:52:45 -05:00
ert.el Remove redundant requires of easymenu 2021-02-26 15:52:26 +01:00
ewoc.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
faceup.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
find-func.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
float-sup.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
generator.el Avoid a compilation warning in iter-do 2021-02-06 11:31:18 +01:00
generic.el Prefer defvar-local in emacs-lisp/*.el 2021-01-31 14:55:53 +01:00
gv.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
helper.el Use lexical-binding in all of lisp/emacs-lisp 2021-01-28 14:42:21 -05:00
hierarchy.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
inline.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
let-alist.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
lisp-mnt.el Preserve leading whitespace in `lm-commentary'. 2021-02-09 09:10:45 +01:00
lisp-mode.el Remove some dead, commented out code from lisp-mode.el 2021-02-09 17:03:55 +01:00
lisp.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
macroexp.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
map-ynp.el New variable 'use-short-answers' to use 'y-or-n-p' instead of 'yes-or-no-p' 2021-02-25 20:45:40 +02:00
map.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
memory-report.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
nadvice.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
package-x.el * lisp/gnus/gnus-art.el: Fix misuse of standard-value. 2021-02-02 14:39:28 -05:00
package.el * lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function. 2021-02-24 13:52:45 -05:00
pcase.el * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings 2021-02-26 20:24:52 -05:00
pp.el Move all usages of values' to values--store-value' 2021-02-09 09:04:47 +01:00
radix-tree.el * lisp/emacs-lisp/pcase.el: Add support for not to pred 2021-01-16 14:21:57 -05:00
re-builder.el ; Fix previous easy-menu-define conversion 2021-02-21 10:49:07 +01:00
regexp-opt.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
regi.el Use lexical-binding in all of lisp/emacs-lisp 2021-01-28 14:42:21 -05:00
ring.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
rmc.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
rx.el Fix pcase rx pattern bugs 2021-02-26 10:09:42 +01:00
seq.el Small fixes 2021-02-23 21:05:30 +02:00
shadow.el Use lexical-binding in all of lisp/emacs-lisp 2021-01-28 14:42:21 -05:00
shortdoc.el Use named faces in shortdoc 2021-02-24 17:18:26 +01:00
smie.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
subr-x.el * lisp/emacs-lisp/subr-x.el (named-let): New macro 2021-01-20 14:13:15 -05:00
syntax.el Prefer defvar-local in emacs-lisp/*.el 2021-01-31 14:55:53 +01:00
tabulated-list.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
tcover-ses.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
testcover.el Fix previous change in testcover.el 2021-02-06 15:04:52 +01:00
text-property-search.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
thunk.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
timer-list.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
timer.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
tq.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
trace.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
unsafep.el Use lexical-binding in all of lisp/emacs-lisp 2021-01-28 14:42:21 -05:00
warnings.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00