Silence various byte-compiler warnings.
* lisp/emacs-lisp/byte-run.el (make-obsolete-variable): New argument `access-type' and new obsolescence format. * lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Adjust to new format. (byte-compile-check-variable): New `access-type' argument. Only warn if the access-type is obsolete. (byte-compile-dynamic-variable-bind, byte-compile-variable-ref) (byte-compile-variable-set): Adjust callers. * lisp/help-fns.el (describe-variable): Adjust to new obsolescence format. * lisp/mail/sendmail.el (mail-mailer-swallows-blank-line): Only mark setting it as obsolete. * lisp/simple.el (minibuffer-completing-symbol): * lisp/font-lock.el (font-lock-beginning-of-syntax-function): Only mark read access as obsolete. * lisp/minibuffer.el (minibuffer-completing-file-name): Don't make it obsolete yet. * lisp/international/quail.el (quail-mouse-choose-completion): Remove unused code referring to obsolete var. (quail-choose-completion-string): Remove. * lisp/server.el (server-clients-with, server-kill-buffer-query-function) (server-kill-emacs-query-function): Silence "unused `proc'" warnings. * lisp/proced.el (proced-send-signal): * lisp/emacs-lisp/lisp.el (lisp-complete-symbol): Replace completion-annotate-function with completion-extra-properties.
This commit is contained in:
parent
3b7d5980c9
commit
2403c841a8
12 changed files with 90 additions and 57 deletions
|
@ -1109,7 +1109,7 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
|
|||
(let* ((funcp (get symbol 'byte-obsolete-info))
|
||||
(obsolete (or funcp (get symbol 'byte-obsolete-variable)))
|
||||
(instead (car obsolete))
|
||||
(asof (if funcp (nth 2 obsolete) (cdr obsolete))))
|
||||
(asof (nth 2 obsolete)))
|
||||
(unless (and funcp (memq symbol byte-compile-not-obsolete-funcs))
|
||||
(byte-compile-warn "`%s' is an obsolete %s%s%s" symbol
|
||||
(if funcp "function" "variable")
|
||||
|
@ -3016,20 +3016,24 @@ That command is designed for interactive use only" fn))
|
|||
(assert (eq byte-compile-depth (1+ start-depth))
|
||||
nil "Wrong depth start=%s end=%s" start-depth byte-compile-depth)))
|
||||
|
||||
(defun byte-compile-check-variable (var &optional binding)
|
||||
"Do various error checks before a use of the variable VAR.
|
||||
If BINDING is non-nil, VAR is being bound."
|
||||
(defun byte-compile-check-variable (var access-type)
|
||||
"Do various error checks before a use of the variable VAR."
|
||||
(when (symbolp var)
|
||||
(byte-compile-set-symbol-position var))
|
||||
(cond ((or (not (symbolp var)) (byte-compile-const-symbol-p var))
|
||||
(when (byte-compile-warning-enabled-p 'constants)
|
||||
(byte-compile-warn (if binding
|
||||
(byte-compile-warn (if (eq access-type 'let-bind)
|
||||
"attempt to let-bind %s `%s`"
|
||||
"variable reference to %s `%s'")
|
||||
(if (symbolp var) "constant" "nonvariable")
|
||||
(prin1-to-string var))))
|
||||
((and (get var 'byte-obsolete-variable)
|
||||
(not (memq var byte-compile-not-obsolete-vars)))
|
||||
((let ((od (get var 'byte-obsolete-variable)))
|
||||
(and od
|
||||
(not (memq var byte-compile-not-obsolete-vars))
|
||||
(or (case (nth 1 od)
|
||||
(set (not (eq access-type 'reference)))
|
||||
(get (eq access-type 'reference))
|
||||
(t t)))))
|
||||
(byte-compile-warn-obsolete var))))
|
||||
|
||||
(defsubst byte-compile-dynamic-variable-op (base-op var)
|
||||
|
@ -3041,13 +3045,13 @@ If BINDING is non-nil, VAR is being bound."
|
|||
|
||||
(defun byte-compile-dynamic-variable-bind (var)
|
||||
"Generate code to bind the lexical variable VAR to the top-of-stack value."
|
||||
(byte-compile-check-variable var t)
|
||||
(byte-compile-check-variable var 'let-bind)
|
||||
(push var byte-compile-bound-variables)
|
||||
(byte-compile-dynamic-variable-op 'byte-varbind var))
|
||||
|
||||
(defun byte-compile-variable-ref (var)
|
||||
"Generate code to push the value of the variable VAR on the stack."
|
||||
(byte-compile-check-variable var)
|
||||
(byte-compile-check-variable var 'reference)
|
||||
(let ((lex-binding (assq var byte-compile--lexical-environment)))
|
||||
(if lex-binding
|
||||
;; VAR is lexically bound
|
||||
|
@ -3063,7 +3067,7 @@ If BINDING is non-nil, VAR is being bound."
|
|||
|
||||
(defun byte-compile-variable-set (var)
|
||||
"Generate code to set the variable VAR from the top-of-stack value."
|
||||
(byte-compile-check-variable var)
|
||||
(byte-compile-check-variable var 'assign)
|
||||
(let ((lex-binding (assq var byte-compile--lexical-environment)))
|
||||
(if lex-binding
|
||||
;; VAR is lexically bound
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue