(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