Disallow empty return expressions in functions with non-empty return parameters.

This commit is contained in:
Daniel Kirchner
2018-08-07 20:48:07 +02:00
parent d7756322c0
commit cc83e69469
2 changed files with 7 additions and 2 deletions
+6 -2
View File
@@ -979,9 +979,13 @@ bool TypeChecker::visit(ForStatement const& _forStatement)
void TypeChecker::endVisit(Return const& _return)
{
if (!_return.expression())
return;
ParameterList const* params = _return.annotation().functionReturnParameters;
if (!_return.expression())
{
if (params && !params->parameters().empty())
m_errorReporter.typeError(_return.location(), "Return arguments required.");
return;
}
if (!params)
{
m_errorReporter.typeError(_return.location(), "Return arguments not allowed.");