Patch by Douglas Katzman.
* bug fix: (funcall (function X junk)) didn't causes an error when X had a
compiler macro.
Patch by Douglas Katzman.
+ * bug fix: signal a warning when defining a setf-function when a
+ setf-expander is already present.
+ Patch by Douglas Katzman.
changes in sbcl-1.1.10 relative to sbcl-1.1.9:
* enhancement: ASDF has been updated to 3.0.2.
;;; can't assume that they aren't just naming a function (SETF FOO)
;;; for the heck of it. NAME is already known to be well-formed.
(defun note-if-setf-fun-and-macro (name)
- (when (consp name)
- (when (or (info :setf :inverse name)
- (info :setf :expander name))
+ (when (and (consp name)
+ (eq (car name) 'setf))
+ (when (or (info :setf :inverse (second name))
+ (info :setf :expander (second name)))
(compiler-style-warn
"defining as a SETF function a name that already has a SETF macro:~
~% ~S"
(with-test (:name funcall-compiler-macro)
(assert
(handler-case
- (compile nil
- `(lambda ()
- (funcall (function test-function-983 junk) 1)))
- (sb-c:compiler-error () t)
- (:no-error () nil))))
+ (and (compile nil
+ `(lambda ()
+ (funcall (function test-function-983 junk) 1)))
+ nil)
+ (sb-c:compiler-error () t))))
+
+(defsetf test-984 %test-984)
+
+(with-test (:name :setf-function-with-setf-expander)
+ (assert
+ (handler-case
+ (and
+ (defun (setf test-984) ())
+ nil)
+ (style-warning () t))))
\f
;;;; tests not in the problem domain, but of the consistency of the
;;;; compiler machinery itself