mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Parse "virtual" keyword
This commit is contained in:
@@ -118,6 +118,14 @@ while(0)
|
||||
|
||||
BOOST_AUTO_TEST_SUITE(SolidityParser)
|
||||
|
||||
BOOST_AUTO_TEST_CASE(reserved_keywords)
|
||||
{
|
||||
BOOST_CHECK(!TokenTraits::isReservedKeyword(Token::Identifier));
|
||||
BOOST_CHECK(TokenTraits::isReservedKeyword(Token::Abstract));
|
||||
BOOST_CHECK(TokenTraits::isReservedKeyword(Token::Unchecked));
|
||||
BOOST_CHECK(!TokenTraits::isReservedKeyword(Token::Illegal));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(unsatisfied_version)
|
||||
{
|
||||
char const* text = R"(
|
||||
|
||||
@@ -208,7 +208,7 @@ BOOST_AUTO_TEST_CASE(type_identifiers)
|
||||
// TypeType is tested with contract
|
||||
|
||||
auto emptyParams = make_shared<ParameterList>(SourceLocation(), std::vector<ASTPointer<VariableDeclaration>>());
|
||||
ModifierDefinition mod(SourceLocation{}, make_shared<string>("modif"), {}, emptyParams, {}, {});
|
||||
ModifierDefinition mod(SourceLocation{}, make_shared<string>("modif"), {}, emptyParams, {}, {}, {});
|
||||
BOOST_CHECK_EQUAL(ModifierType(mod).identifier(), "t_modifier$__$");
|
||||
|
||||
SourceUnit su({}, {});
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
contract C
|
||||
{
|
||||
function foo() virtual public virtual {}
|
||||
modifier modi() virtual virtual {_;}
|
||||
int virtual public virtual variable;
|
||||
}
|
||||
// ----
|
||||
// ParserError: (44-51): Virtual already specified.
|
||||
// ParserError: (80-87): Virtual already specified.
|
||||
// ParserError: (113-120): Virtual already specified.
|
||||
@@ -0,0 +1,8 @@
|
||||
contract C
|
||||
{
|
||||
function foo() public virtual {}
|
||||
function foo2() virtual public {}
|
||||
modifier modi() virtual {_;}
|
||||
int public virtual variable;
|
||||
int virtual public variable2;
|
||||
}
|
||||
Reference in New Issue
Block a user