diff options
Diffstat (limited to 'module')
-rw-r--r-- | module/language/cps/contification.scm | 9 |
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))))) |