Skip to content

Commit edb4bfa

Browse files
wechmancameel
authored andcommitted
ViewPureChecker: Extract reportFunctionCallMutability() helper from endVisit(FunctionCall)
1 parent 27df07c commit edb4bfa

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

libsolidity/analysis/ViewPureChecker.cpp

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -323,16 +323,23 @@ ViewPureChecker::MutabilityAndLocation const& ViewPureChecker::modifierMutabilit
323323
return m_inferredMutability.at(&_modifier);
324324
}
325325

326+
void ViewPureChecker::reportFunctionCallMutability(StateMutability _mutability, langutil::SourceLocation const& _location)
327+
{
328+
// We only require "nonpayable" to call a payable function.
329+
if (_mutability == StateMutability::Payable)
330+
_mutability = StateMutability::NonPayable;
331+
reportMutability(_mutability, _location);
332+
}
333+
326334
void ViewPureChecker::endVisit(FunctionCall const& _functionCall)
327335
{
328336
if (*_functionCall.annotation().kind != FunctionCallKind::FunctionCall)
329337
return;
330338

331-
StateMutability mutability = dynamic_cast<FunctionType const&>(*_functionCall.expression().annotation().type).stateMutability();
332-
// We only require "nonpayable" to call a payble function.
333-
if (mutability == StateMutability::Payable)
334-
mutability = StateMutability::NonPayable;
335-
reportMutability(mutability, _functionCall.location());
339+
reportFunctionCallMutability(
340+
dynamic_cast<FunctionType const&>(*_functionCall.expression().annotation().type).stateMutability(),
341+
_functionCall.location()
342+
);
336343
}
337344

338345
bool ViewPureChecker::visit(MemberAccess const& _memberAccess)

libsolidity/analysis/ViewPureChecker.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ class ViewPureChecker: private ASTConstVisitor
7373
std::optional<langutil::SourceLocation> const& _nestedLocation = {}
7474
);
7575

76+
void reportFunctionCallMutability(StateMutability _mutability, langutil::SourceLocation const& _location);
77+
7678
/// Determines the mutability of modifier if not already cached.
7779
MutabilityAndLocation const& modifierMutability(ModifierDefinition const& _modifier);
7880

0 commit comments

Comments
 (0)