aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SolidityNameAndTypeResolution.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/SolidityNameAndTypeResolution.cpp b/SolidityNameAndTypeResolution.cpp
index 490ab3be..34f51a4c 100644
--- a/SolidityNameAndTypeResolution.cpp
+++ b/SolidityNameAndTypeResolution.cpp
@@ -991,11 +991,11 @@ BOOST_AUTO_TEST_CASE(exp_operator_exponent_too_big)
})";
BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError);
}
+
BOOST_AUTO_TEST_CASE(enum_member_access)
{
char const* text = R"(
contract test {
- struct foo { uint256 x;}
enum ActionChoices { GoLeft, GoRight, GoStraight, Sit };
function test()
{
@@ -1007,6 +1007,21 @@ BOOST_AUTO_TEST_CASE(enum_member_access)
BOOST_CHECK_NO_THROW(parseTextAndResolveNamesWithChecks(text));
}
+BOOST_AUTO_TEST_CASE(enum_invalid_member_access)
+{
+ char const* text = R"(
+ contract test {
+ enum ActionChoices { GoLeft, GoRight, GoStraight, Sit };
+ function test()
+ {
+ choices = ActionChoices.RunAroundWavingYourHands;
+ }
+ ActionChoices choices;
+ }
+ )";
+ BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
+}
+
BOOST_AUTO_TEST_SUITE_END()
}