diff options
author | Gav Wood <g@ethdev.com> | 2015-04-21 23:32:01 +0800 |
---|---|---|
committer | Gav Wood <g@ethdev.com> | 2015-04-21 23:32:01 +0800 |
commit | 5f6a396765c722eca567cee930bc7621a6a20807 (patch) | |
tree | 43232e413dd1a72f85199498680fce2af7804129 /Types.cpp | |
parent | 8cd5eed17dce30d704ca7187e350e588d896c658 (diff) | |
parent | 8125f93b12243836a3c2edea09715a58d1cc1764 (diff) | |
download | dexon-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.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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"); |