diff options
Diffstat (limited to 'module/language/tree-il/analyze.scm')
-rw-r--r-- | module/language/tree-il/analyze.scm | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/module/language/tree-il/analyze.scm b/module/language/tree-il/analyze.scm index 2d1a25289..c5f6cb9aa 100644 --- a/module/language/tree-il/analyze.scm +++ b/module/language/tree-il/analyze.scm @@ -342,6 +342,12 @@ ((<dynlet> fluids vals body) (apply lset-union eq? (step body) (map step (append fluids vals)))) + ((<dynref> fluid) + (step fluid)) + + ((<dynset> fluid exp) + (lset-union eq? (step fluid) (step exp))) + ((<prompt> tag body handler) (lset-union eq? (step tag) (step handler))) @@ -505,6 +511,12 @@ ((<dynlet> fluids vals body) (apply max (recur body) (map recur (append fluids vals)))) + ((<dynref> fluid) + (recur fluid)) + + ((<dynset> fluid exp) + (max (recur fluid) (recur exp))) + ((<prompt> tag body handler) (let ((cont-var (and (lambda-case? handler) (pair? (lambda-case-vars handler)) |