summaryrefslogtreecommitdiff
path: root/module/language/tree-il/effects.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/tree-il/effects.scm')
-rw-r--r--module/language/tree-il/effects.scm15
1 files changed, 9 insertions, 6 deletions
diff --git a/module/language/tree-il/effects.scm b/module/language/tree-il/effects.scm
index fe6d2c281..374ab2c8c 100644
--- a/module/language/tree-il/effects.scm
+++ b/module/language/tree-il/effects.scm
@@ -217,11 +217,6 @@ of an expression."
(cause &type-check)
(cause &fluid)
(compute-effects body)))
- (($ <dynset> _ fluid exp)
- (logior (compute-effects fluid)
- (compute-effects exp)
- (cause &type-check)
- (cause &fluid)))
(($ <toplevel-ref>)
(logior &toplevel
(cause &type-check)))
@@ -279,7 +274,15 @@ of an expression."
(logior (compute-effects arg) &allocation))
(($ <primcall> _ 'fluid-ref (fluid))
- (logior (compute-effects fluid) &fluid))
+ (logior (compute-effects fluid)
+ (cause &type-check)
+ &fluid))
+
+ (($ <primcall> _ 'fluid-set! (fluid exp))
+ (logior (compute-effects fluid)
+ (compute-effects exp)
+ (cause &type-check)
+ (cause &fluid)))
;; Primitives that are normally effect-free, but which might
;; cause type checks, allocate memory, or access mutable