From 0c899eede338e8e1e349ddcdaf88723569d48f8d Mon Sep 17 00:00:00 2001 From: Michael Heerdegen Date: Fri, 10 Apr 2020 01:21:33 +0200 Subject: [PATCH] Make `make-local-variable' declare the var locally dynamic The only effect of this change is to get rid of some unnecessary "assignment to free variable" warnings. * lisp/emacs-lisp/bytecomp.el (byte-compile-make-local-variable): New function. --- lisp/emacs-lisp/bytecomp.el | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 13b72196565..72dbfd74b11 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -4752,6 +4752,14 @@ binding slots have been popped." (defun byte-compile-form-make-variable-buffer-local (form) (byte-compile-keep-pending form 'byte-compile-normal-call)) +;; Make `make-local-variable' declare the variable locally +;; dynamic - this suppresses some unnecessary warnings +(byte-defop-compiler-1 make-local-variable + byte-compile-make-local-variable) +(defun byte-compile-make-local-variable (form) + (pcase form (`(,_ ',var) (byte-compile--declare-var var))) + (byte-compile-normal-call form)) + (put 'function-put 'byte-hunk-handler 'byte-compile-define-symbol-prop) (put 'define-symbol-prop 'byte-hunk-handler 'byte-compile-define-symbol-prop) (defun byte-compile-define-symbol-prop (form) -- 2.39.2