]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/gv.el (gv-deref): Move setter declaration, to fix bootstrap.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 8 Nov 2012 14:54:03 +0000 (09:54 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 8 Nov 2012 14:54:03 +0000 (09:54 -0500)
lisp/emacs-lisp/gv.el

index 72c2ec607346b267c112eb8d326092abb6c6e0d2..456bace5b1b00085b342b78f3960d811e50e4bbe 100644 (file)
@@ -447,8 +447,11 @@ This is like the `&' operator of the C language."
   "Dereference REF, returning the referenced value.
 This is like the `*' operator of the C language.
 REF must have been previously obtained with `gv-ref'."
-  (declare (gv-setter (lambda (v) `(funcall (cdr ,ref) ,v))))
   (funcall (car ref)))
+;; Don't use `declare' because it seems to introduce circularity problems:
+;; Warning: Eager macro-expansion skipped due to cycle:
+;;  … => (load "gv.el") => (macroexpand-all (defsubst gv-deref …)) => (macroexpand (defun …)) => (load "gv.el")
+(gv-define-setter gv-deref (v ref) `(funcall (cdr ,ref) ,v))
 
 ;;; Vaguely related definitions that should be moved elsewhere.