Check that constructor does not have "returns" directive.

This commit is contained in:
Christian
2014-12-15 16:09:50 +01:00
parent 40f7c32e57
commit c40725c22a
3 changed files with 16 additions and 5 deletions
+11
View File
@@ -39,6 +39,17 @@ TypeError ASTNode::createTypeError(string const& _description) const
return TypeError() << errinfo_sourceLocation(getLocation()) << errinfo_comment(_description);
}
void ContractDefinition::checkTypeRequirements()
{
FunctionDefinition const* constructor = getConstructor();
if (constructor && !constructor->getReturnParameters().empty())
BOOST_THROW_EXCEPTION(constructor->getReturnParameterList()->createTypeError(
"Non-empty \"returns\" directive for constructor."));
for (ASTPointer<FunctionDefinition> const& function: getDefinedFunctions())
function->checkTypeRequirements();
}
vector<FunctionDefinition const*> ContractDefinition::getInterfaceFunctions() const
{
vector<FunctionDefinition const*> exportedFunctions;