aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-08-08 20:59:09 +0800
committerGitHub <noreply@github.com>2018-08-08 20:59:09 +0800
commitde8e9114fdba97ffa9e649f044066aec45ff4812 (patch)
treed115ad4a75798152068330d263ebbdf58805b3cc /libsolidity
parentfbc844317446adcc0c0e4772d5c20befdc9d2770 (diff)
parent99d3e8e45a7db18dedef5d1dde3cabd1e539efb2 (diff)
downloaddexon-solidity-de8e9114fdba97ffa9e649f044066aec45ff4812.tar
dexon-solidity-de8e9114fdba97ffa9e649f044066aec45ff4812.tar.gz
dexon-solidity-de8e9114fdba97ffa9e649f044066aec45ff4812.tar.bz2
dexon-solidity-de8e9114fdba97ffa9e649f044066aec45ff4812.tar.lz
dexon-solidity-de8e9114fdba97ffa9e649f044066aec45ff4812.tar.xz
dexon-solidity-de8e9114fdba97ffa9e649f044066aec45ff4812.tar.zst
dexon-solidity-de8e9114fdba97ffa9e649f044066aec45ff4812.zip
Merge pull request #4740 from ethereum/enforceNumberOfReturnValues
Disallow empty return in function with return arguments.
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/analysis/TypeChecker.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp
index bd3187ae..6882a14f 100644
--- a/libsolidity/analysis/TypeChecker.cpp
+++ b/libsolidity/analysis/TypeChecker.cpp
@@ -982,9 +982,13 @@ bool TypeChecker::visit(ForStatement const& _forStatement)
void TypeChecker::endVisit(Return const& _return)
{
+ ParameterList const* params = _return.annotation().functionReturnParameters;
if (!_return.expression())
+ {
+ if (params && !params->parameters().empty())
+ m_errorReporter.typeError(_return.location(), "Return arguments required.");
return;
- ParameterList const* params = _return.annotation().functionReturnParameters;
+ }
if (!params)
{
m_errorReporter.typeError(_return.location(), "Return arguments not allowed.");