]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/cl-macs.el (cl-the): Emit compiler hints when native.
authorAndrea Corallo <akrl@sdf.org>
Tue, 1 Sep 2020 19:28:22 +0000 (21:28 +0200)
committerAndrea Corallo <akrl@sdf.org>
Mon, 14 Sep 2020 21:06:42 +0000 (23:06 +0200)
lisp/emacs-lisp/cl-macs.el

index c38019d4a736aadc22c472a762f1ae09f92c72d8..7adb9100703d93a08bba31fa61a2d7a26598a56b 100644 (file)
@@ -2329,6 +2329,14 @@ values.  For compatibility, (cl-values A B C) is a synonym for (list A B C).
 (defmacro cl-the (type form)
   "Return FORM.  If type-checking is enabled, assert that it is of TYPE."
   (declare (indent 1) (debug (cl-type-spec form)))
+  ;; When native compiling possibly add the appropriate type hint.
+  (when (and (boundp 'byte-native-compiling)
+             byte-native-compiling)
+    (setf form
+          (cl-case type
+            (fixnum `(comp-hint-fixnum ,form))
+            (cons `(comp-hint-cons ,form))
+            (otherwise form))))
   (if (not (or (not (cl--compiling-file))
                (< cl--optimize-speed 3)
                (= cl--optimize-safety 3)))