diff options
Diffstat (limited to 'src/property.lisp')
-rw-r--r-- | src/property.lisp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/property.lisp b/src/property.lisp index 16803dd..5fbf3ff 100644 --- a/src/property.lisp +++ b/src/property.lisp @@ -42,13 +42,12 @@ (setf (get sym 'check) check)) (when apply (setf (get sym 'apply) apply) - (eval `(defun ,sym ())) - (setf (symbol-function sym) - (if check + (let ((f (if check (lambda (&rest args) (unless (apply check args) (apply apply args))) apply))) + (eval `(defun ,sym ,args ,f)))) (when unapply (setf (get sym 'unapply) unapply)) (setf (get sym 'property) t) |