aboutsummaryrefslogtreecommitdiffstats
path: root/AST.cpp
diff options
context:
space:
mode:
authorLefteris Karapetsas <lefteris@refu.co>2015-01-07 00:42:38 +0800
committerLefteris Karapetsas <lefteris@refu.co>2015-01-07 00:42:38 +0800
commit5e875ee072134f867203c920d723f08b08ec67ab (patch)
treece5530aecabffc652b02f80851c1bfe5a9b2d797 /AST.cpp
parentca733fd31900691bf58522f49811ceb0a00f9042 (diff)
downloaddexon-solidity-5e875ee072134f867203c920d723f08b08ec67ab.tar
dexon-solidity-5e875ee072134f867203c920d723f08b08ec67ab.tar.gz
dexon-solidity-5e875ee072134f867203c920d723f08b08ec67ab.tar.bz2
dexon-solidity-5e875ee072134f867203c920d723f08b08ec67ab.tar.lz
dexon-solidity-5e875ee072134f867203c920d723f08b08ec67ab.tar.xz
dexon-solidity-5e875ee072134f867203c920d723f08b08ec67ab.tar.zst
dexon-solidity-5e875ee072134f867203c920d723f08b08ec67ab.zip
Creating the canonical signature of a function, for later use in the ABI
Diffstat (limited to 'AST.cpp')
-rw-r--r--AST.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/AST.cpp b/AST.cpp
index 1fa6d8f6..62952521 100644
--- a/AST.cpp
+++ b/AST.cpp
@@ -110,6 +110,23 @@ void FunctionDefinition::checkTypeRequirements()
m_body->checkTypeRequirements();
}
+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 += ",";
+ }
+ }
+ ret += ")";
+ return ret;
+}
+
void Block::checkTypeRequirements()
{
for (shared_ptr<Statement> const& statement: m_statements)