Pull out helper to apply address member to contract members

This commit is contained in:
Alex Beregszaszi
2017-09-28 14:54:15 +01:00
parent aa6de49457
commit d5d1a08b09
2 changed files with 10 additions and 4 deletions
+8 -4
View File
@@ -1660,12 +1660,17 @@ MemberList::MemberMap ContractType::nativeMembers(ContractDefinition const*) con
&it.second->declaration()
));
}
// Add overloads from address only if there is no conflict
addNonConflictingAddressMembers(members);
return members;
}
void ContractType::addNonConflictingAddressMembers(MemberList::MemberMap& _members)
{
MemberList::MemberMap addressMembers = IntegerType(160, IntegerType::Modifier::Address).nativeMembers(nullptr);
for (auto const& addressMember: addressMembers)
{
bool clash = false;
for (auto const& member: members)
for (auto const& member: _members)
{
if (
member.name == addressMember.name &&
@@ -1686,13 +1691,12 @@ MemberList::MemberMap ContractType::nativeMembers(ContractDefinition const*) con
}
if (!clash)
members.push_back(MemberList::Member(
_members.push_back(MemberList::Member(
addressMember.name,
addressMember.type,
addressMember.declaration
));
}
return members;
}
shared_ptr<FunctionType const> const& ContractType::newExpressionType() const