mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[libsolidity] TryStatement: Adding AST accessors for success/structured/fail clauses.
This commit is contained in:
parent
79a44b8170
commit
3b83365b42
@ -756,3 +756,25 @@ string Literal::getChecksummedAddress() const
|
|||||||
address.insert(address.begin(), 40 - address.size(), '0');
|
address.insert(address.begin(), 40 - address.size(), '0');
|
||||||
return util::getChecksummedAddress(address);
|
return util::getChecksummedAddress(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TryCatchClause const* TryStatement::successClause() const
|
||||||
|
{
|
||||||
|
solAssert(m_clauses.size() > 0, "");
|
||||||
|
return m_clauses[0].get();
|
||||||
|
}
|
||||||
|
|
||||||
|
TryCatchClause const* TryStatement::structuredClause() const
|
||||||
|
{
|
||||||
|
for (size_t i = 1; i < m_clauses.size(); ++i)
|
||||||
|
if (m_clauses[i]->errorName() == "Error")
|
||||||
|
return m_clauses[i].get();
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
TryCatchClause const* TryStatement::fallbackClause() const
|
||||||
|
{
|
||||||
|
for (size_t i = 1; i < m_clauses.size(); ++i)
|
||||||
|
if (m_clauses[i]->errorName().empty())
|
||||||
|
return m_clauses[i].get();
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
@ -1451,6 +1451,10 @@ public:
|
|||||||
Expression const& externalCall() const { return *m_externalCall; }
|
Expression const& externalCall() const { return *m_externalCall; }
|
||||||
std::vector<ASTPointer<TryCatchClause>> const& clauses() const { return m_clauses; }
|
std::vector<ASTPointer<TryCatchClause>> const& clauses() const { return m_clauses; }
|
||||||
|
|
||||||
|
TryCatchClause const* successClause() const;
|
||||||
|
TryCatchClause const* structuredClause() const;
|
||||||
|
TryCatchClause const* fallbackClause() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ASTPointer<Expression> m_externalCall;
|
ASTPointer<Expression> m_externalCall;
|
||||||
std::vector<ASTPointer<TryCatchClause>> m_clauses;
|
std::vector<ASTPointer<TryCatchClause>> m_clauses;
|
||||||
|
Loading…
Reference in New Issue
Block a user