aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-08-16 05:47:26 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-08-17 00:23:08 +0800
commit93be0dd92309c711e7a29dac5257067b837eb7f8 (patch)
treed5ed6dbbbfd8a81bcaa464806d3e4f5c4a3eea30 /libsolidity
parent4449820be3b23cb074c8db77915a799b3ff31c49 (diff)
downloaddexon-solidity-93be0dd92309c711e7a29dac5257067b837eb7f8.tar.gz
dexon-solidity-93be0dd92309c711e7a29dac5257067b837eb7f8.tar.zst
dexon-solidity-93be0dd92309c711e7a29dac5257067b837eb7f8.zip
FunctionType comparison/identifer to support all statemutability levels
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/ast/Types.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/libsolidity/ast/Types.cpp b/libsolidity/ast/Types.cpp
index 302f1022..e6664895 100644
--- a/libsolidity/ast/Types.cpp
+++ b/libsolidity/ast/Types.cpp
@@ -2215,10 +2215,7 @@ string FunctionType::identifier() const
case Kind::Require: id += "require";break;
default: solAssert(false, "Unknown function location."); break;
}
- if (isConstant())
- id += "_constant";
- if (isPayable())
- id += "_payable";
+ id += "_" + stateMutabilityToString(m_stateMutability);
id += identifierList(m_parameterTypes) + "returns" + identifierList(m_returnParameterTypes);
if (m_gasSet)
id += "gas";
@@ -2237,8 +2234,7 @@ bool FunctionType::operator==(Type const& _other) const
FunctionType const& other = dynamic_cast<FunctionType const&>(_other);
if (
m_kind != other.m_kind ||
- isConstant() != other.isConstant() ||
- isPayable() != other.isPayable() ||
+ m_stateMutability != other.stateMutability() ||
m_parameterTypes.size() != other.m_parameterTypes.size() ||
m_returnParameterTypes.size() != other.m_returnParameterTypes.size()
)
@@ -2300,10 +2296,8 @@ string FunctionType::toString(bool _short) const
for (auto it = m_parameterTypes.begin(); it != m_parameterTypes.end(); ++it)
name += (*it)->toString(_short) + (it + 1 == m_parameterTypes.end() ? "" : ",");
name += ")";
- if (isConstant())
- name += " constant";
- if (isPayable())
- name += " payable";
+ if (m_stateMutability != StateMutability::NonPayable)
+ name += " " + stateMutabilityToString(m_stateMutability);
if (m_kind == Kind::External)
name += " external";
if (!m_returnParameterTypes.empty())