From a3b12425fd74c3347c2d0d65058ea2368f57d26f Mon Sep 17 00:00:00 2001 From: Dmitry Boulytchev Date: Thu, 19 Sep 2019 16:57:41 +0300 Subject: [PATCH] Added a smoke test for local scopes --- regression/orig/test056.log | 1 + regression/test056.expr | 8 ++++++++ regression/test056.input | 3 +++ src/Language.ml | 2 +- 4 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 regression/orig/test056.log create mode 100644 regression/test056.expr create mode 100644 regression/test056.input diff --git a/regression/orig/test056.log b/regression/orig/test056.log new file mode 100644 index 000000000..c910c5cfb --- /dev/null +++ b/regression/orig/test056.log @@ -0,0 +1 @@ +> > > 8 diff --git a/regression/test056.expr b/regression/test056.expr new file mode 100644 index 000000000..164983f23 --- /dev/null +++ b/regression/test056.expr @@ -0,0 +1,8 @@ +fun test (a, b, c) { + local x = a + b, y = b + c; + {local e = x + y; + return e + } +} + +write (test (read (), read (), read ())) \ No newline at end of file diff --git a/regression/test056.input b/regression/test056.input new file mode 100644 index 000000000..01e79c32a --- /dev/null +++ b/regression/test056.input @@ -0,0 +1,3 @@ +1 +2 +3 diff --git a/src/Language.ml b/src/Language.ml index f902564d5..769d75b22 100644 --- a/src/Language.ml +++ b/src/Language.ml @@ -556,7 +556,7 @@ module Expr = let vars, body = List.fold_left (fun (vs, bd) -> function - | (name, `Variable value) -> name :: vs, (match value with None -> bd | Some v -> Seq (Assign (Var name, v), bd)) + | (name, `Variable value) -> name :: vs, (match value with None -> bd | Some v -> Seq (Assign (Ref name, v), bd)) | _ -> invalid_arg "function" ) ([], expr)