summaryrefslogtreecommitdiff
path: root/module
diff options
context:
space:
mode:
Diffstat (limited to 'module')
-rw-r--r--module/language/cps/contification.scm9
1 files changed, 6 insertions, 3 deletions
diff --git a/module/language/cps/contification.scm b/module/language/cps/contification.scm
index 7a9252e95..d78a4b40d 100644
--- a/module/language/cps/contification.scm
+++ b/module/language/cps/contification.scm
@@ -219,8 +219,9 @@
(($ $cont _ ($ $kclause arity body))
...))))
...)
- (unless (contify-funs term-k sym self tail-k arity body)
- (for-each visit-fun fun)))))))
+ (if (contify-funs term-k sym self tail-k arity body)
+ (for-each (cut for-each visit-cont <>) body)
+ (for-each visit-fun fun)))))))
(visit-term body term-k)
(for-each visit-component
(split-components (map list names syms funs))))
@@ -234,7 +235,9 @@
(if (and=> (bound-symbol k)
(lambda (sym)
(contify-fun term-k sym self tail-k arity body)))
- (elide-function! k (lookup-cont k cont-table))
+ (begin
+ (elide-function! k (lookup-cont k cont-table))
+ (for-each visit-cont body))
(visit-fun exp)))
(_ #t)))))