mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Show unimplemented function if trying to instantiate an abstract class
This commit is contained in:
@@ -1523,7 +1523,14 @@ void TypeChecker::endVisit(NewExpression const& _newExpression)
|
||||
if (!contract)
|
||||
m_errorReporter.fatalTypeError(_newExpression.location(), "Identifier is not a contract.");
|
||||
if (!contract->annotation().unimplementedFunctions.empty())
|
||||
m_errorReporter.typeError(_newExpression.location(), "Trying to create an instance of an abstract contract.");
|
||||
m_errorReporter.typeError(
|
||||
_newExpression.location(),
|
||||
SecondarySourceLocation().append(
|
||||
"Missing implementation:",
|
||||
contract->annotation().unimplementedFunctions.front()->location()
|
||||
),
|
||||
"Trying to create an instance of an abstract contract."
|
||||
);
|
||||
if (!contract->constructorIsPublic())
|
||||
m_errorReporter.typeError(_newExpression.location(), "Contract with internal constructor cannot be created directly.");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user