aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-09-06 22:05:35 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-09-11 22:58:30 +0800
commit7ed938b95e3061ee6b1782e09abccf1b26092b53 (patch)
tree8a1f24a225519f8edd60fa6ec73d0202822228fd
parentfbe24da159452f8b22206b6e750174ed03b43ade (diff)
downloaddexon-solidity-7ed938b95e3061ee6b1782e09abccf1b26092b53.tar.gz
dexon-solidity-7ed938b95e3061ee6b1782e09abccf1b26092b53.tar.zst
dexon-solidity-7ed938b95e3061ee6b1782e09abccf1b26092b53.zip
Change retrieveContract to take name and not index
-rw-r--r--test/libsolidity/AnalysisFramework.cpp6
-rw-r--r--test/libsolidity/AnalysisFramework.h2
-rw-r--r--test/libsolidity/SolidityNameAndTypeResolution.cpp4
3 files changed, 6 insertions, 6 deletions
diff --git a/test/libsolidity/AnalysisFramework.cpp b/test/libsolidity/AnalysisFramework.cpp
index 71bb4ca7..5f5f6411 100644
--- a/test/libsolidity/AnalysisFramework.cpp
+++ b/test/libsolidity/AnalysisFramework.cpp
@@ -106,12 +106,12 @@ void AnalysisFramework::printErrors()
);
}
-ContractDefinition const* AnalysisFramework::retrieveContract(SourceUnit const& _source, unsigned index)
+ContractDefinition const* AnalysisFramework::retrieveContractByName(SourceUnit const& _source, string const& _name)
{
ContractDefinition* contract = nullptr;
- unsigned counter = 0;
+
for (shared_ptr<ASTNode> const& node: _source.nodes())
- if ((contract = dynamic_cast<ContractDefinition*>(node.get())) && counter == index)
+ if ((contract = dynamic_cast<ContractDefinition*>(node.get())) && contract->name() == _name)
return contract;
return nullptr;
diff --git a/test/libsolidity/AnalysisFramework.h b/test/libsolidity/AnalysisFramework.h
index 0cdedaea..f73f06c2 100644
--- a/test/libsolidity/AnalysisFramework.h
+++ b/test/libsolidity/AnalysisFramework.h
@@ -59,7 +59,7 @@ protected:
void printErrors();
- ContractDefinition const* retrieveContract(SourceUnit const& _source, unsigned index);
+ ContractDefinition const* retrieveContractByName(SourceUnit const& _source, std::string const& _name);
FunctionTypePointer retrieveFunctionBySignature(
ContractDefinition const& _contract,
std::string const& _signature
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp
index 94404781..7bef8fec 100644
--- a/test/libsolidity/SolidityNameAndTypeResolution.cpp
+++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp
@@ -976,7 +976,7 @@ BOOST_AUTO_TEST_CASE(state_variable_accessors)
SourceUnit const* source;
ContractDefinition const* contract;
source = parseAndAnalyse(text);
- BOOST_REQUIRE((contract = retrieveContract(*source, 0)) != nullptr);
+ BOOST_REQUIRE((contract = retrieveContractByName(*source, "test")) != nullptr);
FunctionTypePointer function = retrieveFunctionBySignature(*contract, "foo()");
BOOST_REQUIRE(function && function->hasDeclaration());
auto returnParams = function->returnParameterTypes();
@@ -1029,7 +1029,7 @@ BOOST_AUTO_TEST_CASE(private_state_variable)
ContractDefinition const* contract;
SourceUnit const* source = parseAndAnalyse(text);
- BOOST_CHECK((contract = retrieveContract(*source, 0)) != nullptr);
+ BOOST_CHECK((contract = retrieveContractByName(*source, "test")) != nullptr);
FunctionTypePointer function;
function = retrieveFunctionBySignature(*contract, "foo()");
BOOST_CHECK_MESSAGE(function == nullptr, "Accessor function of a private variable should not exist");