mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #69 from LianaHus/sol_enum_too_many_indexed_args
too many indexed arguments for event
This commit is contained in:
commit
3c25420b84
@ -85,6 +85,9 @@ void ContractDefinition::checkTypeRequirements()
|
||||
for (ASTPointer<VariableDeclaration> const& variable: m_stateVariables)
|
||||
variable->checkTypeRequirements();
|
||||
|
||||
for (ASTPointer<EventDefinition> const& event: events())
|
||||
event->checkTypeRequirements();
|
||||
|
||||
for (ASTPointer<ModifierDefinition> const& modifier: functionModifiers())
|
||||
modifier->checkTypeRequirements();
|
||||
|
||||
@ -699,13 +702,13 @@ void EventDefinition::checkTypeRequirements()
|
||||
{
|
||||
if (var->isIndexed())
|
||||
numIndexed++;
|
||||
if (numIndexed > 3)
|
||||
BOOST_THROW_EXCEPTION(createTypeError("More than 3 indexed arguments for event."));
|
||||
if (!var->type()->canLiveOutsideStorage())
|
||||
BOOST_THROW_EXCEPTION(var->createTypeError("Type is required to live outside storage."));
|
||||
if (!var->type()->externalType())
|
||||
BOOST_THROW_EXCEPTION(var->createTypeError("Internal type is not allowed as event parameter type."));
|
||||
}
|
||||
if (numIndexed > 3)
|
||||
BOOST_THROW_EXCEPTION(createTypeError("More than 3 indexed arguments for event."));
|
||||
}
|
||||
|
||||
void Block::checkTypeRequirements()
|
||||
|
@ -1050,7 +1050,6 @@ BOOST_AUTO_TEST_CASE(event_too_many_indexed)
|
||||
char const* text = R"(
|
||||
contract c {
|
||||
event e(uint indexed a, bytes3 indexed b, bool indexed c, uint indexed d);
|
||||
function f() { e(2, "abc", true); }
|
||||
})";
|
||||
BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user