emacs/test/lisp/emacs-lisp
Mattias Engdegård 8d0ee5e7a9 Constant-propagate variables bound outside loops
Previously, variables bound outside `while` loops were not substituted
inside even in the absense of mutation.  Add the necessary mutation
checking inside loops to allow propagation of values and aliased
variables.

* lisp/emacs-lisp/byte-opt.el
(byte-optimize--inhibit-outside-loop-constprop): New variable.
(byte-optimize-form-code-walker): First traverse each loop without
substitution to discover mutation, then without restrictions.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-loop): New.
(bytecomp-tests--test-cases): Add test cases.
2021-09-25 20:25:02 +02:00
..
bytecomp-resources Warn about arity errors in inlining calls (bug#12299) 2021-07-23 15:19:01 +02:00
edebug-resources * Edebug: Generalize &lookup, use it for cl-macrolet and cl-generic 2021-02-14 21:34:09 -05:00
eieio-tests EIEIO: Prevent excessive evaluation of :initform 2021-07-16 15:40:08 -04:00
faceup-resources Update copyright year to 2021 2021-01-01 01:13:56 -08:00
faceup-tests Update copyright year to 2021 2021-01-01 01:13:56 -08:00
macroexp-resources * test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): Add case 2021-02-24 18:39:06 -05:00
package-resources Update copyright year to 2021 2021-01-01 01:13:56 -08:00
shadow-resources Use lexical-binding in most remaining emacs-lisp tests 2020-04-30 12:09:51 +02:00
testcover-resources ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
backquote-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
backtrace-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
benchmark-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
bindat-tests.el Bindat: new macro-expansion based data layout language 2021-03-05 19:56:31 -05:00
bytecomp-tests.el Constant-propagate variables bound outside loops 2021-09-25 20:25:02 +02:00
cconv-tests.el Make lambda-lifting work again 2021-03-05 21:41:58 +01:00
check-declare-tests.el Use string-search instead of string-match[-p] 2021-08-09 11:35:56 +02:00
checkdoc-tests.el Fix recently introduced bug in checkdoc 2021-09-24 23:00:57 +02:00
cl-extra-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
cl-generic-tests.el * lisp/emacs-lisp/cl-generic.el: Try and fix bug#49866 2021-08-09 19:03:42 -04:00
cl-lib-tests.el Move cl-lib tests for caaXr to subr-tests.el 2021-09-03 10:18:54 +02:00
cl-macs-tests.el Add condition-case success handler (bug#47677) 2021-04-15 15:41:13 +02:00
cl-preloaded-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
cl-print-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
cl-seq-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
comp-cstr-tests.el Have `comp-cstr-intersection-no-mem' intersect pos neg value sets 2021-04-27 22:58:41 +02:00
copyright-tests.el Allow years in a copyright range to be separated by en dashes. 2021-05-25 14:04:06 +02:00
derived-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
easy-mmode-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
edebug-tests.el Avoid cl-lib alias for cadadr and friends 2021-09-03 10:18:54 +02:00
ert-tests.el Use ambient lexical-binding value in ert-deftest body (bug#50738) 2021-09-25 20:25:01 +02:00
ert-x-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
find-func-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
float-sup-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
generator-tests.el Prefer declare over a put of list-indent-function. 2021-02-22 11:54:17 -05:00
gv-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
hierarchy-tests.el Use lexical-binding in more tests 2020-08-29 22:41:51 +02:00
let-alist-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
lisp-mnt-tests.el * lisp/emacs-lisp/lisp-mnt.el (lm-crack-address): Handle multi-addresses 2021-08-12 13:55:38 -04:00
lisp-mode-tests.el Indent bodies of local function definitions properly in elisp-mode 2021-09-25 03:34:37 +02:00
lisp-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
macroexp-tests.el * test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): Add case 2021-02-24 18:39:06 -05:00
map-tests.el Consistently test alist keys with equal in map.el 2021-09-21 13:32:49 +01:00
memory-report-tests.el Autoload cl-struct-slot-info 2021-09-05 16:52:14 +02:00
nadvice-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
package-tests.el Allow installing packages with DOS line endings 2021-07-20 15:53:34 +02:00
pcase-tests.el * lisp/emacs-lisp/pcase.el (pcase-setq): Align its semantics with pcase-let 2021-08-12 11:04:30 -04:00
pp-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
regexp-opt-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
ring-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
rmc-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
rx-tests.el Fix pcase 'rx' patterns with a single named submatch (bug#48477) 2021-05-18 12:34:30 +02:00
seq-tests.el ; * test/lisp/emacs-lisp/seq-tests.el: Remove duplicate test. 2021-09-17 14:11:06 +02:00
shadow-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
shortdoc-tests.el Fix shortdoc-add-function section creation 2021-06-21 16:20:22 +01:00
subr-x-tests.el Change how thread-first/thread-last indent the first argument 2021-09-22 05:57:48 +02:00
syntax-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
tabulated-list-test.el Don't quote nil and t in doc strings and comments 2021-09-21 22:11:43 +02:00
testcover-tests.el ; Minor license statement fixes 2021-02-08 09:10:57 +01:00
text-property-search-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
thunk-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
timer-tests.el Prefer skip-unless in more tests 2021-01-13 17:39:53 +01:00
unsafep-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00
warnings-tests.el Update copyright year to 2021 2021-01-01 01:13:56 -08:00