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