X-Git-Url: https://git.hcoop.net/bpt/guile.git/blobdiff_plain/475772ea57c97d0fa0f9ed9303db137d9798ddd3..92805e219789654115f741b7d621bc9947833379:/module/language/cps/closure-conversion.scm?ds=sidebyside diff --git a/module/language/cps/closure-conversion.scm b/module/language/cps/closure-conversion.scm index 26737e924..89e209052 100644 --- a/module/language/cps/closure-conversion.scm +++ b/module/language/cps/closure-conversion.scm @@ -126,6 +126,8 @@ (($ $primcall name args) (for-each clear-well-known! args) (fold adjoin '() args)) + (($ $branch kt exp) + (visit-exp exp bound)) (($ $values args) (for-each clear-well-known! args) (fold adjoin '() args)) @@ -498,6 +500,20 @@ bound to @var{var}, and continue with @var{body}." (build-cps-term ($continue k src ($primcall name args)))))) + (($ $continue k src ($ $branch kt ($ $primcall name args))) + (convert-free-vars args + (lambda (args) + (build-cps-term + ($continue k src + ($branch kt ($primcall name args))))))) + + (($ $continue k src ($ $branch kt ($ $values (arg)))) + (convert-free-var arg + (lambda (arg) + (build-cps-term + ($continue k src + ($branch kt ($values (arg)))))))) + (($ $continue k src ($ $values args)) (convert-free-vars args (lambda (args)