* cl-macs-tests.el (cl-macs-test--symbol-macrolet): New test
This commit is contained in:
parent
c89b0add51
commit
9ed0b55848
1 changed files with 17 additions and 0 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue