diff options
author | Federico Bond <federicobond@gmail.com> | 2017-06-15 23:36:14 +0800 |
---|---|---|
committer | Federico Bond <federicobond@gmail.com> | 2017-06-22 09:46:27 +0800 |
commit | 0f8ad1d68f60270fb22057e787ff689318c31fa9 (patch) | |
tree | 5b6f9f78fdce1e7164c4ebf94011d1598664f1c5 /test | |
parent | 26ea9ce07cf85849cd881465a4322f14bff87eb8 (diff) | |
download | dexon-solidity-0f8ad1d68f60270fb22057e787ff689318c31fa9.tar.gz dexon-solidity-0f8ad1d68f60270fb22057e787ff689318c31fa9.tar.zst dexon-solidity-0f8ad1d68f60270fb22057e787ff689318c31fa9.zip |
Fix segmentation fault with constant function parameters
Diffstat (limited to 'test')
-rw-r--r-- | test/libsolidity/SolidityNameAndTypeResolution.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp index 0b3cb481..c4b1250f 100644 --- a/test/libsolidity/SolidityNameAndTypeResolution.cpp +++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp @@ -1597,6 +1597,16 @@ BOOST_AUTO_TEST_CASE(empty_name_input_parameter) CHECK_SUCCESS(text); } +BOOST_AUTO_TEST_CASE(constant_input_parameter) +{ + char const* text = R"( + contract test { + function f(uint[] constant a) { } + } + )"; + CHECK_ERROR_ALLOW_MULTI(text, TypeError, "Illegal use of \"constant\" specifier."); +} + BOOST_AUTO_TEST_CASE(empty_name_return_parameter) { char const* text = R"( @@ -5582,6 +5592,16 @@ BOOST_AUTO_TEST_CASE(interface_variables) CHECK_ERROR(text, TypeError, "Variables cannot be declared in interfaces"); } +BOOST_AUTO_TEST_CASE(interface_function_parameters) +{ + char const* text = R"( + interface I { + function f(uint a) returns(bool); + } + )"; + success(text); +} + BOOST_AUTO_TEST_CASE(interface_enums) { char const* text = R"( |