aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
diff options
context:
space:
mode:
authorLianaHus <liana@ethdev.com>2016-01-16 00:36:06 +0800
committerLianaHus <liana@ethdev.com>2016-01-16 00:36:06 +0800
commitb2daa5a9d818f80df0c12e0afedb9ff549bd63d8 (patch)
tree0bbb6dd41eb7bb0716d24c728b4de617b159e36e /libsolidity/analysis
parentca45cfee8c3a1013a174b3fe499e7361c5f6d3d8 (diff)
downloaddexon-solidity-b2daa5a9d818f80df0c12e0afedb9ff549bd63d8.tar.gz
dexon-solidity-b2daa5a9d818f80df0c12e0afedb9ff549bd63d8.tar.zst
dexon-solidity-b2daa5a9d818f80df0c12e0afedb9ff549bd63d8.zip
fixed assert on EI creation for structs containing only mapping or arrays
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r--libsolidity/analysis/TypeChecker.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index ab1151a1..e9e76d27 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -292,17 +292,19 @@ void TypeChecker::checkContractExternalTypeClashes(ContractDefinition const& _co
if (f->isPartOfExternalInterface())
{
auto functionType = make_shared<FunctionType>(*f);
- externalDeclarations[functionType->externalSignature()].push_back(
- make_pair(f, functionType)
- );
+ if (functionType->interfaceFunctionType())
+ externalDeclarations[functionType->externalSignature()].push_back(
+ make_pair(f, functionType)
+ );
}
for (VariableDeclaration const* v: contract->stateVariables())
if (v->isPartOfExternalInterface())
{
auto functionType = make_shared<FunctionType>(*v);
- externalDeclarations[functionType->externalSignature()].push_back(
- make_pair(v, functionType)
- );
+ if (functionType->interfaceFunctionType())
+ externalDeclarations[functionType->externalSignature()].push_back(
+ make_pair(v, functionType)
+ );
}
}
for (auto const& it: externalDeclarations)