From 336c9e8f321c9829340affbe57ae4f2c07fad4aa Mon Sep 17 00:00:00 2001 From: chriseth Date: Mon, 26 Jun 2017 16:35:44 +0200 Subject: Some more tests. --- test/libsolidity/SolidityNameAndTypeResolution.cpp | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'test/libsolidity') diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp index 6af5f503..7961dbc4 100644 --- a/test/libsolidity/SolidityNameAndTypeResolution.cpp +++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp @@ -5813,6 +5813,38 @@ BOOST_AUTO_TEST_CASE(warn_multiple_storage_storage_copies_fill_left) CHECK_WARNING(text, "This assignment performs two copies to storage."); } +BOOST_AUTO_TEST_CASE(nowarn_swap_memory) +{ + char const* text = R"( + contract C { + struct S { uint a; uint b; } + function f() { + S memory x; + S memory y; + (x, y) = (y, x); + } + } + )"; + CHECK_SUCCESS_NO_WARNINGS(text); +} + +BOOST_AUTO_TEST_CASE(nowarn_swap_storage_pointers) +{ + char const* text = R"( + contract C { + struct S { uint a; uint b; } + S x; S y; + function f() { + S storage x_local = x; + S storage y_local = y; + S storage z_local = x; + (x, y_local, x_local, z_local) = (y, x_local, y_local, y); + } + } + )"; + CHECK_SUCCESS_NO_WARNINGS(text); +} + BOOST_AUTO_TEST_CASE(warn_unused_local) { char const* text = R"( -- cgit