From 01a1296e90e48d64d5494ab4ba9231911ec72ac9 Mon Sep 17 00:00:00 2001 From: chriseth Date: Thu, 6 Jul 2017 11:05:05 +0200 Subject: Helper functions. --- libsolidity/ast/AST.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'libsolidity/ast/AST.cpp') diff --git a/libsolidity/ast/AST.cpp b/libsolidity/ast/AST.cpp index 403f4b79..724a908f 100644 --- a/libsolidity/ast/AST.cpp +++ b/libsolidity/ast/AST.cpp @@ -416,6 +416,23 @@ bool VariableDeclaration::isCallableParameter() const return false; } +bool VariableDeclaration::isLocalOrReturn() const +{ + return isReturnParameter() || (isLocalVariable() && !isCallableParameter()); +} + +bool VariableDeclaration::isReturnParameter() const +{ + auto const* callable = dynamic_cast(scope()); + if (!callable) + return false; + if (callable->returnParameterList()) + for (auto const& variable: callable->returnParameterList()->parameters()) + if (variable.get() == this) + return true; + return false; +} + bool VariableDeclaration::isExternalCallableParameter() const { auto const* callable = dynamic_cast(scope()); -- cgit v1.2.3