diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-09-08 05:08:05 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-09-08 05:08:05 -0700 |
commit | 463e014b30bec2a11e5cebeed98e4cd4c99df451 (patch) | |
tree | 53f8f481a43b0fe515bab2ec99c257399363ed8a /share | |
parent | e3aa3aac033df459debee3746feb437a506bc0f3 (diff) | |
download | txr-463e014b30bec2a11e5cebeed98e4cd4c99df451.tar.gz txr-463e014b30bec2a11e5cebeed98e4cd4c99df451.tar.bz2 txr-463e014b30bec2a11e5cebeed98e4cd4c99df451.zip |
No-op expansion for (inc 0) and (dec 0).
* share/txr/stdlib/place.tl (inc, dec): If the delta
is zero, don't generate code which calls getter
and setter; just generate the place form as the
output.
Diffstat (limited to 'share')
-rw-r--r-- | share/txr/stdlib/place.tl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl index dbae39be..0fdbfcc8 100644 --- a/share/txr/stdlib/place.tl +++ b/share/txr/stdlib/place.tl @@ -229,7 +229,7 @@ (defmacro inc (place : (delta 1) :env env) (with-update-expander (getter setter) place env (caseql delta - (0 ^(,setter (,getter))) + (0 place) (1 ^(,setter (succ (,getter)))) (2 ^(,setter (ssucc (,getter)))) (3 ^(,setter (sssucc (,getter)))) @@ -238,7 +238,7 @@ (defmacro dec (place : (delta 1) :env env) (with-update-expander (getter setter) place env (caseql delta - (0 ^(,setter (,getter))) + (0 place) (1 ^(,setter (pred (,getter)))) (2 ^(,setter (ppred (,getter)))) (3 ^(,setter (pppred (,getter)))) |