aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCJentzsch <jentzsch.software@gmail.com>2015-02-16 14:38:49 +0800
committerCJentzsch <jentzsch.software@gmail.com>2015-02-16 14:38:49 +0800
commit1c10c6a547aab24f1c96affcca5313f43fc752c6 (patch)
treedfc64d567aa262d8cb99be5c28db50c6ccd8bc8a
parent6c8cb2acf48d9ce5d569dcde12bc04bc04e9413c (diff)
parent600b38224ea1592af9a8348b082abb996ee5ef76 (diff)
downloaddexon-solidity-1c10c6a547aab24f1c96affcca5313f43fc752c6.tar.gz
dexon-solidity-1c10c6a547aab24f1c96affcca5313f43fc752c6.tar.zst
dexon-solidity-1c10c6a547aab24f1c96affcca5313f43fc752c6.zip
Merge remote-tracking branch 'upstream/develop' into blockTests
-rw-r--r--SolidityEndToEndTest.cpp15
-rw-r--r--SolidityNameAndTypeResolution.cpp2
2 files changed, 16 insertions, 1 deletions
diff --git a/SolidityEndToEndTest.cpp b/SolidityEndToEndTest.cpp
index 2ef2b803..0325c4c6 100644
--- a/SolidityEndToEndTest.cpp
+++ b/SolidityEndToEndTest.cpp
@@ -2519,6 +2519,21 @@ BOOST_AUTO_TEST_CASE(using_enums)
BOOST_CHECK(callContractFunction("getChoice()") == encodeArgs(2));
}
+BOOST_AUTO_TEST_CASE(constructing_enums_from_ints)
+{
+ char const* sourceCode = R"(
+ contract c {
+ enum Truth { False, True }
+ function test() returns (uint)
+ {
+ return uint(Truth(uint8(0x701)));
+ }
+ }
+ )";
+ compileAndRun(sourceCode);
+ BOOST_CHECK(callContractFunction("test()") == encodeArgs(1));
+}
+
BOOST_AUTO_TEST_SUITE_END()
}
diff --git a/SolidityNameAndTypeResolution.cpp b/SolidityNameAndTypeResolution.cpp
index ec49a42d..d6e4ed51 100644
--- a/SolidityNameAndTypeResolution.cpp
+++ b/SolidityNameAndTypeResolution.cpp
@@ -1080,7 +1080,7 @@ BOOST_AUTO_TEST_CASE(enum_duplicate_values)
enum ActionChoices { GoLeft, GoRight, GoLeft, Sit }
}
)";
- BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
+ BOOST_CHECK_THROW(parseTextAndResolveNames(text), DeclarationError);
}
BOOST_AUTO_TEST_SUITE_END()