From f34477a8cfab7cfb0c7a25979d06d6e26d74bd5c Mon Sep 17 00:00:00 2001 From: pc <pc@p-cos.net> Date: Fri, 27 Jan 2006 22:42:16 +0000 Subject: [PATCH] Replaced a few loops with calls to the new Closer to MOP utility function required-args. darcs-hash:5a23dbc8fff86551cf265dd5ac656c17f205fa0d --- cx-layered-function.lisp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/cx-layered-function.lisp b/cx-layered-function.lisp index b852bfc..9fd9ab9 100644 --- a/cx-layered-function.lisp +++ b/cx-layered-function.lisp @@ -53,9 +53,7 @@ ,@(let ((argument-precedence-order (assoc :argument-precedence-order options))) (if argument-precedence-order (cdr argument-precedence-order) - (loop for arg in args - until (member arg lambda-list-keywords) - collect arg))) + (required-args args))) ,layer-arg) ,@(loop for option in (remove :argument-precedence-order options :key #'car) if (eq (car option) :method) @@ -85,10 +83,7 @@ (name &rest initargs &key (lambda-list () lambda-list-p) - (argument-precedence-order - (loop for arg in lambda-list - until (member arg lambda-list-keywords) - collect arg)) + (argument-precedence-order (required-args lambda-list)) &allow-other-keys) (declare (dynamic-extent initargs)) (unless lambda-list-p @@ -123,9 +118,7 @@ (in-layer (find-layer 't)) (qualifiers ()) (lambda-list (cadr lambda-expression)) - (specializers (loop for arg in lambda-list - until (member arg lambda-list-keywords) - collect (find-class 't)))) + (specializers (required-args lambda-list (constantly (find-class 't))))) (let ((layer-arg (gensym "LAYER-ARG-"))) (destructuring-bind (lambda (&rest args) &body body) -- GitLab