diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index f75be3f71ad..e6f18590705 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -1599,6 +1599,12 @@ byte-optimize-append (cdr args)) (cdr newargs))) + ;; (append '(C1...) ... '(C2...)) -> (append C1... ... C2...) + ((cl-loop for arg in args + always (and (eq (car arg) 'quote) + (proper-list-p (cdr arg)))) + `',(mapcan #'cadr args)) + ;; non-terminal arg ((cdr args) (cond