diff options
author | CJentzsch <jentzsch.software@gmail.com> | 2015-02-26 22:42:21 +0800 |
---|---|---|
committer | CJentzsch <jentzsch.software@gmail.com> | 2015-02-26 22:42:21 +0800 |
commit | 206d646dbfabd6cb8edea6c68d04d2bc32eb8cf9 (patch) | |
tree | e27256e3b1fc13375666e5b34248afa66d771351 /SolidityParser.cpp | |
parent | c5b2733d1e405487b0b3d419b22a08883ac487dd (diff) | |
parent | 60ade5b33f004d64b4f55b5efc2f7083724d9682 (diff) | |
download | dexon-solidity-206d646dbfabd6cb8edea6c68d04d2bc32eb8cf9.tar dexon-solidity-206d646dbfabd6cb8edea6c68d04d2bc32eb8cf9.tar.gz dexon-solidity-206d646dbfabd6cb8edea6c68d04d2bc32eb8cf9.tar.bz2 dexon-solidity-206d646dbfabd6cb8edea6c68d04d2bc32eb8cf9.tar.lz dexon-solidity-206d646dbfabd6cb8edea6c68d04d2bc32eb8cf9.tar.xz dexon-solidity-206d646dbfabd6cb8edea6c68d04d2bc32eb8cf9.tar.zst dexon-solidity-206d646dbfabd6cb8edea6c68d04d2bc32eb8cf9.zip |
Merge remote-tracking branch 'upstream/develop' into memTests
Diffstat (limited to 'SolidityParser.cpp')
-rw-r--r-- | SolidityParser.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/SolidityParser.cpp b/SolidityParser.cpp index 69bbc6e0..75eba8bc 100644 --- a/SolidityParser.cpp +++ b/SolidityParser.cpp @@ -480,6 +480,18 @@ BOOST_AUTO_TEST_CASE(statement_starting_with_type_conversion) char const* text = "contract test {\n" " function fun() {\n" " uint64(2);\n" + " uint64[7](3);\n" + " uint64[](3);\n" + " }\n" + "}\n"; + BOOST_CHECK_NO_THROW(parseText(text)); +} + +BOOST_AUTO_TEST_CASE(type_conversion_to_dynamic_array) +{ + char const* text = "contract test {\n" + " function fun() {\n" + " var x = uint64[](3);\n" " }\n" "}\n"; BOOST_CHECK_NO_THROW(parseText(text)); @@ -753,6 +765,45 @@ BOOST_AUTO_TEST_CASE(external_variable) BOOST_CHECK_THROW(parseText(text), ParserError); } +BOOST_AUTO_TEST_CASE(arrays_in_storage) +{ + char const* text = R"( + contract c { + uint[10] a; + uint[] a2; + struct x { uint[2**20] b; y[0] c; } + struct y { uint d; mapping(uint=>x)[] e; } + })"; + BOOST_CHECK_NO_THROW(parseText(text)); +} + +BOOST_AUTO_TEST_CASE(arrays_in_events) +{ + char const* text = R"( + contract c { + event e(uint[10] a, string7[8] indexed b, c[3] x); + })"; + BOOST_CHECK_NO_THROW(parseText(text)); +} + +BOOST_AUTO_TEST_CASE(arrays_in_expressions) +{ + char const* text = R"( + contract c { + function f() { c[10] a = 7; uint8[10 * 2] x; } + })"; + BOOST_CHECK_NO_THROW(parseText(text)); +} + +BOOST_AUTO_TEST_CASE(multi_arrays) +{ + char const* text = R"( + contract c { + mapping(uint => mapping(uint => int8)[8][][9])[] x; + })"; + BOOST_CHECK_NO_THROW(parseText(text)); +} + BOOST_AUTO_TEST_SUITE_END() } |