aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorLianaHus <liana@ethdev.com>2015-09-11 21:24:11 +0800
committerLianaHus <liana@ethdev.com>2015-09-11 21:24:11 +0800
commit1d1386a58cdeada9497a3940ab9a7d5c68f21af8 (patch)
treedc2c460864d637f0afe49a1a36a13da27d13b165 /libsolidity
parentf5fc119dc80e6eb83bd145121ad13869ba246d76 (diff)
downloaddexon-solidity-1d1386a58cdeada9497a3940ab9a7d5c68f21af8.tar
dexon-solidity-1d1386a58cdeada9497a3940ab9a7d5c68f21af8.tar.gz
dexon-solidity-1d1386a58cdeada9497a3940ab9a7d5c68f21af8.tar.bz2
dexon-solidity-1d1386a58cdeada9497a3940ab9a7d5c68f21af8.tar.lz
dexon-solidity-1d1386a58cdeada9497a3940ab9a7d5c68f21af8.tar.xz
dexon-solidity-1d1386a58cdeada9497a3940ab9a7d5c68f21af8.tar.zst
dexon-solidity-1d1386a58cdeada9497a3940ab9a7d5c68f21af8.zip
add call for EventDefinition::checkTypeRequirements()
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/AST.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/libsolidity/AST.cpp b/libsolidity/AST.cpp
index 25d2ccd8..1ac78dd1 100644
--- a/libsolidity/AST.cpp
+++ b/libsolidity/AST.cpp
@@ -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()