diff lisp/cl-macs.el @ 4719:bd51ab22afa8

Make it possible to silence warnings issued when #'mapcar's result is discarded. lisp/ChangeLog addition: 2009-10-19 Aidan Kehoe <kehoea@parhasard.net> * bytecomp.el (byte-compile-default-warnings): Add two new warning types, discarded-consing (basically use of mapcar instead of mapc where its result is discarded) and quoted-lambda (use of a lambda expression quoted as data in a function context). (byte-compile-warnings): Document the new warnings. (byte-compile-fset, byte-compile-funarg): Implement the quoted-lambda warning option. (byte-compile-mapcar): Renamed to byte-compile-maybe-mapc. (byte-compile-maybe-mapc, byte-compile-maplist): Implement the discarded-consing warning option. Add more functions that should be compiled using byte-compile-funarg, notably mapvector, mapc-internal, map-char-table. * cl-macs.el (mapcar*): If we know at compile time that there are no CL options being used, use the mapcar subr, not the byte-coded function.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 19 Oct 2009 12:47:21 +0100
parents dca5bb2adff1
children ebca981a0012
line wrap: on
line diff
--- a/lisp/cl-macs.el	Sun Oct 11 17:26:40 2009 +0200
+++ b/lisp/cl-macs.el	Mon Oct 19 12:47:21 2009 +0100
@@ -3266,6 +3266,11 @@
       form
     (cons 'mapc-internal (cdr form))))
 
+(define-compiler-macro mapcar* (&whole form cl-func cl-x &rest cl-rest)
+  (if cl-rest
+      form
+    (cons 'mapcar (cdr form))))
+
 (mapc
  #'(lambda (y)
      (put (car y) 'side-effect-free t)