aboutsummaryrefslogtreecommitdiffstats
path: root/SolidityNameAndTypeResolution.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SolidityNameAndTypeResolution.cpp')
-rw-r--r--SolidityNameAndTypeResolution.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/SolidityNameAndTypeResolution.cpp b/SolidityNameAndTypeResolution.cpp
index df0e07e1..2fe3288a 100644
--- a/SolidityNameAndTypeResolution.cpp
+++ b/SolidityNameAndTypeResolution.cpp
@@ -638,6 +638,7 @@ BOOST_AUTO_TEST_CASE(state_variable_accessors)
" }\n"
"uint256 foo;\n"
"mapping(uint=>string4) map;\n"
+ "mapping(uint=>mapping(uint=>string4)) multiple_map;\n"
"}\n";
ASTPointer<SourceUnit> source;
@@ -649,10 +650,20 @@ BOOST_AUTO_TEST_CASE(state_variable_accessors)
auto returnParams = function->getReturnParameterTypeNames();
BOOST_CHECK_EQUAL(returnParams.at(0), "uint256");
BOOST_CHECK(function->isConstant());
+
function = retrieveFunctionBySignature(contract, "map(uint256)");
BOOST_REQUIRE(function && function->hasDeclaration());
- auto Params = function->getParameterTypeNames();
- BOOST_CHECK_EQUAL(returnParams.at(0), "uint256");
+ auto params = function->getParameterTypeNames();
+ BOOST_CHECK_EQUAL(params.at(0), "uint256");
+ returnParams = function->getReturnParameterTypeNames();
+ BOOST_CHECK_EQUAL(returnParams.at(0), "string4");
+ BOOST_CHECK(function->isConstant());
+
+ function = retrieveFunctionBySignature(contract, "multiple_map(uint256,uint256)");
+ BOOST_REQUIRE(function && function->hasDeclaration());
+ params = function->getParameterTypeNames();
+ BOOST_CHECK_EQUAL(params.at(0), "uint256");
+ BOOST_CHECK_EQUAL(params.at(1), "uint256");
returnParams = function->getReturnParameterTypeNames();
BOOST_CHECK_EQUAL(returnParams.at(0), "string4");
BOOST_CHECK(function->isConstant());