Skip to content
Snippets Groups Projects
Commit 574bf39a authored by drewc's avatar drewc
Browse files

Fixes for symbol macros (setf is setq is setf)

darcs-hash:af7be9b5b85ddbd280727930b48a89e03e2c19d9
parent f2d926a3
No related branches found
No related tags found
No related merge requests found
......@@ -236,7 +236,19 @@
(defk k-for-free-setq (var lex-env dyn-env k)
(value)
(setf (symbol-value var) value)
(let ((exp (macroexpand var)))
(if (eq var exp)
(setf (symbol-value var) value)
(multiple-value-bind (dummies vals new setter getter)
(get-setf-expansion var)
(funcall
(compile nil
`(lambda ()
(let* (,@(mapcar #'list dummies vals)
(,(car new) ,value))
(prog1
,setter))))))))
(kontinue k value))
(defk k-for-local-lexical-setq (var lex-env dyn-env k)
......
......@@ -125,7 +125,7 @@
((body :accessor body :initarg :body)))
(defclass implicit-progn-with-declare-mixin (implicit-progn-mixin)
((declares :accessor declares :initarg :declares)))
((declares :accessor declares :initarg :declares :initform nil)))
(defclass binding-form-mixin ()
((binds :accessor binds :initarg :binds)))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment