summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/comp.el
diff options
context:
space:
mode:
authorAndrea Corallo <akrl@sdf.org>2020-09-14 22:02:36 +0200
committerAndrea Corallo <akrl@sdf.org>2020-09-14 23:06:42 +0200
commit82171a8f0de6e88566aa0d80388dab135dbc260f (patch)
tree394cbdc5fa56f9636efba563f9e1c951896402db /lisp/emacs-lisp/comp.el
parent2da2ad29b83090950749f26a7375be4a67964438 (diff)
downloademacs-82171a8f0de6e88566aa0d80388dab135dbc260f.tar.gz
emacs-82171a8f0de6e88566aa0d80388dab135dbc260f.tar.bz2
emacs-82171a8f0de6e88566aa0d80388dab135dbc260f.zip
* Add gv-setters for compiler hints
* lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons): Add gv-setters so type hinted expressions can be used as places. Read we can now have like: '(cl-incf (cl-the fixnum x))'.
Diffstat (limited to 'lisp/emacs-lisp/comp.el')
-rw-r--r--lisp/emacs-lisp/comp.el2
1 files changed, 2 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index eceba777fa7..f1689808eea 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -2495,9 +2495,11 @@ Prepare every function for final compilation and drive the C back-end."
;; are assumed just to be true. Use with extreme caution...
(defun comp-hint-fixnum (x)
+ (declare (gv-setter (lambda (val) `(setf ,x ,val))))
x)
(defun comp-hint-cons (x)
+ (declare (gv-setter (lambda (val) `(setf ,x ,val))))
x)