mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Extract referencedDeclaration as helper.
This commit is contained in:
@@ -122,13 +122,3 @@ string IRNames::zeroValue(Type const& _type, string const& _variableName)
|
||||
{
|
||||
return "zero_" + _type.identifier() + _variableName;
|
||||
}
|
||||
|
||||
FunctionDefinition const* IRHelpers::referencedFunctionDeclaration(Expression const& _expression)
|
||||
{
|
||||
if (auto memberAccess = dynamic_cast<MemberAccess const*>(&_expression))
|
||||
return dynamic_cast<FunctionDefinition const*>(memberAccess->annotation().referencedDeclaration);
|
||||
else if (auto identifier = dynamic_cast<Identifier const*>(&_expression))
|
||||
return dynamic_cast<FunctionDefinition const*>(identifier->annotation().referencedDeclaration);
|
||||
else
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -66,11 +66,6 @@ struct IRNames
|
||||
static std::string zeroValue(Type const& _type, std::string const& _variableName);
|
||||
};
|
||||
|
||||
struct IRHelpers
|
||||
{
|
||||
static FunctionDefinition const* referencedFunctionDeclaration(Expression const& _expression);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
// Overloading std::less() makes it possible to use YulArity as a map key. We could define operator<
|
||||
|
||||
@@ -903,7 +903,9 @@ void IRGeneratorForStatements::endVisit(FunctionCall const& _functionCall)
|
||||
case FunctionType::Kind::Internal:
|
||||
{
|
||||
auto identifier = dynamic_cast<Identifier const*>(&_functionCall.expression());
|
||||
FunctionDefinition const* functionDef = IRHelpers::referencedFunctionDeclaration(_functionCall.expression());
|
||||
auto const* functionDef = dynamic_cast<FunctionDefinition const*>(
|
||||
ASTNode::referencedDeclaration(_functionCall.expression())
|
||||
);
|
||||
|
||||
if (functionDef)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user