[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fixing our problems with setf

	Date: 13 Oct 87 18:18 PDT
	From: Danny Bobrow <Bobrow.pa>

	Do (1) and (4) together imply that if there is a macro definition for
	foo, and there is an flet foo, but no (setf foo) defined, that the
	expansion of
	  (setf (foo ...)...)
	uses (funcall #'(setf foo) ...) rather than the macro. This seems wrong
	(inconsistent with CLtL ???).

Isn't it the case that lexical functions cannot have a SETF method in
CLtL?  I believe that in the following code:

	(defsetf foo set-foo)
	(flet ((foo (x) ...))
	   (setf (foo 7) 8))

the function SET-FOO will not be called.  Instead, SETF should signal an
error complaining about how there isn't a SETF method for the lexical
function FOO.  The SETF method for the global function FOO is not used.

Am I just hallucinating about this?