mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
commit
a29493120e
@ -39,6 +39,8 @@
|
|||||||
#include <boost/algorithm/string/predicate.hpp>
|
#include <boost/algorithm/string/predicate.hpp>
|
||||||
#include <boost/range/adaptor/reversed.hpp>
|
#include <boost/range/adaptor/reversed.hpp>
|
||||||
|
|
||||||
|
#include <range/v3/view/zip.hpp>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@ -980,18 +982,17 @@ void TypeChecker::endVisit(TryStatement const& _tryStatement)
|
|||||||
to_string(parameters.size()) +
|
to_string(parameters.size()) +
|
||||||
" variables."
|
" variables."
|
||||||
);
|
);
|
||||||
size_t len = min(returnTypes.size(), parameters.size());
|
for (auto&& [parameter, returnType]: ranges::views::zip(parameters, returnTypes))
|
||||||
for (size_t i = 0; i < len; ++i)
|
|
||||||
{
|
{
|
||||||
solAssert(returnTypes[i], "");
|
solAssert(returnType, "");
|
||||||
if (parameters[i] && *parameters[i]->annotation().type != *returnTypes[i])
|
if (parameter && *parameter->annotation().type != *returnType)
|
||||||
m_errorReporter.typeError(
|
m_errorReporter.typeError(
|
||||||
6509_error,
|
6509_error,
|
||||||
parameters[i]->location(),
|
parameter->location(),
|
||||||
"Invalid type, expected " +
|
"Invalid type, expected " +
|
||||||
returnTypes[i]->toString(false) +
|
returnType->toString(false) +
|
||||||
" but got " +
|
" but got " +
|
||||||
parameters[i]->annotation().type->toString() +
|
parameter->annotation().type->toString() +
|
||||||
"."
|
"."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user