mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-03 02:31:03 -08:00
* lisp/vc/vc-mtn.el:
* lisp/vc/vc-hg.el: * lisp/vc/vc-git.el: * lisp/vc/vc-dir.el: * lisp/vc/vc-cvs.el: * lisp/vc/vc-bzr.el: * lisp/vc/vc-arch.el: * lisp/vc/vc.el: Replace lexical-let by lexical-binding. * lisp/minibuffer.el (lazy-completion-table): Avoid ((λ ...) ...). * lisp/emacs-lisp/cl-macs.el (lexical-let): Fix use in lexical-binding. * lisp/emacs-lisp/cconv.el (cconv-analyse-form): Warn use of ((λ ...) ...).
This commit is contained in:
parent
f08ae1c9b5
commit
0d42eb3e96
14 changed files with 314 additions and 324 deletions
|
|
@ -639,7 +639,9 @@ and updates the data stored in ENV."
|
|||
(cconv-analyse-form (cadr forms) env)
|
||||
(setq forms (cddr forms))))
|
||||
|
||||
(`((lambda . ,_) . ,_) ; first element is lambda expression
|
||||
(`((lambda . ,_) . ,_) ; First element is lambda expression.
|
||||
(byte-compile-log-warning
|
||||
"Use of deprecated ((lambda ...) ...) form" t :warning)
|
||||
(dolist (exp `((function ,(car form)) . ,(cdr form)))
|
||||
(cconv-analyse-form exp env)))
|
||||
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ This also does some trivial optimizations to make the form prettier.
|
|||
;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
|
||||
;;;;;; do* do loop return-from return block etypecase typecase ecase
|
||||
;;;;;; case load-time-value eval-when destructuring-bind function*
|
||||
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "91b45885535a73dd8015973cb8c988e1")
|
||||
;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "abb2e33c6f61539d69ddbe7c4046261b")
|
||||
;;; Generated autoloads from cl-macs.el
|
||||
|
||||
(autoload 'gensym "cl-macs" "\
|
||||
|
|
|
|||
|
|
@ -1483,18 +1483,24 @@ lexical closures as in Common Lisp.
|
|||
(cons 'progn body)
|
||||
(nconc (mapcar (function (lambda (x)
|
||||
(list (symbol-name (car x))
|
||||
(list 'symbol-value (caddr x))
|
||||
(list 'symbol-value (caddr x))
|
||||
t))) vars)
|
||||
(list '(defun . cl-defun-expander))
|
||||
cl-macro-environment))))
|
||||
(if (not (get (car (last cl-closure-vars)) 'used))
|
||||
(list 'let (mapcar (function (lambda (x)
|
||||
(list (caddr x) (cadr x)))) vars)
|
||||
(sublis (mapcar (function (lambda (x)
|
||||
(cons (caddr x)
|
||||
(list 'quote (caddr x)))))
|
||||
vars)
|
||||
ebody))
|
||||
;; Turn (let ((foo (gensym))) (set foo <val>) ...(symbol-value foo)...)
|
||||
;; into (let ((foo <val>)) ...(symbol-value 'foo)...).
|
||||
;; This is good because it's more efficient but it only works with
|
||||
;; dynamic scoping, since with lexical scoping we'd need
|
||||
;; (let ((foo <val>)) ...foo...).
|
||||
`(progn
|
||||
,@(mapcar (lambda (x) `(defvar ,(caddr x))) vars)
|
||||
(let ,(mapcar (lambda (x) (list (caddr x) (cadr x))) vars)
|
||||
,(sublis (mapcar (lambda (x)
|
||||
(cons (caddr x)
|
||||
(list 'quote (caddr x))))
|
||||
vars)
|
||||
ebody)))
|
||||
(list 'let (mapcar (function (lambda (x)
|
||||
(list (caddr x)
|
||||
(list 'make-symbol
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue