From 22256ef96de615bdaf8a7b123b0a1de91cfed52e Mon Sep 17 00:00:00 2001 From: "Michael J. Klein" Date: Tue, 30 Jan 2024 16:01:32 -0500 Subject: [PATCH 1/3] test: add test for missing lambda closure environment (#2120) --- .../missing_closure_env/Nargo.toml | 7 +++++++ .../missing_closure_env/src/main.nr | 15 +++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 test_programs/execution_success/missing_closure_env/Nargo.toml create mode 100644 test_programs/execution_success/missing_closure_env/src/main.nr diff --git a/test_programs/execution_success/missing_closure_env/Nargo.toml b/test_programs/execution_success/missing_closure_env/Nargo.toml new file mode 100644 index 00000000000..284e61b1144 --- /dev/null +++ b/test_programs/execution_success/missing_closure_env/Nargo.toml @@ -0,0 +1,7 @@ +[package] +name = "missing_closure_env" +type = "bin" +authors = [""] +compiler_version = ">=0.23.0" + +[dependencies] \ No newline at end of file diff --git a/test_programs/execution_success/missing_closure_env/src/main.nr b/test_programs/execution_success/missing_closure_env/src/main.nr new file mode 100644 index 00000000000..01b25a6e179 --- /dev/null +++ b/test_programs/execution_success/missing_closure_env/src/main.nr @@ -0,0 +1,15 @@ +fn main() { + let x1 = &mut 42; + let set_x1 = |y| { *x1 = y; }; + + assert(*x1 == 42); + set_x1(44); + assert(*x1 == 44); + set_x1(*x1); + assert(*x1 == 44); +} + +#[test] +fn test_main() { + main(); +} From cf9221bf0befe50a4be6f9c5aa9ebd4d2d6eb8a8 Mon Sep 17 00:00:00 2001 From: "Michael J. Klein" Date: Thu, 1 Feb 2024 14:39:31 -0500 Subject: [PATCH 2/3] add assertion to avoid unrelated debugger error --- .../execution_success/missing_closure_env/Prover.toml | 1 + .../execution_success/missing_closure_env/src/main.nr | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 test_programs/execution_success/missing_closure_env/Prover.toml diff --git a/test_programs/execution_success/missing_closure_env/Prover.toml b/test_programs/execution_success/missing_closure_env/Prover.toml new file mode 100644 index 00000000000..2d76abaa89f --- /dev/null +++ b/test_programs/execution_success/missing_closure_env/Prover.toml @@ -0,0 +1 @@ +x = 42 diff --git a/test_programs/execution_success/missing_closure_env/src/main.nr b/test_programs/execution_success/missing_closure_env/src/main.nr index 01b25a6e179..bd753e2c028 100644 --- a/test_programs/execution_success/missing_closure_env/src/main.nr +++ b/test_programs/execution_success/missing_closure_env/src/main.nr @@ -1,4 +1,4 @@ -fn main() { +fn main(x: Field) { let x1 = &mut 42; let set_x1 = |y| { *x1 = y; }; @@ -7,9 +7,10 @@ fn main() { assert(*x1 == 44); set_x1(*x1); assert(*x1 == 44); + assert(x == x); } #[test] fn test_main() { - main(); + main(42); } From d173f0cc47b8ed5476443e0f8326db8e7dac5655 Mon Sep 17 00:00:00 2001 From: "Michael J. Klein" Date: Thu, 1 Feb 2024 15:00:40 -0500 Subject: [PATCH 3/3] ensure at least one acir opcode --- test_programs/execution_success/missing_closure_env/src/main.nr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_programs/execution_success/missing_closure_env/src/main.nr b/test_programs/execution_success/missing_closure_env/src/main.nr index bd753e2c028..0bc99b0671c 100644 --- a/test_programs/execution_success/missing_closure_env/src/main.nr +++ b/test_programs/execution_success/missing_closure_env/src/main.nr @@ -7,7 +7,7 @@ fn main(x: Field) { assert(*x1 == 44); set_x1(*x1); assert(*x1 == 44); - assert(x == x); + assert(x == 42); } #[test]