From: Mattias EngdegÄrd Date: Tue, 30 Apr 2024 12:51:07 +0000 (+0200) Subject: * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Simplify. X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3d7432c4530698964c21a0197220fec69dc17f59;p=emacs.git * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Simplify. Remove the add-lambda argument. All callers adapted. (cherry picked from commit c3c2e3b4d3e9eac09293fca23e93f644e00e9431) --- diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 6b7b804d7de..8e8fcea9b72 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2841,7 +2841,7 @@ not to take responsibility for the actual compilation of the code." ;; Tell the caller that we didn't compile it yet. nil) - (let* ((code (byte-compile-lambda (cons arglist body) t))) + (let ((code (byte-compile-lambda `(lambda ,arglist . ,body)))) (if this-one ;; A definition in b-c-initial-m-e should always take precedence ;; during compilation, so don't let it be redefined. (Bug#8647) @@ -3069,14 +3069,12 @@ If FORM is a lambda or a macro, byte-compile it as a function." byte-compile--known-dynamic-vars) ", ")))) -(defun byte-compile-lambda (fun &optional add-lambda reserved-csts) +(defun byte-compile-lambda (fun &optional reserved-csts) "Byte-compile a lambda-expression and return a valid function. The value is usually a compiled function but may be the original lambda-expression." - (if add-lambda - (setq fun (cons 'lambda fun)) - (unless (eq 'lambda (car-safe fun)) - (error "Not a lambda list: %S" fun))) + (unless (eq 'lambda (car-safe fun)) + (error "Not a lambda list: %S" fun)) (byte-compile-check-lambda-list (nth 1 fun)) (let* ((arglist (nth 1 fun)) (bare-arglist (byte-run-strip-symbol-positions arglist)) ; for compile-defun. @@ -4158,7 +4156,7 @@ This function is never called when `lexical-binding' is nil." (docstring-exp (nth 3 form)) (body (nthcdr 4 form)) (fun - (byte-compile-lambda `(lambda ,vars . ,body) nil (length env)))) + (byte-compile-lambda `(lambda ,vars . ,body) (length env)))) (cl-assert (or (> (length env) 0) docstring-exp)) ;Otherwise, we don't need a closure. (cl-assert (byte-code-function-p fun))