+(with-test (:name :clos-slot-typecheckfun-named)
+ (assert
+ (verify-backtrace
+ (lambda ()
+ (eval `(locally (declare (optimize safety))
+ (defclass clos-typecheck-test ()
+ ((slot :type fixnum)))
+ (setf (slot-value (make-instance 'clos-typecheck-test) 'slot) t))))
+ '(((sb-pcl::slot-typecheck clos-typecheck-test slot) t)))))
+
+(with-test (:name :clos-emf-named)
+ (assert
+ (verify-backtrace
+ (lambda ()
+ (eval `(progn
+ (defmethod clos-emf-named-test ((x symbol)) x)
+ (defmethod clos-emf-named-test :before (x) (assert x))
+ (clos-emf-named-test nil))))
+ '(((sb-pcl::emf clos-emf-named-test) ? ? nil)))))
+
+(with-test (:name :bug-310173)
+ (flet ((make-fun (n)
+ (let* ((names '(a b))
+ (req (loop repeat n collect (pop names))))
+ (compile nil
+ `(lambda (,@req &rest rest)
+ (let ((* *)) ; no tail-call
+ (apply '/ ,@req rest)))))))
+ (assert
+ (verify-backtrace (lambda ()
+ (funcall (make-fun 0) 10 11 0))
+ '((sb-kernel:two-arg-/ 10/11 0)
+ (/ 10 11 0)
+ ((lambda (&rest rest)) 10 11 0))))
+ (assert
+ (verify-backtrace (lambda ()
+ (funcall (make-fun 1) 10 11 0))
+ '((sb-kernel:two-arg-/ 10/11 0)
+ (/ 10 11 0)
+ ((lambda (a &rest rest)) 10 11 0))))
+ (assert
+ (verify-backtrace (lambda ()
+ (funcall (make-fun 2) 10 11 0))
+ '((sb-kernel:two-arg-/ 10/11 0)
+ (/ 10 11 0)
+ ((lambda (a b &rest rest)) 10 11 0))))))
+