Reject constant constructors

This commit is contained in:
Alex Beregszaszi authored and chriseth committed 2016-09-06 17:31:29 +02:00
1 parent 453490cb61
commit 319ec34093
1 file changed
+6 -2
+6 -2
View File
@@ -75,8 +75,12 @@ bool TypeChecker::visit(ContractDefinition const& _contract)
checkContractAbstractConstructors(_contract);
FunctionDefinition const* function = _contract.constructor();
if (function && !function->returnParameters().empty())
typeError(function->returnParameterList()->location(), "Non-empty \"returns\" directive for constructor.");
if (function) {
if (!function->returnParameters().empty())
typeError(function->returnParameterList()->location(), "Non-empty \"returns\" directive for constructor.");
if (function->isDeclaredConst())
typeError(function->location(), "Constructor cannot be defined as constant.");
}
FunctionDefinition const* fallbackFunction = nullptr;
for (FunctionDefinition const* function: _contract.definedFunctions())