diff options
author | chriseth <c@ethdev.com> | 2015-03-06 20:44:37 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-03-06 20:47:32 +0800 |
commit | 1234526c938504134b6b86252353ab5e2ae6319f (patch) | |
tree | 0644526a7861d260a4b021de0694afec921a2f25 | |
parent | 1308d62308c676a665147a2a9e1d045dcdbe7f31 (diff) | |
download | dexon-solidity-1234526c938504134b6b86252353ab5e2ae6319f.tar.gz dexon-solidity-1234526c938504134b6b86252353ab5e2ae6319f.tar.zst dexon-solidity-1234526c938504134b6b86252353ab5e2ae6319f.zip |
Fix type checks for storage variable initializer.
-rw-r--r-- | SolidityNameAndTypeResolution.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/SolidityNameAndTypeResolution.cpp b/SolidityNameAndTypeResolution.cpp index a48b62d0..6e6254eb 100644 --- a/SolidityNameAndTypeResolution.cpp +++ b/SolidityNameAndTypeResolution.cpp @@ -1292,6 +1292,24 @@ BOOST_AUTO_TEST_CASE(array_copy_with_different_types_dynamic_static) BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError); } +BOOST_AUTO_TEST_CASE(storage_variable_initialization_with_incorrect_type_int) +{ + char const* text = R"( + contract c { + uint8 a = 1000; + })"; + BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError); +} + +BOOST_AUTO_TEST_CASE(storage_variable_initialization_with_incorrect_type_string) +{ + char const* text = R"( + contract c { + uint a = "abc"; + })"; + BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError); +} + BOOST_AUTO_TEST_SUITE_END() } |