diff options
-rw-r--r-- | src/property.lisp | 6 | ||||
-rw-r--r-- | src/util.lisp | 7 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/property.lisp b/src/property.lisp index 2aeb836..bd1acf0 100644 --- a/src/property.lisp +++ b/src/property.lisp @@ -193,11 +193,7 @@ rather than writing a property which programmatically calls other properties. This is because using this macro takes care of calling property :HOSTATTRS subroutines at the right time." (when (stringp (car properties)) (pop properties)) - (let ((new-args (cons (gensym) - (loop for arg in args - if (symbol-named &aux arg) - return accum - else collect arg into accum))) + (let ((new-args (cons (gensym) (ordinary-ll-without-&aux args))) ;; TODO :UNAPPLY which unapplies in reverse order (slots (list :hostattrs '(lambda (propspec &rest ignore) (declare (ignore ignore)) diff --git a/src/util.lisp b/src/util.lisp index 248f52a..c8054b1 100644 --- a/src/util.lisp +++ b/src/util.lisp @@ -54,6 +54,13 @@ expand into errors." (t expanded)))) +(defun ordinary-ll-without-&aux (ll) + (loop for arg in ll + if (symbol-named &aux arg) + return accum + else collect arg into accum + finally (return accum))) + ;;;; Version numbers |