X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fmethods.lisp;h=4b68b67f71a3cfe74c933c6bb6daa18050486cfc;hb=cd99f20d910298cbf5c2000e3dc3595fb0c8418b;hp=c15b6c81269edb4f68df05b08b7c792df2911b07;hpb=1ae37c6f729950b6925275cea43546b701d8fde2;p=sbcl.git diff --git a/src/pcl/methods.lisp b/src/pcl/methods.lisp index c15b6c8..4b68b67 100644 --- a/src/pcl/methods.lisp +++ b/src/pcl/methods.lisp @@ -291,7 +291,7 @@ (define-condition find-method-length-mismatch (reference-condition simple-error) () - (:default-initargs :references '(:ansi-cl :function find-method))) + (:default-initargs :references (list '(:ansi-cl :function find-method)))) (defun real-get-method (generic-function qualifiers specializers &optional (errorp t) @@ -299,7 +299,8 @@ (let ((lspec (length specializers)) (methods (generic-function-methods generic-function))) (when (or methods always-check-specializers) - (let ((nreq (length (arg-info-metatypes (gf-arg-info generic-function))))) + (let ((nreq (length (arg-info-metatypes (gf-arg-info + generic-function))))) ;; Since we internally bypass FIND-METHOD by using GET-METHOD ;; instead we need to to this here or users may get hit by a ;; failed AVER instead of a sensible error message. @@ -405,11 +406,14 @@ (defun make-discriminating-function-arglist (number-required-arguments restp) (nconc (let ((args nil)) (dotimes (i number-required-arguments) - (push (intern (format nil "Discriminating Function Arg ~D" i)) + (push (format-symbol *package* ;; ! is this right? + "Discriminating Function Arg ~D" + i) args)) (nreverse args)) (when restp - `(&rest ,(intern "Discriminating Function &rest Arg"))))) + `(&rest ,(format-symbol *package* + "Discriminating Function &rest Arg"))))) (defmethod generic-function-argument-precedence-order ((gf standard-generic-function)) @@ -709,7 +713,8 @@ (loop (when (atom x) (return (eq x y))) (when (atom y) (return nil)) (unless (eq (car x) (car y)) (return nil)) - (setq x (cdr x) y (cdr y)))) + (setq x (cdr x) + y (cdr y)))) (defvar *std-cam-methods* nil)