aboutsummaryrefslogtreecommitdiffstats
path: root/Types.cpp
diff options
context:
space:
mode:
authorGav Wood <g@ethdev.com>2015-04-21 23:32:01 +0800
committerGav Wood <g@ethdev.com>2015-04-21 23:32:01 +0800
commit5f6a396765c722eca567cee930bc7621a6a20807 (patch)
tree43232e413dd1a72f85199498680fce2af7804129 /Types.cpp
parent8cd5eed17dce30d704ca7187e350e588d896c658 (diff)
parent8125f93b12243836a3c2edea09715a58d1cc1764 (diff)
downloaddexon-solidity-5f6a396765c722eca567cee930bc7621a6a20807.tar.gz
dexon-solidity-5f6a396765c722eca567cee930bc7621a6a20807.tar.zst
dexon-solidity-5f6a396765c722eca567cee930bc7621a6a20807.zip
Merge pull request #1699 from chriseth/sol_fix_contractTypesAsArguments
Fix for Contract and Enum types as external function arguments.
Diffstat (limited to 'Types.cpp')
-rw-r--r--Types.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/Types.cpp b/Types.cpp
index 48796fd0..a445d56e 100644
--- a/Types.cpp
+++ b/Types.cpp
@@ -1128,7 +1128,7 @@ unsigned FunctionType::getSizeOnStack() const
return size;
}
-TypePointer FunctionType::externalType() const
+FunctionTypePointer FunctionType::externalFunctionType() const
{
TypePointers paramTypes;
TypePointers retParamTypes;
@@ -1136,13 +1136,13 @@ TypePointer FunctionType::externalType() const
for (auto type: m_parameterTypes)
{
if (!type->externalType())
- return TypePointer();
+ return FunctionTypePointer();
paramTypes.push_back(type->externalType());
}
for (auto type: m_returnParameterTypes)
{
if (!type->externalType())
- return TypePointer();
+ return FunctionTypePointer();
retParamTypes.push_back(type->externalType());
}
return make_shared<FunctionType>(paramTypes, retParamTypes, m_location, m_arbitraryParameters);
@@ -1218,7 +1218,7 @@ string FunctionType::externalSignature(std::string const& _name) const
}
string ret = funcName + "(";
- TypePointers externalParameterTypes = dynamic_cast<FunctionType const&>(*externalType()).getParameterTypes();
+ TypePointers externalParameterTypes = externalFunctionType()->getParameterTypes();
for (auto it = externalParameterTypes.cbegin(); it != externalParameterTypes.cend(); ++it)
{
solAssert(!!(*it), "Parameter should have external type");