aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/emacs-lisp/gv.el2
-rw-r--r--test/lisp/emacs-lisp/gv-tests.el19
2 files changed, 20 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el
index 096036a0ffa..513bd328899 100644
--- a/lisp/emacs-lisp/gv.el
+++ b/lisp/emacs-lisp/gv.el
@@ -224,7 +224,7 @@ The first arg in ARGLIST (the one that receives VAL) receives an expression
224which can do arbitrary things, whereas the other arguments are all guaranteed 224which can do arbitrary things, whereas the other arguments are all guaranteed
225to be pure and copyable. Example use: 225to be pure and copyable. Example use:
226 (gv-define-setter aref (v a i) \\=`(aset ,a ,i ,v))" 226 (gv-define-setter aref (v a i) \\=`(aset ,a ,i ,v))"
227 (declare (indent 2) (debug (&define name sexp def-body))) 227 (declare (indent 2) (debug (&define name :name gv-setter sexp def-body)))
228 `(gv-define-expander ,name 228 `(gv-define-expander ,name
229 (lambda (do &rest args) 229 (lambda (do &rest args)
230 (declare-function 230 (declare-function
diff --git a/test/lisp/emacs-lisp/gv-tests.el b/test/lisp/emacs-lisp/gv-tests.el
index 7fa4cd50b08..7a8402be074 100644
--- a/test/lisp/emacs-lisp/gv-tests.el
+++ b/test/lisp/emacs-lisp/gv-tests.el
@@ -19,6 +19,7 @@
19 19
20;;; Code: 20;;; Code:
21 21
22(require 'edebug)
22(require 'ert) 23(require 'ert)
23(eval-when-compile (require 'cl-lib)) 24(eval-when-compile (require 'cl-lib))
24 25
@@ -137,6 +138,24 @@
137 (should (equal (buffer-string) 138 (should (equal (buffer-string)
138 "Symbol's function definition is void: \\(setf\\ gv-test-foo\\)\n"))))) 139 "Symbol's function definition is void: \\(setf\\ gv-test-foo\\)\n")))))
139 140
141(ert-deftest gv-setter-edebug ()
142 "Check that a setter can be defined and edebugged together with
143its getter (Bug#41853)."
144 (with-temp-buffer
145 (let ((edebug-all-defs t)
146 (edebug-initial-mode 'Go-nonstop))
147 (dolist (form '((defun gv-setter-edebug-help (b) b)
148 (defun gv-setter-edebug-get (a b)
149 (get a (gv-setter-edebug-help b)))
150 (gv-define-setter gv-setter-edebug-get (x a b)
151 `(setf (get ,a (gv-setter-edebug-help ,b)) ,x))
152 (push 123 (gv-setter-edebug-get 'gv-setter-edebug
153 'gv-setter-edebug-prop))))
154 (print form (current-buffer)))
155 ;; Only check whether evaluation works in general.
156 (eval-buffer)))
157 (should (equal (get 'gv-setter-edebug 'gv-setter-edebug-prop) '(123))))
158
140;; `ert-deftest' messes up macroexpansion when the test file itself is 159;; `ert-deftest' messes up macroexpansion when the test file itself is
141;; compiled (see Bug #24402). 160;; compiled (see Bug #24402).
142 161