mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Warn if no visibility is specified on contract functions.
This commit is contained in:
@@ -138,7 +138,7 @@ bool SyntaxChecker::visit(WhileStatement const&)
|
||||
return true;
|
||||
}
|
||||
|
||||
void SyntaxChecker::endVisit(WhileStatement const& )
|
||||
void SyntaxChecker::endVisit(WhileStatement const&)
|
||||
{
|
||||
m_inLoopDepth--;
|
||||
}
|
||||
@@ -193,6 +193,18 @@ bool SyntaxChecker::visit(PlaceholderStatement const&)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SyntaxChecker::visit(FunctionDefinition const& _function)
|
||||
{
|
||||
if (_function.noVisibilitySpecified())
|
||||
m_errorReporter.warning(
|
||||
_function.location(),
|
||||
"No visibility specified. Defaulting to \"" +
|
||||
Declaration::visibilityToString(_function.visibility()) +
|
||||
"\"."
|
||||
);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SyntaxChecker::visit(FunctionTypeName const& _node)
|
||||
{
|
||||
for (auto const& decl: _node.parameterTypeList()->parameters())
|
||||
|
||||
@@ -66,6 +66,7 @@ private:
|
||||
|
||||
virtual bool visit(PlaceholderStatement const& _placeholderStatement) override;
|
||||
|
||||
virtual bool visit(FunctionDefinition const& _function) override;
|
||||
virtual bool visit(FunctionTypeName const& _node) override;
|
||||
|
||||
ErrorReporter& m_errorReporter;
|
||||
|
||||
@@ -180,6 +180,7 @@ public:
|
||||
|
||||
/// @returns the declared name.
|
||||
ASTString const& name() const { return *m_name; }
|
||||
bool noVisibilitySpecified() const { return m_visibility == Visibility::Default; }
|
||||
Visibility visibility() const { return m_visibility == Visibility::Default ? defaultVisibility() : m_visibility; }
|
||||
bool isPublic() const { return visibility() >= Visibility::Public; }
|
||||
virtual bool isVisibleInContract() const { return visibility() != Visibility::External; }
|
||||
|
||||
Reference in New Issue
Block a user