aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-09-15 00:44:03 +0800
committerGitHub <noreply@github.com>2017-09-15 00:44:03 +0800
commit934b0d2f0daf0a45fb686ec5073dbd288d27f769 (patch)
tree8f18501d9ecbc97af0fc86df0cb2dd7027144ad8 /libsolidity/analysis
parent1c85ba10e13879f680579031234c911099433596 (diff)
parent67f96652f5701b581efcda8585ab5e765aa68344 (diff)
downloaddexon-solidity-934b0d2f0daf0a45fb686ec5073dbd288d27f769.tar
dexon-solidity-934b0d2f0daf0a45fb686ec5073dbd288d27f769.tar.gz
dexon-solidity-934b0d2f0daf0a45fb686ec5073dbd288d27f769.tar.bz2
dexon-solidity-934b0d2f0daf0a45fb686ec5073dbd288d27f769.tar.lz
dexon-solidity-934b0d2f0daf0a45fb686ec5073dbd288d27f769.tar.xz
dexon-solidity-934b0d2f0daf0a45fb686ec5073dbd288d27f769.tar.zst
dexon-solidity-934b0d2f0daf0a45fb686ec5073dbd288d27f769.zip
Merge pull request #2749 from ethereum/require-visibility
Warn if no visibility is specified on contract functions.
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r--libsolidity/analysis/SyntaxChecker.cpp14
-rw-r--r--libsolidity/analysis/SyntaxChecker.h1
2 files changed, 14 insertions, 1 deletions
diff --git a/libsolidity/analysis/SyntaxChecker.cpp b/libsolidity/analysis/SyntaxChecker.cpp
index d2571cd3..187eb26f 100644
--- a/libsolidity/analysis/SyntaxChecker.cpp
+++ b/libsolidity/analysis/SyntaxChecker.cpp
@@ -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())
diff --git a/libsolidity/analysis/SyntaxChecker.h b/libsolidity/analysis/SyntaxChecker.h
index fa34bab3..7fffbec0 100644
--- a/libsolidity/analysis/SyntaxChecker.h
+++ b/libsolidity/analysis/SyntaxChecker.h
@@ -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;