mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Replace push_back with emplace_back where it makes sense
This commit is contained in:
@@ -198,7 +198,7 @@ vector<pair<FixedHash<4>, FunctionTypePointer>> const& ContractDefinition::inter
|
||||
{
|
||||
signaturesSeen.insert(functionSignature);
|
||||
FixedHash<4> hash(dev::keccak256(functionSignature));
|
||||
m_interfaceFunctionList->push_back(make_pair(hash, fun));
|
||||
m_interfaceFunctionList->emplace_back(hash, fun);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,7 +234,7 @@ bool ASTJsonConverter::visit(ImportDirective const& _node)
|
||||
make_pair(m_legacy ? "SourceUnit" : "sourceUnit", nodeId(*_node.annotation().sourceUnit)),
|
||||
make_pair("scope", idOrNull(_node.scope()))
|
||||
};
|
||||
attributes.push_back(make_pair("unitAlias", _node.name()));
|
||||
attributes.emplace_back("unitAlias", _node.name());
|
||||
Json::Value symbolAliases(Json::arrayValue);
|
||||
for (auto const& symbolAlias: _node.symbolAliases())
|
||||
{
|
||||
@@ -244,7 +244,7 @@ bool ASTJsonConverter::visit(ImportDirective const& _node)
|
||||
tuple["local"] = symbolAlias.second ? Json::Value(*symbolAlias.second) : Json::nullValue;
|
||||
symbolAliases.append(tuple);
|
||||
}
|
||||
attributes.push_back(make_pair("symbolAliases", std::move(symbolAliases)));
|
||||
attributes.emplace_back("symbolAliases", std::move(symbolAliases));
|
||||
setJsonNode(_node, "ImportDirective", std::move(attributes));
|
||||
return false;
|
||||
}
|
||||
@@ -357,7 +357,7 @@ bool ASTJsonConverter::visit(VariableDeclaration const& _node)
|
||||
make_pair("typeDescriptions", typePointerToJson(_node.annotation().type, true))
|
||||
};
|
||||
if (m_inEvent)
|
||||
attributes.push_back(make_pair("indexed", _node.isIndexed()));
|
||||
attributes.emplace_back("indexed", _node.isIndexed());
|
||||
setJsonNode(_node, "VariableDeclaration", std::move(attributes));
|
||||
return false;
|
||||
}
|
||||
@@ -647,11 +647,11 @@ bool ASTJsonConverter::visit(FunctionCall const& _node)
|
||||
};
|
||||
if (m_legacy)
|
||||
{
|
||||
attributes.push_back(make_pair("isStructConstructorCall", _node.annotation().kind == FunctionCallKind::StructConstructorCall));
|
||||
attributes.push_back(make_pair("type_conversion", _node.annotation().kind == FunctionCallKind::TypeConversion));
|
||||
attributes.emplace_back("isStructConstructorCall", _node.annotation().kind == FunctionCallKind::StructConstructorCall);
|
||||
attributes.emplace_back("type_conversion", _node.annotation().kind == FunctionCallKind::TypeConversion);
|
||||
}
|
||||
else
|
||||
attributes.push_back(make_pair("kind", functionCallKind(_node.annotation().kind)));
|
||||
attributes.emplace_back("kind", functionCallKind(_node.annotation().kind));
|
||||
appendExpressionAttributes(attributes, _node.annotation());
|
||||
setJsonNode(_node, "FunctionCall", std::move(attributes));
|
||||
return false;
|
||||
|
||||
+27
-34
@@ -446,7 +446,7 @@ MemberList::MemberMap Type::boundFunctions(Type const& _type, ContractDefinition
|
||||
continue;
|
||||
FunctionTypePointer fun = FunctionType(*function, false).asCallableFunction(true, true);
|
||||
if (_type.isImplicitlyConvertibleTo(*fun->selfType()))
|
||||
members.push_back(MemberList::Member(function->name(), fun, function));
|
||||
members.emplace_back(function->name(), fun, function);
|
||||
}
|
||||
}
|
||||
return members;
|
||||
@@ -1811,23 +1811,23 @@ MemberList::MemberMap ArrayType::nativeMembers(ContractDefinition const*) const
|
||||
MemberList::MemberMap members;
|
||||
if (!isString())
|
||||
{
|
||||
members.push_back({"length", make_shared<IntegerType>(256)});
|
||||
members.emplace_back("length", make_shared<IntegerType>(256));
|
||||
if (isDynamicallySized() && location() == DataLocation::Storage)
|
||||
{
|
||||
members.push_back({"push", make_shared<FunctionType>(
|
||||
members.emplace_back("push", make_shared<FunctionType>(
|
||||
TypePointers{baseType()},
|
||||
TypePointers{make_shared<IntegerType>(256)},
|
||||
strings{string()},
|
||||
strings{string()},
|
||||
isByteArray() ? FunctionType::Kind::ByteArrayPush : FunctionType::Kind::ArrayPush
|
||||
)});
|
||||
members.push_back({"pop", make_shared<FunctionType>(
|
||||
));
|
||||
members.emplace_back("pop", make_shared<FunctionType>(
|
||||
TypePointers{},
|
||||
TypePointers{},
|
||||
strings{string()},
|
||||
strings{string()},
|
||||
FunctionType::Kind::ArrayPop
|
||||
)});
|
||||
));
|
||||
}
|
||||
}
|
||||
return members;
|
||||
@@ -1956,21 +1956,17 @@ MemberList::MemberMap ContractType::nativeMembers(ContractDefinition const* _con
|
||||
break;
|
||||
}
|
||||
if (!functionWithEqualArgumentsFound)
|
||||
members.push_back(MemberList::Member(
|
||||
function->name(),
|
||||
functionType,
|
||||
function
|
||||
));
|
||||
members.emplace_back(function->name(), functionType, function);
|
||||
}
|
||||
}
|
||||
else if (!m_contract.isLibrary())
|
||||
{
|
||||
for (auto const& it: m_contract.interfaceFunctions())
|
||||
members.push_back(MemberList::Member(
|
||||
members.emplace_back(
|
||||
it.second->declaration().name(),
|
||||
it.second->asCallableFunction(m_contract.isLibrary()),
|
||||
&it.second->declaration()
|
||||
));
|
||||
);
|
||||
}
|
||||
return members;
|
||||
}
|
||||
@@ -1998,7 +1994,7 @@ vector<tuple<VariableDeclaration const*, u256, unsigned>> ContractType::stateVar
|
||||
vector<tuple<VariableDeclaration const*, u256, unsigned>> variablesAndOffsets;
|
||||
for (size_t index = 0; index < variables.size(); ++index)
|
||||
if (auto const* offset = offsets.offset(index))
|
||||
variablesAndOffsets.push_back(make_tuple(variables[index], offset->first, offset->second));
|
||||
variablesAndOffsets.emplace_back(variables[index], offset->first, offset->second);
|
||||
return variablesAndOffsets;
|
||||
}
|
||||
|
||||
@@ -2088,10 +2084,10 @@ MemberList::MemberMap StructType::nativeMembers(ContractDefinition const*) const
|
||||
// Skip all mapping members if we are not in storage.
|
||||
if (location() != DataLocation::Storage && !type->canLiveOutsideStorage())
|
||||
continue;
|
||||
members.push_back(MemberList::Member(
|
||||
members.emplace_back(
|
||||
variable->name(),
|
||||
copyForLocationIfReference(type),
|
||||
variable.get())
|
||||
variable.get()
|
||||
);
|
||||
}
|
||||
return members;
|
||||
@@ -2428,7 +2424,7 @@ FunctionType::FunctionType(VariableDeclaration const& _varDecl):
|
||||
if (auto mappingType = dynamic_cast<MappingType const*>(returnType.get()))
|
||||
{
|
||||
m_parameterTypes.push_back(mappingType->keyType());
|
||||
m_parameterNames.push_back("");
|
||||
m_parameterNames.emplace_back("");
|
||||
returnType = mappingType->valueType();
|
||||
}
|
||||
else if (auto arrayType = dynamic_cast<ArrayType const*>(returnType.get()))
|
||||
@@ -2437,7 +2433,7 @@ FunctionType::FunctionType(VariableDeclaration const& _varDecl):
|
||||
// Return byte arrays as whole.
|
||||
break;
|
||||
returnType = arrayType->baseType();
|
||||
m_parameterNames.push_back("");
|
||||
m_parameterNames.emplace_back("");
|
||||
m_parameterTypes.push_back(make_shared<IntegerType>(256));
|
||||
}
|
||||
else
|
||||
@@ -2468,7 +2464,7 @@ FunctionType::FunctionType(VariableDeclaration const& _varDecl):
|
||||
DataLocation::Memory,
|
||||
returnType
|
||||
));
|
||||
m_returnParameterNames.push_back("");
|
||||
m_returnParameterNames.emplace_back("");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2837,14 +2833,11 @@ MemberList::MemberMap FunctionType::nativeMembers(ContractDefinition const*) con
|
||||
{
|
||||
MemberList::MemberMap members;
|
||||
if (m_kind == Kind::External)
|
||||
members.push_back(MemberList::Member(
|
||||
"selector",
|
||||
make_shared<FixedBytesType>(4)
|
||||
));
|
||||
members.emplace_back("selector", make_shared<FixedBytesType>(4));
|
||||
if (m_kind != Kind::BareDelegateCall)
|
||||
{
|
||||
if (isPayable())
|
||||
members.push_back(MemberList::Member(
|
||||
members.emplace_back(
|
||||
"value",
|
||||
make_shared<FunctionType>(
|
||||
parseElementaryTypeVector({"uint"}),
|
||||
@@ -2858,10 +2851,10 @@ MemberList::MemberMap FunctionType::nativeMembers(ContractDefinition const*) con
|
||||
m_gasSet,
|
||||
m_valueSet
|
||||
)
|
||||
));
|
||||
);
|
||||
}
|
||||
if (m_kind != Kind::Creation)
|
||||
members.push_back(MemberList::Member(
|
||||
members.emplace_back(
|
||||
"gas",
|
||||
make_shared<FunctionType>(
|
||||
parseElementaryTypeVector({"uint"}),
|
||||
@@ -2875,7 +2868,7 @@ MemberList::MemberMap FunctionType::nativeMembers(ContractDefinition const*) con
|
||||
m_gasSet,
|
||||
m_valueSet
|
||||
)
|
||||
));
|
||||
);
|
||||
return members;
|
||||
}
|
||||
default:
|
||||
@@ -3203,24 +3196,24 @@ MemberList::MemberMap TypeType::nativeMembers(ContractDefinition const* _current
|
||||
if (contract.isLibrary())
|
||||
for (FunctionDefinition const* function: contract.definedFunctions())
|
||||
if (function->isVisibleAsLibraryMember())
|
||||
members.push_back(MemberList::Member(
|
||||
members.emplace_back(
|
||||
function->name(),
|
||||
FunctionType(*function).asCallableFunction(true),
|
||||
function
|
||||
));
|
||||
);
|
||||
if (isBase)
|
||||
{
|
||||
// We are accessing the type of a base contract, so add all public and protected
|
||||
// members. Note that this does not add inherited functions on purpose.
|
||||
for (Declaration const* decl: contract.inheritableMembers())
|
||||
members.push_back(MemberList::Member(decl->name(), decl->type(), decl));
|
||||
members.emplace_back(decl->name(), decl->type(), decl);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (auto const& stru: contract.definedStructs())
|
||||
members.push_back(MemberList::Member(stru->name(), stru->type(), stru));
|
||||
members.emplace_back(stru->name(), stru->type(), stru);
|
||||
for (auto const& enu: contract.definedEnums())
|
||||
members.push_back(MemberList::Member(enu->name(), enu->type(), enu));
|
||||
members.emplace_back(enu->name(), enu->type(), enu);
|
||||
}
|
||||
}
|
||||
else if (m_actualType->category() == Category::Enum)
|
||||
@@ -3228,7 +3221,7 @@ MemberList::MemberMap TypeType::nativeMembers(ContractDefinition const* _current
|
||||
EnumDefinition const& enumDef = dynamic_cast<EnumType const&>(*m_actualType).enumDefinition();
|
||||
auto enumType = make_shared<EnumType>(enumDef);
|
||||
for (ASTPointer<EnumValue> const& enumValue: enumDef.members())
|
||||
members.push_back(MemberList::Member(enumValue->name(), enumType));
|
||||
members.emplace_back(enumValue->name(), enumType);
|
||||
}
|
||||
return members;
|
||||
}
|
||||
@@ -3293,7 +3286,7 @@ MemberList::MemberMap ModuleType::nativeMembers(ContractDefinition const*) const
|
||||
MemberList::MemberMap symbols;
|
||||
for (auto const& symbolName: m_sourceUnit.annotation().exportedSymbols)
|
||||
for (Declaration const* symbol: symbolName.second)
|
||||
symbols.push_back(MemberList::Member(symbolName.first, symbol->type(), symbol));
|
||||
symbols.emplace_back(symbolName.first, symbol->type(), symbol);
|
||||
return symbols;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user