+(with-test (:name (:compile nil))
+ (assert (verify-backtrace (lambda () (funcall *compile-nil-non-tc* 13))
+ `(((lambda (x) :in ,*p*) 13)
+ ((lambda (y) :in ,*p*) 13)))))
+
+(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 fixnum) 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) :in ,*p*) 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) :in ,*p*) 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) :in ,*p*) 10 11 0))))))