diff options
-rw-r--r-- | share/txr/stdlib/optimize.tl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/share/txr/stdlib/optimize.tl b/share/txr/stdlib/optimize.tl index 83abaa1e..b011c568 100644 --- a/share/txr/stdlib/optimize.tl +++ b/share/txr/stdlib/optimize.tl @@ -107,7 +107,10 @@ (set bl.next nxbl.next) (set bl.links nxbl.links) (set bb.list (remq nxbl bb.list)) - (del [bb.hash nxbl.label])))) + (del [bb.hash nxbl.label]) + (each ((nx bl.links)) + (upd nx.rlinks (remq nxbl)) + (pushnew bl nx.rlinks))))) (defmacro rewrite-case (sym list . cases) ^(rewrite (lambda (,sym) |