aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/analysis
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-09-12 18:07:28 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-09-12 19:06:16 +0800
commitda1a53e02a897117e190ef91ec8b1f63f6629a9f (patch)
tree0503dce5dcd19393f856555cd9e65c74a4a9969e /libsolidity/analysis
parent4cb5502faa2004d738c25e4dcdf4f6678540017e (diff)
downloaddexon-solidity-da1a53e02a897117e190ef91ec8b1f63f6629a9f.tar.gz
dexon-solidity-da1a53e02a897117e190ef91ec8b1f63f6629a9f.tar.zst
dexon-solidity-da1a53e02a897117e190ef91ec8b1f63f6629a9f.zip
Use secondary source location as a vector in same declaration errors
Diffstat (limited to 'libsolidity/analysis')
-rw-r--r--libsolidity/analysis/TypeChecker.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index d2151cda..0dfae070 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -174,18 +174,20 @@ void TypeChecker::checkContractDuplicateFunctions(ContractDefinition const& _con
{
vector<FunctionDefinition const*> const& overloads = it.second;
for (size_t i = 0; i < overloads.size(); ++i)
+ {
+ SecondarySourceLocation ssl;
+
for (size_t j = i + 1; j < overloads.size(); ++j)
if (FunctionType(*overloads[i]).hasEqualArgumentTypes(FunctionType(*overloads[j])))
- {
- m_errorReporter.declarationError(
- overloads[j]->location(),
- SecondarySourceLocation().append(
- "Other declaration is here:",
- overloads[i]->location()
- ),
- "Function with same name and arguments defined twice."
- );
- }
+ ssl.append("Other declaration is here:", overloads[j]->location());
+
+ if (ssl.infos.size() > 0)
+ m_errorReporter.declarationError(
+ overloads[i]->location(),
+ ssl,
+ "Function with same name and arguments defined twice."
+ );
+ }
}
}