mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Improve failure message when generating getter.
This commit is contained in:
parent
8da9239c83
commit
ddd9a84141
@ -592,7 +592,14 @@ bool TypeChecker::visit(VariableDeclaration const& _variable)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (!getter.interfaceFunctionType())
|
if (!getter.interfaceFunctionType())
|
||||||
m_errorReporter.typeError(6744_error, _variable.location(), "Internal or recursive type is not allowed for public state variables.");
|
{
|
||||||
|
solAssert(getter.returnParameterNames().size() == getter.returnParameterTypes().size());
|
||||||
|
solAssert(getter.parameterNames().size() == getter.parameterTypes().size());
|
||||||
|
if (getter.returnParameterTypes().empty() && getter.parameterTypes().empty())
|
||||||
|
m_errorReporter.typeError(5359_error, _variable.location(), "The struct has all its members omitted, therefore the getter cannot return any values.");
|
||||||
|
else
|
||||||
|
m_errorReporter.typeError(6744_error, _variable.location(), "Internal or recursive type is not allowed for public state variables.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isStructMemberDeclaration = dynamic_cast<StructDefinition const*>(_variable.scope()) != nullptr;
|
bool isStructMemberDeclaration = dynamic_cast<StructDefinition const*>(_variable.scope()) != nullptr;
|
||||||
|
@ -3,4 +3,4 @@ contract test {
|
|||||||
Data public data;
|
Data public data;
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// TypeError 6744: (58-74): Internal or recursive type is not allowed for public state variables.
|
// TypeError 5359: (58-74): The struct has all its members omitted, therefore the getter cannot return any values.
|
||||||
|
Loading…
Reference in New Issue
Block a user