From b24ff2c7365ee8d42063cbfa06ece3ef591d9a35 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Tue, 15 Jun 2021 20:41:21 -0700 Subject: ON-CHANGE: when unapplying, apply the secondary propapps I believe the new semantics are more useful: when we unapply a property which has additional properties which will be applied when a change is made, also apply those properties in just the same way when unapplying the primary property makes a change. WITH-UNAPPLY can be used to override, or we might add a variant of ON-CHANGE which ignores the secondary propapps completely when unapplying. But I can't currently envisage a situation in which what is wanted is unapplying the secondary propapps in reverse order. Signed-off-by: Sean Whitton --- src/combinator.lisp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/combinator.lisp') diff --git a/src/combinator.lisp b/src/combinator.lisp index 4dcd878..bcba1c3 100644 --- a/src/combinator.lisp +++ b/src/combinator.lisp @@ -210,8 +210,8 @@ ON-CHANGE in order." (if (eql :no-change (propappunapply (cons (car propapp) args))) :no-change - (dolist (propapp (reverse propapps)) - (propappunapply propapp)))) + (dolist (propapp propapps) + (propappapply propapp)))) :args (cdr propapp))) (defmacro as (user &body properties) -- cgit v1.2.3