mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
parsing: ban empty enum definition.
This commit is contained in:
parent
457daecba1
commit
eee629652e
@ -5,6 +5,10 @@ Features:
|
||||
* Type checker: now more eagerly searches for a common type of an inline array with mixed types
|
||||
* Code generator: generates a runtime error when an out-of-range value is converted into an enum type.
|
||||
|
||||
Bugfixes:
|
||||
|
||||
* Parser: disallow empty enum definitions.
|
||||
|
||||
### 0.4.4 (2016-10-31)
|
||||
|
||||
Bugfixes:
|
||||
|
@ -406,6 +406,8 @@ ASTPointer<EnumDefinition> Parser::parseEnumDefinition()
|
||||
if (m_scanner->currentToken() != Token::Identifier)
|
||||
fatalParserError(string("Expected Identifier after ','"));
|
||||
}
|
||||
if (members.size() == 0)
|
||||
parserError({"enum with no members is not allowed."});
|
||||
|
||||
nodeFactory.markEndPosition();
|
||||
expectToken(Token::RBrace);
|
||||
|
@ -94,20 +94,6 @@ BOOST_AUTO_TEST_CASE(using_for_directive)
|
||||
BOOST_CHECK_EQUAL(usingFor["children"][1]["attributes"]["name"], "uint");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(enum_definition)
|
||||
{
|
||||
CompilerStack c;
|
||||
c.addSource("a", "contract C { enum E {} }");
|
||||
c.parse();
|
||||
map<string, unsigned> sourceIndices;
|
||||
sourceIndices["a"] = 1;
|
||||
Json::Value astJson = ASTJsonConverter(c.ast("a"), sourceIndices).json();
|
||||
Json::Value enumDefinition = astJson["children"][0]["children"][0];
|
||||
BOOST_CHECK_EQUAL(enumDefinition["name"], "EnumDefinition");
|
||||
BOOST_CHECK_EQUAL(enumDefinition["attributes"]["name"], "E");
|
||||
BOOST_CHECK_EQUAL(enumDefinition["src"], "13:9:1");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(enum_value)
|
||||
{
|
||||
CompilerStack c;
|
||||
|
@ -824,7 +824,7 @@ BOOST_AUTO_TEST_CASE(empty_enum_declaration)
|
||||
contract c {
|
||||
enum foo { }
|
||||
})";
|
||||
BOOST_CHECK(successParse(text));
|
||||
BOOST_CHECK(!successParse(text));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(malformed_enum_declaration)
|
||||
|
Loading…
Reference in New Issue
Block a user