From 783d4d217387274a397f7c667d368461601d3891 Mon Sep 17 00:00:00 2001 From: Thomas Bauereiss Date: Thu, 17 Jan 2019 01:06:48 +0000 Subject: Fix bug in letbind_effects rewrite Don't wrap effectful expressions in E_internal_return --- src/rewrites.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/rewrites.ml b/src/rewrites.ml index 79e8792d..fdcfb71c 100644 --- a/src/rewrites.ml +++ b/src/rewrites.ml @@ -2836,7 +2836,7 @@ let rewrite_defs_letbind_effects = rewrap (E_var (lexp,exp1,n_exp exp2 k)))) | E_internal_return exp1 -> n_exp_name exp1 (fun exp1 -> - k (rewrap (E_internal_return exp1))) + k (if effectful (propagate_exp_effect exp1) then exp1 else rewrap (E_internal_return exp1))) | E_internal_value v -> k (rewrap (E_internal_value v)) | E_return exp' -> -- cgit v1.2.3