Added error message for virtual (library) functions; test case

This commit is contained in:
hrkrshnn 2020-04-03 13:26:57 +05:30
parent 3beaae6822
commit 042ccd24ab
2 changed files with 7 additions and 0 deletions

View File

@ -332,6 +332,8 @@ bool TypeChecker::visit(FunctionDefinition const& _function)
m_errorReporter.warning(_function.location(), "Interface functions are implicitly \"virtual\"");
if (_function.visibility() == Visibility::Private)
m_errorReporter.typeError(_function.location(), "\"virtual\" and \"private\" cannot be used together.");
if (isLibraryFunction)
m_errorReporter.typeError(_function.location(), "Library functions cannot be \"virtual\".");
}
if (_function.isPayable())

View File

@ -0,0 +1,5 @@
library L {
function f() internal pure virtual returns (uint) { return 0; }
}
// ----
// TypeError: (16-79): Library functions cannot be "virtual".