From 5df7d9ed88117f956aa5cf116997a67aa39794ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Gir=C3=A1ldez?= Date: Thu, 25 Jul 2024 15:34:12 -0400 Subject: [PATCH] Reorganize variables and scoping test cases --- .../src/bindings_assertions/generated/mod.rs | 3 +- .../bindings_assertions/generated/scoping.rs | 15 ++++++ .../generated/{lexical.rs => variables.rs} | 15 ++---- .../src/bindings_output/generated/mod.rs | 2 +- .../generated/{lexical.rs => variables.rs} | 6 +-- .../{lexical => scoping}/c99_scopes.sol | 0 .../{lexical => scoping}/hoisting_scopes.sol | 0 .../variables/destructuring.sol | 25 ++++++++++ .../{lexical => variables}/local_vars.sol | 0 .../{lexical => variables}/params.sol | 0 .../{lexical => variables}/state_vars.sol | 0 .../lexical/local_vars/input.sol | 10 ---- .../lexical/params/generated/0.4.11.txt | 24 ---------- .../bindings_output/lexical/params/input.sol | 9 ---- .../lexical/state_vars/generated/0.4.11.txt | 36 -------------- .../lexical/state_vars/input.sol | 17 ------- .../local_vars/generated/0.4.11.txt | 18 +++---- .../variables/local_vars/input.sol | 7 +++ .../variables/params/generated/0.4.11.txt | 47 +++++++++++++++++++ .../variables/params/input.sol | 13 +++++ .../variables/state_vars/generated/0.4.11.txt | 19 ++++++++ .../variables/state_vars/input.sol | 7 +++ 22 files changed, 151 insertions(+), 122 deletions(-) create mode 100644 crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/scoping.rs rename crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/{lexical.rs => variables.rs} (54%) rename crates/solidity/outputs/cargo/tests/src/bindings_output/generated/{lexical.rs => variables.rs} (73%) rename crates/solidity/testing/snapshots/bindings_assertions/{lexical => scoping}/c99_scopes.sol (100%) rename crates/solidity/testing/snapshots/bindings_assertions/{lexical => scoping}/hoisting_scopes.sol (100%) create mode 100644 crates/solidity/testing/snapshots/bindings_assertions/variables/destructuring.sol rename crates/solidity/testing/snapshots/bindings_assertions/{lexical => variables}/local_vars.sol (100%) rename crates/solidity/testing/snapshots/bindings_assertions/{lexical => variables}/params.sol (100%) rename crates/solidity/testing/snapshots/bindings_assertions/{lexical => variables}/state_vars.sol (100%) delete mode 100644 crates/solidity/testing/snapshots/bindings_output/lexical/local_vars/input.sol delete mode 100644 crates/solidity/testing/snapshots/bindings_output/lexical/params/generated/0.4.11.txt delete mode 100644 crates/solidity/testing/snapshots/bindings_output/lexical/params/input.sol delete mode 100644 crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/generated/0.4.11.txt delete mode 100644 crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/input.sol rename crates/solidity/testing/snapshots/bindings_output/{lexical => variables}/local_vars/generated/0.4.11.txt (53%) create mode 100644 crates/solidity/testing/snapshots/bindings_output/variables/local_vars/input.sol create mode 100644 crates/solidity/testing/snapshots/bindings_output/variables/params/generated/0.4.11.txt create mode 100644 crates/solidity/testing/snapshots/bindings_output/variables/params/input.sol create mode 100644 crates/solidity/testing/snapshots/bindings_output/variables/state_vars/generated/0.4.11.txt create mode 100644 crates/solidity/testing/snapshots/bindings_output/variables/state_vars/input.sol diff --git a/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/mod.rs b/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/mod.rs index 2ad7e4a03..bfebf15cb 100644 --- a/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/mod.rs +++ b/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/mod.rs @@ -4,4 +4,5 @@ mod contracts; mod enums; mod functions; mod interfaces; -mod lexical; +mod scoping; +mod variables; diff --git a/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/scoping.rs b/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/scoping.rs new file mode 100644 index 000000000..5d7d6b535 --- /dev/null +++ b/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/scoping.rs @@ -0,0 +1,15 @@ +// This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +use anyhow::Result; + +use crate::bindings_assertions::runner::run; + +#[test] +fn c99_scopes() -> Result<()> { + run("scoping", "c99_scopes") +} + +#[test] +fn hoisting_scopes() -> Result<()> { + run("scoping", "hoisting_scopes") +} diff --git a/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/lexical.rs b/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/variables.rs similarity index 54% rename from crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/lexical.rs rename to crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/variables.rs index 6440c1057..31a2ddac3 100644 --- a/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/lexical.rs +++ b/crates/solidity/outputs/cargo/tests/src/bindings_assertions/generated/variables.rs @@ -5,26 +5,21 @@ use anyhow::Result; use crate::bindings_assertions::runner::run; #[test] -fn c99_scopes() -> Result<()> { - run("lexical", "c99_scopes") -} - -#[test] -fn hoisting_scopes() -> Result<()> { - run("lexical", "hoisting_scopes") +fn destructuring() -> Result<()> { + run("variables", "destructuring") } #[test] fn local_vars() -> Result<()> { - run("lexical", "local_vars") + run("variables", "local_vars") } #[test] fn params() -> Result<()> { - run("lexical", "params") + run("variables", "params") } #[test] fn state_vars() -> Result<()> { - run("lexical", "state_vars") + run("variables", "state_vars") } diff --git a/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/mod.rs b/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/mod.rs index d98f3cabc..6058330c3 100644 --- a/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/mod.rs +++ b/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/mod.rs @@ -4,6 +4,6 @@ mod contracts; mod enums; mod expressions; mod interfaces; -mod lexical; mod libraries; mod structs; +mod variables; diff --git a/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/lexical.rs b/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/variables.rs similarity index 73% rename from crates/solidity/outputs/cargo/tests/src/bindings_output/generated/lexical.rs rename to crates/solidity/outputs/cargo/tests/src/bindings_output/generated/variables.rs index 40c0fa8be..c15dc0378 100644 --- a/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/lexical.rs +++ b/crates/solidity/outputs/cargo/tests/src/bindings_output/generated/variables.rs @@ -6,15 +6,15 @@ use crate::bindings_output::runner::run; #[test] fn local_vars() -> Result<()> { - run("lexical", "local_vars") + run("variables", "local_vars") } #[test] fn params() -> Result<()> { - run("lexical", "params") + run("variables", "params") } #[test] fn state_vars() -> Result<()> { - run("lexical", "state_vars") + run("variables", "state_vars") } diff --git a/crates/solidity/testing/snapshots/bindings_assertions/lexical/c99_scopes.sol b/crates/solidity/testing/snapshots/bindings_assertions/scoping/c99_scopes.sol similarity index 100% rename from crates/solidity/testing/snapshots/bindings_assertions/lexical/c99_scopes.sol rename to crates/solidity/testing/snapshots/bindings_assertions/scoping/c99_scopes.sol diff --git a/crates/solidity/testing/snapshots/bindings_assertions/lexical/hoisting_scopes.sol b/crates/solidity/testing/snapshots/bindings_assertions/scoping/hoisting_scopes.sol similarity index 100% rename from crates/solidity/testing/snapshots/bindings_assertions/lexical/hoisting_scopes.sol rename to crates/solidity/testing/snapshots/bindings_assertions/scoping/hoisting_scopes.sol diff --git a/crates/solidity/testing/snapshots/bindings_assertions/variables/destructuring.sol b/crates/solidity/testing/snapshots/bindings_assertions/variables/destructuring.sol new file mode 100644 index 000000000..103fabcd6 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_assertions/variables/destructuring.sol @@ -0,0 +1,25 @@ +library Test { + enum Choice { Yes, No } + // ^def:1 + + function test() public pure { + (int x, int y) = (1, 2); + // ^def:5 + // ^def:4 + (int z, , int w) = (1, 2, 3); + // ^def:7 + // ^def:6 + assert(x == z); + // ^ref:6 + // ^ref:4 + assert(y < w); + // ^ref:7 + // ^ref:5 + (, Choice c) = (Choice.Yes, Choice.No); + // ^def:8 + // ^ref:1 + + assert(c == Choice.No); + // ^ref:8 + } +} diff --git a/crates/solidity/testing/snapshots/bindings_assertions/lexical/local_vars.sol b/crates/solidity/testing/snapshots/bindings_assertions/variables/local_vars.sol similarity index 100% rename from crates/solidity/testing/snapshots/bindings_assertions/lexical/local_vars.sol rename to crates/solidity/testing/snapshots/bindings_assertions/variables/local_vars.sol diff --git a/crates/solidity/testing/snapshots/bindings_assertions/lexical/params.sol b/crates/solidity/testing/snapshots/bindings_assertions/variables/params.sol similarity index 100% rename from crates/solidity/testing/snapshots/bindings_assertions/lexical/params.sol rename to crates/solidity/testing/snapshots/bindings_assertions/variables/params.sol diff --git a/crates/solidity/testing/snapshots/bindings_assertions/lexical/state_vars.sol b/crates/solidity/testing/snapshots/bindings_assertions/variables/state_vars.sol similarity index 100% rename from crates/solidity/testing/snapshots/bindings_assertions/lexical/state_vars.sol rename to crates/solidity/testing/snapshots/bindings_assertions/variables/state_vars.sol diff --git a/crates/solidity/testing/snapshots/bindings_output/lexical/local_vars/input.sol b/crates/solidity/testing/snapshots/bindings_output/lexical/local_vars/input.sol deleted file mode 100644 index 850377875..000000000 --- a/crates/solidity/testing/snapshots/bindings_output/lexical/local_vars/input.sol +++ /dev/null @@ -1,10 +0,0 @@ -contract Foo { - function bar() returns (uint) { - uint x = 10; - return x + 2; - } - - function baz() returns (int) { - return w + x; - } -} diff --git a/crates/solidity/testing/snapshots/bindings_output/lexical/params/generated/0.4.11.txt b/crates/solidity/testing/snapshots/bindings_output/lexical/params/generated/0.4.11.txt deleted file mode 100644 index 167507107..000000000 --- a/crates/solidity/testing/snapshots/bindings_output/lexical/params/generated/0.4.11.txt +++ /dev/null @@ -1,24 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -References and definitions: - ╭─[crates/solidity/testing/snapshots/bindings_output/lexical/params/input.sol:1:1] - │ - 1 │ contract Foo { - │ ─┬─ - │ ╰─── def: 1 - 2 │ function bar(uint z) returns (uint) { - │ ─┬─ ┬ - │ ╰────────── def: 2 - │ │ - │ ╰── def: 3 - 3 │ return z + 1; - │ ┬ - │ ╰── ref: 3 - │ - 6 │ function baz() returns (int) { - │ ─┬─ - │ ╰─── def: 4 - 7 │ return z + 2; - │ ┬ - │ ╰── unresolved -───╯ diff --git a/crates/solidity/testing/snapshots/bindings_output/lexical/params/input.sol b/crates/solidity/testing/snapshots/bindings_output/lexical/params/input.sol deleted file mode 100644 index 07f1b0b65..000000000 --- a/crates/solidity/testing/snapshots/bindings_output/lexical/params/input.sol +++ /dev/null @@ -1,9 +0,0 @@ -contract Foo { - function bar(uint z) returns (uint) { - return z + 1; - } - - function baz() returns (int) { - return z + 2; - } -} diff --git a/crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/generated/0.4.11.txt b/crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/generated/0.4.11.txt deleted file mode 100644 index cbc405749..000000000 --- a/crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/generated/0.4.11.txt +++ /dev/null @@ -1,36 +0,0 @@ -# This file is generated automatically by infrastructure scripts. Please don't edit by hand. - -References and definitions: - ╭─[crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/input.sol:1:1] - │ - 1 │ contract Foo { - │ ─┬─ - │ ╰─── def: 1 - 2 │ uint x; - │ ┬ - │ ╰── def: 2 - │ - 4 │ function bar() returns (uint) { - │ ─┬─ - │ ╰─── def: 3 - 5 │ return x; - │ ┬ - │ ╰── ref: 2 - │ - 8 │ function baz() returns (int) { - │ ─┬─ - │ ╰─── def: 4 - 9 │ return y; - │ ┬ - │ ╰── unresolved - │ - 13 │ contract Bar { - │ ─┬─ - │ ╰─── def: 5 - 14 │ function quux() returns (uint) { - │ ──┬─ - │ ╰─── def: 6 - 15 │ return x; - │ ┬ - │ ╰── unresolved -────╯ diff --git a/crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/input.sol b/crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/input.sol deleted file mode 100644 index 954dd2b3d..000000000 --- a/crates/solidity/testing/snapshots/bindings_output/lexical/state_vars/input.sol +++ /dev/null @@ -1,17 +0,0 @@ -contract Foo { - uint x; - - function bar() returns (uint) { - return x; - } - - function baz() returns (int) { - return y; - } -} - -contract Bar { - function quux() returns (uint) { - return x; - } -} diff --git a/crates/solidity/testing/snapshots/bindings_output/lexical/local_vars/generated/0.4.11.txt b/crates/solidity/testing/snapshots/bindings_output/variables/local_vars/generated/0.4.11.txt similarity index 53% rename from crates/solidity/testing/snapshots/bindings_output/lexical/local_vars/generated/0.4.11.txt rename to crates/solidity/testing/snapshots/bindings_output/variables/local_vars/generated/0.4.11.txt index 8b2fb769a..adedab155 100644 --- a/crates/solidity/testing/snapshots/bindings_output/lexical/local_vars/generated/0.4.11.txt +++ b/crates/solidity/testing/snapshots/bindings_output/variables/local_vars/generated/0.4.11.txt @@ -1,7 +1,7 @@ # This file is generated automatically by infrastructure scripts. Please don't edit by hand. References and definitions: - ╭─[crates/solidity/testing/snapshots/bindings_output/lexical/local_vars/input.sol:1:1] + ╭─[crates/solidity/testing/snapshots/bindings_output/variables/local_vars/input.sol:1:1] │ 1 │ contract Foo { │ ─┬─ @@ -12,16 +12,12 @@ References and definitions: 3 │ uint x = 10; │ ┬ │ ╰── def: 3 - 4 │ return x + 2; - │ ┬ - │ ╰── ref: 3 - │ - 7 │ function baz() returns (int) { - │ ─┬─ - │ ╰─── def: 4 - 8 │ return w + x; + 4 │ uint w = 2; + │ ┬ + │ ╰── def: 4 + 5 │ return x + w; │ ┬ ┬ - │ ╰────── unresolved + │ ╰────── ref: 3 │ │ - │ ╰── unresolved + │ ╰── ref: 4 ───╯ diff --git a/crates/solidity/testing/snapshots/bindings_output/variables/local_vars/input.sol b/crates/solidity/testing/snapshots/bindings_output/variables/local_vars/input.sol new file mode 100644 index 000000000..706051e2b --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/variables/local_vars/input.sol @@ -0,0 +1,7 @@ +contract Foo { + function bar() returns (uint) { + uint x = 10; + uint w = 2; + return x + w; + } +} diff --git a/crates/solidity/testing/snapshots/bindings_output/variables/params/generated/0.4.11.txt b/crates/solidity/testing/snapshots/bindings_output/variables/params/generated/0.4.11.txt new file mode 100644 index 000000000..1c73fcd95 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/variables/params/generated/0.4.11.txt @@ -0,0 +1,47 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +References and definitions: + ╭─[crates/solidity/testing/snapshots/bindings_output/variables/params/input.sol:1:1] + │ + 1 │ contract Foo { + │ ─┬─ + │ ╰─── def: 1 + 2 │ function bar(uint z) returns (uint) { + │ ─┬─ ┬ + │ ╰────────── def: 2 + │ │ + │ ╰── def: 3 + 3 │ return z + 1; + │ ┬ + │ ╰── ref: 3 + │ + 6 │ function baz(int x, int y) returns (int) { + │ ─┬─ ┬ ┬ + │ ╰──────────────── def: 4 + │ │ │ + │ ╰───────── def: 5 + │ │ + │ ╰── def: 6 + 7 │ return x + y; + │ ┬ ┬ + │ ╰────── ref: 5 + │ │ + │ ╰── ref: 6 + │ + 10 │ function quux(int x, int y) returns (int z) { + │ ──┬─ ┬ ┬ ┬ + │ ╰──────────────────────────────── def: 7 + │ │ │ │ + │ ╰───────────────────────── def: 8 + │ │ │ + │ ╰────────────────── def: 9 + │ │ + │ ╰── def: 10 + 11 │ z = x + y; + │ ┬ ┬ ┬ + │ ╰────────── ref: 10 + │ │ │ + │ ╰────── ref: 8 + │ │ + │ ╰── ref: 9 +────╯ diff --git a/crates/solidity/testing/snapshots/bindings_output/variables/params/input.sol b/crates/solidity/testing/snapshots/bindings_output/variables/params/input.sol new file mode 100644 index 000000000..89730e543 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/variables/params/input.sol @@ -0,0 +1,13 @@ +contract Foo { + function bar(uint z) returns (uint) { + return z + 1; + } + + function baz(int x, int y) returns (int) { + return x + y; + } + + function quux(int x, int y) returns (int z) { + z = x + y; + } +} diff --git a/crates/solidity/testing/snapshots/bindings_output/variables/state_vars/generated/0.4.11.txt b/crates/solidity/testing/snapshots/bindings_output/variables/state_vars/generated/0.4.11.txt new file mode 100644 index 000000000..535fe0418 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/variables/state_vars/generated/0.4.11.txt @@ -0,0 +1,19 @@ +# This file is generated automatically by infrastructure scripts. Please don't edit by hand. + +References and definitions: + ╭─[crates/solidity/testing/snapshots/bindings_output/variables/state_vars/input.sol:1:1] + │ + 1 │ contract Foo { + │ ─┬─ + │ ╰─── def: 1 + 2 │ uint x; + │ ┬ + │ ╰── def: 2 + │ + 4 │ function bar() returns (uint) { + │ ─┬─ + │ ╰─── def: 3 + 5 │ return x; + │ ┬ + │ ╰── ref: 2 +───╯ diff --git a/crates/solidity/testing/snapshots/bindings_output/variables/state_vars/input.sol b/crates/solidity/testing/snapshots/bindings_output/variables/state_vars/input.sol new file mode 100644 index 000000000..6e07a7dd7 --- /dev/null +++ b/crates/solidity/testing/snapshots/bindings_output/variables/state_vars/input.sol @@ -0,0 +1,7 @@ +contract Foo { + uint x; + + function bar() returns (uint) { + return x; + } +}