aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-03-06 20:44:37 +0800
committerchriseth <c@ethdev.com>2015-03-06 20:47:32 +0800
commit1234526c938504134b6b86252353ab5e2ae6319f (patch)
tree0644526a7861d260a4b021de0694afec921a2f25
parent1308d62308c676a665147a2a9e1d045dcdbe7f31 (diff)
downloaddexon-solidity-1234526c938504134b6b86252353ab5e2ae6319f.tar.gz
dexon-solidity-1234526c938504134b6b86252353ab5e2ae6319f.tar.zst
dexon-solidity-1234526c938504134b6b86252353ab5e2ae6319f.zip
Fix type checks for storage variable initializer.
-rw-r--r--SolidityNameAndTypeResolution.cpp18
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()
}