Remove InternalCompilerError on abstract contract instantiation.

This commit is contained in:
Alexander Arlt 2019-10-26 15:51:03 -05:00
parent cd3ad73b5a
commit c908c16acd
2 changed files with 15 additions and 0 deletions

View File

@ -2156,6 +2156,9 @@ void TypeChecker::endVisit(NewExpression const& _newExpression)
if (contract->abstract() || !contract->annotation().unimplementedFunctions.empty())
m_errorReporter.typeError(_newExpression.location(), "Cannot instantiate an abstract contract.");
if (contract->abstract())
m_errorReporter.typeError(_newExpression.location(), "Cannot instantiate an abstract contract.");
solAssert(!!m_scope, "");
m_scope->annotation().contractDependencies.insert(contract);
solAssert(

View File

@ -0,0 +1,12 @@
abstract contract AbstractContract {
constructor() public { }
function utterance() public returns (bytes32) { return "miaow"; }
}
contract Test {
function create() public {
AbstractContract ac = new AbstractContract();
}
}
// ----
// TypeError: (215-235): Cannot instantiate an abstract contract.