* No compiler notes for default policy.
* Test case.
;;; slightly more cheaply then the transforms. (Transforms add new
;;; lambdas, which requires more work by the compiler.)
-(deftransform slot-value ((object slot-name) * * :important t)
+(deftransform slot-value ((object slot-name))
"optimize"
(let (c-slot-name)
(if (and (pcl-boot-state-complete-p)
(deftransform sb-pcl::set-slot-value ((object slot-name new-value)
(t symbol t) t
- :important t
- ;; see comment in the
- ;; compiler-macro
+ ;; Safe code wants to check the
+ ;; type, and the global accessor
+ ;; won't do that. Also see the
+ ;; comment in the
+ ;; compiler-macro.
:policy (< safety 3))
"optimize"
(let (c-slot-name)
(when (and std (< std last))
(push `(:std ,c) result))))))
(assert (null result))))
+
+;; No compiler-notes for non-constant slot-names in default policy.
+(handler-case
+ (compile nil '(lambda (x y z)
+ (setf (slot-value x z)
+ (slot-value y z))))
+ (sb-ext:compiler-note (e)
+ (error e)))
+
+
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.7.34"
+"1.0.7.35"