Improved error messages when converting to/from builtin functions

This commit is contained in:
Alex Beregszaszi
2020-12-10 22:38:15 +00:00
parent ff7e45f417
commit fa37e69c25
11 changed files with 25 additions and 15 deletions
+4 -1
View File
@@ -2171,7 +2171,8 @@ void TypeChecker::typeCheckFunctionGeneralChecks(
for (size_t i = 0; i < paramArgMap.size(); ++i)
{
solAssert(!!paramArgMap[i], "unmapped parameter");
if (!type(*paramArgMap[i])->isImplicitlyConvertibleTo(*parameterTypes[i]))
BoolResult result = type(*paramArgMap[i])->isImplicitlyConvertibleTo(*parameterTypes[i]);
if (!result)
{
auto [errorId, description] = [&]() -> tuple<ErrorId, string> {
string msg =
@@ -2181,6 +2182,8 @@ void TypeChecker::typeCheckFunctionGeneralChecks(
" to " +
parameterTypes[i]->toString() +
" requested.";
if (!result.message().empty())
msg += " " + result.message();
if (
_functionType->kind() == FunctionType::Kind::BareCall ||
_functionType->kind() == FunctionType::Kind::BareCallCode ||