aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-11-22 21:41:07 +0800
committerchriseth <chris@ethereum.org>2018-11-22 22:24:45 +0800
commit9e964852cc1da9a30ba9ff995f5b9c5d10ea2d4a (patch)
tree20a4555959165f3688dc57cdfbd93ac1cb55885b
parentdc748bc7712257b4e027a7f99d86737dd9f93ecd (diff)
downloaddexon-solidity-9e964852cc1da9a30ba9ff995f5b9c5d10ea2d4a.tar
dexon-solidity-9e964852cc1da9a30ba9ff995f5b9c5d10ea2d4a.tar.gz
dexon-solidity-9e964852cc1da9a30ba9ff995f5b9c5d10ea2d4a.tar.bz2
dexon-solidity-9e964852cc1da9a30ba9ff995f5b9c5d10ea2d4a.tar.lz
dexon-solidity-9e964852cc1da9a30ba9ff995f5b9c5d10ea2d4a.tar.xz
dexon-solidity-9e964852cc1da9a30ba9ff995f5b9c5d10ea2d4a.tar.zst
dexon-solidity-9e964852cc1da9a30ba9ff995f5b9c5d10ea2d4a.zip
Rename 'asMemberFunction' to widen its purpose.
-rw-r--r--libsolidity/ast/Types.cpp8
-rw-r--r--libsolidity/ast/Types.h10
2 files changed, 9 insertions, 9 deletions
diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp
index 0eab75aa..95f461ec 100644
--- a/libsolidity/ast/Types.cpp
+++ b/libsolidity/ast/Types.cpp
@@ -443,7 +443,7 @@ MemberList::MemberMap Type::boundFunctions(Type const& _type, ContractDefinition
continue;
seenFunctions.insert(function);
FunctionType funType(*function, false);
- if (auto fun = funType.asMemberFunction(true, true))
+ if (auto fun = funType.asCallableFunction(true, true))
if (_type.isImplicitlyConvertibleTo(*fun->selfType()))
members.push_back(MemberList::Member(function->name(), fun, function));
}
@@ -1970,7 +1970,7 @@ MemberList::MemberMap ContractType::nativeMembers(ContractDefinition const* _con
for (auto const& it: m_contract.interfaceFunctions())
members.push_back(MemberList::Member(
it.second->declaration().name(),
- it.second->asMemberFunction(m_contract.isLibrary()),
+ it.second->asCallableFunction(m_contract.isLibrary()),
&it.second->declaration()
));
}
@@ -3059,7 +3059,7 @@ TypePointer FunctionType::copyAndSetGasOrValue(bool _setGas, bool _setValue) con
);
}
-FunctionTypePointer FunctionType::asMemberFunction(bool _inLibrary, bool _bound) const
+FunctionTypePointer FunctionType::asCallableFunction(bool _inLibrary, bool _bound) const
{
if (_bound && m_parameterTypes.empty())
return FunctionTypePointer();
@@ -3201,7 +3201,7 @@ MemberList::MemberMap TypeType::nativeMembers(ContractDefinition const* _current
if (function->isVisibleAsLibraryMember())
members.push_back(MemberList::Member(
function->name(),
- FunctionType(*function).asMemberFunction(true),
+ FunctionType(*function).asCallableFunction(true),
function
));
if (isBase)
diff --git a/libsolidity/ast/Types.h b/libsolidity/ast/Types.h
index 482d6735..3b3b2bdf 100644
--- a/libsolidity/ast/Types.h
+++ b/libsolidity/ast/Types.h
@@ -1154,14 +1154,14 @@ public:
/// of the parameters to false.
TypePointer copyAndSetGasOrValue(bool _setGas, bool _setValue) const;
- /// @returns a copy of this function type where all return parameters of dynamic size are
- /// removed and the location of reference types is changed from CallData to Memory.
- /// This is needed if external functions are called on other contracts, as they cannot return
- /// dynamic values.
+ /// @returns a copy of this function type where the location of reference types is changed
+ /// from CallData to Memory. This is the type that would be used when the function is
+ /// called, as opposed to the parameter types that are available inside the function body.
+ /// Also supports variants to be used for library or bound calls.
/// Returns empty shared pointer on a failure. Namely, if a bound function has no parameters.
/// @param _inLibrary if true, uses DelegateCall as location.
/// @param _bound if true, the arguments are placed as `arg1.functionName(arg2, ..., argn)`.
- FunctionTypePointer asMemberFunction(bool _inLibrary, bool _bound = false) const;
+ FunctionTypePointer asCallableFunction(bool _inLibrary, bool _bound = false) const;
private:
static TypePointers parseElementaryTypeVector(strings const& _types);