Commit 9ed0b558 authored by Stefan Monnier's avatar Stefan Monnier

* cl-macs-tests.el (cl-macs-test--symbol-macrolet): New test

parent c89b0add
Pipeline #1684 failed with stage
in 51 minutes and 4 seconds
......@@ -513,4 +513,21 @@ collection clause."
(macroexpand '(cl-defstruct (hash-table (:predicate hash-table-p))))
:type 'wrong-type-argument))
(ert-deftest cl-macs-test--symbol-macrolet ()
;; A `setq' shouldn't be converted to a `setf' just because it occurs within
;; a symbol-macrolet!
(should-error
;; Use `eval' so the error is signaled when running the test rather than
;; when macroexpanding it.
(eval '(let ((l (list 1))) (cl-symbol-macrolet ((x 1)) (setq (car l) 0)))))
;; Make sure `gv-synthetic-place' isn't macro-expanded before `setf' gets to
;; see its `gv-expander'.
(should (equal (let ((l '(0)))
(let ((cl (car l)))
(cl-symbol-macrolet
((p (gv-synthetic-place cl (lambda (v) `(setcar l ,v)))))
(cl-incf p)))
l)
'(1))))
;;; cl-macs-tests.el ends here
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment