Browse Source

FunctionType also gets CanonicalSignature

- also using iterators in the signature creation function
cl-refactor
Lefteris Karapetsas 10 years ago
parent
commit
0c003958b9
  1. 14
      libsolidity/AST.cpp
  2. 11
      libsolidity/Types.cpp
  3. 1
      libsolidity/Types.h

14
libsolidity/AST.cpp

@ -114,18 +114,10 @@ std::string FunctionDefinition::getCanonicalSignature()
{
auto parameters = getParameters();
std::string ret = getName() + "(";
unsigned int i = 1;
for (ASTPointer<VariableDeclaration> const& member: parameters)
{
ret += member->getType()->toString();
if (i != parameters.size()) {
ret += ",";
}
i++;
}
ret += ")";
return ret;
for (auto it = parameters.cbegin(); it != parameters.cend(); ++it)
ret += (*it)->getType()->toString() + (it + 1 == parameters.end() ? "" : ",");
return ret + ")";
}
void Block::checkTypeRequirements()

11
libsolidity/Types.cpp

@ -452,6 +452,17 @@ unsigned FunctionType::getSizeOnStack() const
}
}
std::string FunctionType::getCanonicalSignature() const
{
auto parameters = getParameterTypes();
std::string ret = "NAME("; //TODO: how to get function name from FunctionType
for (auto it = parameters.cbegin(); it != parameters.cend(); ++it)
ret += (*it)->toString() + (it + 1 == m_parameterTypes.end() ? "" : ",");
return ret + ")";
}
bool MappingType::operator==(Type const& _other) const
{
if (_other.getCategory() != getCategory())

1
libsolidity/Types.h

@ -325,6 +325,7 @@ public:
virtual unsigned getSizeOnStack() const override;
Location const& getLocation() const { return m_location; }
std::string getCanonicalSignature() const;
private:
TypePointers m_parameterTypes;

Loading…
Cancel
Save