0.pre8.85
[sbcl.git] / src / compiler / ir2tran.lisp
index b916025..43b213d 100644 (file)
 
     (cond ((and (eq (continuation-type-check cont) t)
                (multiple-value-bind (check types)
-                   (continuation-check-types cont)
+                   (continuation-check-types cont nil)
                  (aver (eq check :simple))
                  ;; If the proven type is a subtype of the possibly
                  ;; weakened type check then it's always true and is
         (nlocs (length locs)))
     (aver (= nlocs (length ptypes)))
     (if (eq (continuation-type-check cont) t)
-       (multiple-value-bind (check types) (continuation-check-types cont)
+       (multiple-value-bind (check types) (continuation-check-types cont nil)
          (aver (eq check :simple))
          (let ((ntypes (length types)))
            (mapcar (lambda (from to-type assertion)
        (bug "full call to ~S" fname)))
 
     (when (consp fname)
-      (destructuring-bind (setf stem) fname
-       (aver (eq setf 'setf))
-       (setf (gethash stem *setf-assumed-fboundp*) t)))))
+      (destructuring-bind (setfoid &rest stem) fname
+       (aver (member setfoid
+                     '(setf sb!pcl::class-predicate sb!pcl::slot-accessor)))
+       (when (eq setfoid 'setf)
+         (setf (gethash (car stem) *setf-assumed-fboundp*) t))))))
 
 ;;; If the call is in a tail recursive position and the return
 ;;; convention is standard, then do a tail full call. If one or fewer