diff options
author | Daniel Kirchner <daniel@ekpyron.org> | 2018-04-05 22:25:20 +0800 |
---|---|---|
committer | Daniel Kirchner <daniel@ekpyron.org> | 2018-04-09 21:26:08 +0800 |
commit | b918a105a40aa90fe9b89eecbcdfc7ac2937c141 (patch) | |
tree | a4dc43f3387888817455d03633b02850d86a9832 /libsolidity/analysis/StaticAnalyzer.cpp | |
parent | b8fdb666e235bb6b19f11dba7740227026111598 (diff) | |
download | dexon-solidity-b918a105a40aa90fe9b89eecbcdfc7ac2937c141.tar dexon-solidity-b918a105a40aa90fe9b89eecbcdfc7ac2937c141.tar.gz dexon-solidity-b918a105a40aa90fe9b89eecbcdfc7ac2937c141.tar.bz2 dexon-solidity-b918a105a40aa90fe9b89eecbcdfc7ac2937c141.tar.lz dexon-solidity-b918a105a40aa90fe9b89eecbcdfc7ac2937c141.tar.xz dexon-solidity-b918a105a40aa90fe9b89eecbcdfc7ac2937c141.tar.zst dexon-solidity-b918a105a40aa90fe9b89eecbcdfc7ac2937c141.zip |
Move constructor argument override check to TypeChecker and reuse annotations in ContractCompiler.
Diffstat (limited to 'libsolidity/analysis/StaticAnalyzer.cpp')
-rw-r--r-- | libsolidity/analysis/StaticAnalyzer.cpp | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/libsolidity/analysis/StaticAnalyzer.cpp b/libsolidity/analysis/StaticAnalyzer.cpp index 700c8a71..33b0e296 100644 --- a/libsolidity/analysis/StaticAnalyzer.cpp +++ b/libsolidity/analysis/StaticAnalyzer.cpp @@ -90,48 +90,6 @@ void StaticAnalyzer::endVisit(FunctionDefinition const&) m_localVarUseCount.clear(); } -bool StaticAnalyzer::visit(ModifierInvocation const& _modifier) -{ - if (!m_constructor) - return true; - - bool const v050 = m_currentContract->sourceUnit().annotation().experimentalFeatures.count(ExperimentalFeature::V050); - - if (auto contract = dynamic_cast<ContractDefinition const*>(_modifier.name()->annotation().referencedDeclaration)) - for (auto const& base: m_currentContract->annotation().linearizedBaseContracts) - for (auto const& specifier: base->baseContracts()) - { - Declaration const* parent = specifier->name().annotation().referencedDeclaration; - if (contract == parent && !specifier->arguments().empty()) - { - if (v050) - { - SecondarySourceLocation ssl; - ssl.append("Second constructor call is here:", specifier->location()); - - m_errorReporter.declarationError( - _modifier.location(), - ssl, - "Duplicated super constructor call." - ); - } - else - { - SecondarySourceLocation ssl; - ssl.append("Overridden constructor call is here:", specifier->location()); - - m_errorReporter.warning( - _modifier.location(), - "Duplicated super constructor calls are deprecated.", - ssl - ); - } - } - } - - return true; -} - bool StaticAnalyzer::visit(Identifier const& _identifier) { if (m_currentFunction) |