aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLefteris Karapetsas <lefteris@refu.co>2015-03-30 21:14:59 +0800
committerLefteris Karapetsas <lefteris@refu.co>2015-03-30 21:14:59 +0800
commit819d9fd5a665d33f5c3b08ddf50eca3426c28e01 (patch)
tree0d01bb613d4a7af01050bd9e27785736d67a42d3
parentf728a336b1af6ae25b5cb5282119bef8f55c08b6 (diff)
downloaddexon-solidity-819d9fd5a665d33f5c3b08ddf50eca3426c28e01.tar
dexon-solidity-819d9fd5a665d33f5c3b08ddf50eca3426c28e01.tar.gz
dexon-solidity-819d9fd5a665d33f5c3b08ddf50eca3426c28e01.tar.bz2
dexon-solidity-819d9fd5a665d33f5c3b08ddf50eca3426c28e01.tar.lz
dexon-solidity-819d9fd5a665d33f5c3b08ddf50eca3426c28e01.tar.xz
dexon-solidity-819d9fd5a665d33f5c3b08ddf50eca3426c28e01.tar.zst
dexon-solidity-819d9fd5a665d33f5c3b08ddf50eca3426c28e01.zip
Detect if non-existant parameter is documented with natspec
-rw-r--r--InterfaceHandler.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/InterfaceHandler.cpp b/InterfaceHandler.cpp
index 2f35a96f..aacbbfd7 100644
--- a/InterfaceHandler.cpp
+++ b/InterfaceHandler.cpp
@@ -175,8 +175,17 @@ std::unique_ptr<std::string> InterfaceHandler::getDevDocumentation(ContractDefin
method["author"] = m_author;
Json::Value params(Json::objectValue);
+ std::vector<std::string> paramNames = it.second->getParameterNames();
for (auto const& pair: m_params)
+ {
+ if (find(paramNames.begin(), paramNames.end(), pair.first) == paramNames.end())
+ // LTODO: mismatching parameter name, throw some form of warning and not just an exception
+ BOOST_THROW_EXCEPTION(
+ DocstringParsingError() <<
+ errinfo_comment("documented parameter \"" + pair.first + "\" not found found in the function")
+ );
params[pair.first] = pair.second;
+ }
if (!m_params.empty())
method["params"] = params;