X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fclos.impure.lisp;h=405a219ad43c8b8dbdd40a3e5b41d9a9d2c34c22;hb=1b650be8b800cf96e2c268ae317fb26d0bf36827;hp=a319f42f260cc487349387d7effd13dc6b0b40e0;hpb=937a46e64983862cb9e21761db95e58700341940;p=sbcl.git diff --git a/tests/clos.impure.lisp b/tests/clos.impure.lisp index a319f42..405a219 100644 --- a/tests/clos.impure.lisp +++ b/tests/clos.impure.lisp @@ -663,5 +663,25 @@ (list x (call-next-method) (call-next-method x)))) (assert (equal (cnm-assignment 1) '(3 1 3))) +;;; Bug reported by Istvan Marko 2003-07-09 +(let ((class-name (gentemp))) + (loop for i from 1 to 9 + for slot-name = (intern (format nil "X~D" i)) + for initarg-name = (intern (format nil "X~D" i) :keyword) + collect `(,slot-name :initarg ,initarg-name) into slot-descs + append `(,initarg-name (list 0)) into default-initargs + finally (eval `(defclass ,class-name () + (,@slot-descs) + (:default-initargs ,@default-initargs)))) + (let ((f (compile nil `(lambda () (make-instance ',class-name))))) + (assert (typep (funcall f) class-name)))) + +;;; bug 262: DEFMETHOD failed on a generic function without a lambda +;;; list +(ensure-generic-function 'bug262) +(defmethod bug262 (x y) + (list x y)) +(assert (equal (bug262 1 2) '(1 2))) + ;;;; success (sb-ext:quit :unix-status 104)