]> git.eshelyaron.com Git - emacs.git/commitdiff
(byte-compile-warnings)
authorGlenn Morris <rgm@gnu.org>
Fri, 21 Sep 2007 07:13:28 +0000 (07:13 +0000)
committerGlenn Morris <rgm@gnu.org>
Fri, 21 Sep 2007 07:13:28 +0000 (07:13 +0000)
(byte-compile-warnings-safe-p): Add `mapcar'.
(byte-compile-normal-call): Add option to suppress mapcar warning.
(top-level): Use mapc rather than mapcar in eval-when-compile.

lisp/emacs-lisp/bytecomp.el

index 10b65d4c47e3b95daddb34f1899ca3246f8851b6..31ee364cd2f7539118119d21f6766d4e620b5448 100644 (file)
 ;;                                                not good to call from Lisp)
 ;;                             `make-local' (dubious calls to
 ;;                                           `make-variable-buffer-local')
+;;                              `mapcar'     (mapcar called for effect)
 ;; byte-compile-compatibility  Whether the compiler should
 ;;                             generate .elc files which can be loaded into
 ;;                             generic emacs 18.
@@ -359,7 +360,8 @@ Elements of the list may be:
                  distinguished from macros and aliases).
   interactive-only
              commands that normally shouldn't be called from Lisp code.
-  make-local  calls to make-variable-buffer-local that may be incorrect."
+  make-local  calls to make-variable-buffer-local that may be incorrect.
+  mapcar      mapcar called for effect."
   :group 'bytecomp
   :type `(choice (const :tag "All" t)
                 (set :menu-tag "Some"
@@ -367,7 +369,7 @@ Elements of the list may be:
                      (const callargs) (const redefine)
                      (const obsolete) (const noruntime)
                      (const cl-functions) (const interactive-only)
-                     (const make-local))))
+                     (const make-local) (const mapcar))))
 (put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p)
 ;;;###autoload
 (defun byte-compile-warnings-safe-p (x)
@@ -378,7 +380,8 @@ Elements of the list may be:
                     (when (memq e '(free-vars unresolved
                                     callargs redefine
                                     obsolete noruntime
-                                    cl-functions interactive-only make-local))
+                                    cl-functions interactive-only
+                                    make-local mapcar))
                       e))
                   x)
                  x))))
@@ -2831,7 +2834,8 @@ That command is designed for interactive use only" fn))
 (defun byte-compile-normal-call (form)
   (if byte-compile-generate-call-tree
       (byte-compile-annotate-call-tree form))
-  (when (and for-effect (eq (car form) 'mapcar))
+  (when (and for-effect (eq (car form) 'mapcar)
+            (memq 'mapcar byte-compile-warnings))
     (byte-compile-set-symbol-position 'mapcar)
     (byte-compile-warn
      "`mapcar' called for effect; use `mapc' or `dolist' instead"))
@@ -4238,18 +4242,18 @@ and corresponding effects."
       (assq 'byte-code (symbol-function 'byte-compile-form))
       (let ((byte-optimize nil)                ; do it fast
            (byte-compile-warnings nil))
-       (mapcar (lambda (x)
-                 (or noninteractive (message "compiling %s..." x))
-                 (byte-compile x)
-                 (or noninteractive (message "compiling %s...done" x)))
-               '(byte-compile-normal-call
-                 byte-compile-form
-                 byte-compile-body
-                 ;; Inserted some more than necessary, to speed it up.
-                 byte-compile-top-level
-                 byte-compile-out-toplevel
-                 byte-compile-constant
-                 byte-compile-variable-ref))))
+       (mapc (lambda (x)
+               (or noninteractive (message "compiling %s..." x))
+               (byte-compile x)
+               (or noninteractive (message "compiling %s...done" x)))
+             '(byte-compile-normal-call
+               byte-compile-form
+               byte-compile-body
+               ;; Inserted some more than necessary, to speed it up.
+               byte-compile-top-level
+               byte-compile-out-toplevel
+               byte-compile-constant
+               byte-compile-variable-ref))))
   nil)
 
 (run-hooks 'bytecomp-load-hook)