aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Kundt <bitshift@posteo.org>2018-03-29 00:10:32 +0800
committerErik Kundt <bitshift@posteo.org>2018-04-03 17:16:50 +0800
commitf9efa417492916546d23115da7a55e86090d47dd (patch)
tree163154bd1c147b9942923244aa09993f2dd0e45c
parent601659c3844767686a324ea363498e85320c92b1 (diff)
downloaddexon-solidity-f9efa417492916546d23115da7a55e86090d47dd.tar
dexon-solidity-f9efa417492916546d23115da7a55e86090d47dd.tar.gz
dexon-solidity-f9efa417492916546d23115da7a55e86090d47dd.tar.bz2
dexon-solidity-f9efa417492916546d23115da7a55e86090d47dd.tar.lz
dexon-solidity-f9efa417492916546d23115da7a55e86090d47dd.tar.xz
dexon-solidity-f9efa417492916546d23115da7a55e86090d47dd.tar.zst
dexon-solidity-f9efa417492916546d23115da7a55e86090d47dd.zip
Makes visibility warning more concise.
-rw-r--r--libsolidity/analysis/StaticAnalyzer.cpp6
-rw-r--r--test/libsolidity/syntaxTests/visibility/interface/function_default.sol2
2 files changed, 5 insertions, 3 deletions
diff --git a/libsolidity/analysis/StaticAnalyzer.cpp b/libsolidity/analysis/StaticAnalyzer.cpp
index 20464765..d96f8748 100644
--- a/libsolidity/analysis/StaticAnalyzer.cpp
+++ b/libsolidity/analysis/StaticAnalyzer.cpp
@@ -51,12 +51,14 @@ void StaticAnalyzer::endVisit(ContractDefinition const&)
bool StaticAnalyzer::visit(FunctionDefinition const& _function)
{
const bool isInterface = m_currentContract->contractKind() == ContractDefinition::ContractKind::Interface;
+
if (_function.noVisibilitySpecified())
m_errorReporter.warning(
_function.location(),
"No visibility specified. Defaulting to \"" +
- (isInterface ? "external" : Declaration::visibilityToString(_function.visibility())) +
- "\"."
+ Declaration::visibilityToString(_function.visibility()) +
+ "\". " +
+ (isInterface ? "In interfaces it defaults to external." : "")
);
if (_function.isImplemented())
m_currentFunction = &_function;
diff --git a/test/libsolidity/syntaxTests/visibility/interface/function_default.sol b/test/libsolidity/syntaxTests/visibility/interface/function_default.sol
index 9889d038..7b9044dd 100644
--- a/test/libsolidity/syntaxTests/visibility/interface/function_default.sol
+++ b/test/libsolidity/syntaxTests/visibility/interface/function_default.sol
@@ -3,4 +3,4 @@ interface I {
}
// ----
// Warning: Functions in interfaces should be declared external.
-// Warning: No visibility specified. Defaulting to "external".
+// Warning: No visibility specified. Defaulting to "public". In interfaces it defaults to external.