From f16d040ddd8fbfc7313f2bda30bec17a6528457e Mon Sep 17 00:00:00 2001 From: gerd <gerd> Date: Wed, 4 Jun 2003 08:47:03 +0000 Subject: [PATCH] FIND-METHOD.ERROR.{9,10} from Paul Dietz' tests. * src/pcl/methods.lisp (find-method): Signal an error if the number of supplied specifiers is different from the number of required arguments of the generic function. --- pcl/methods.lisp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pcl/methods.lisp b/pcl/methods.lisp index c11ea0102..53a26e2c4 100644 --- a/pcl/methods.lisp +++ b/pcl/methods.lisp @@ -26,7 +26,7 @@ ;;; (file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/methods.lisp,v 1.35 2003/05/28 08:50:39 gerd Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/methods.lisp,v 1.36 2003/06/04 08:47:03 gerd Exp $") (in-package :pcl) @@ -397,8 +397,11 @@ (defmethod find-method ((gf standard-generic-function) qualifiers specializers &optional (errorp t)) - (real-get-method gf qualifiers - (parse-specializers specializers) errorp)) + (let ((nreq (count-gf-required-parameters gf))) + (when (/= (length specializers) nreq) + (error "~@<The generic function ~s takes ~d required argument~p.~@:>" + gf nreq nreq)) + (real-get-method gf qualifiers (parse-specializers specializers) errorp))) ;;; ;;; -- GitLab