Changelog entry and tests.

This commit is contained in:
chriseth
2018-11-26 12:41:26 +01:00
parent 0f0e466d36
commit ac5803bf3e
5 changed files with 33 additions and 1 deletions
+15
View File
@@ -14062,6 +14062,21 @@ BOOST_AUTO_TEST_CASE(flipping_sign_tests)
ABI_CHECK(callContractFunction("f()"), encodeArgs(true));
}
BOOST_AUTO_TEST_CASE(external_public_override)
{
char const* sourceCode = R"(
contract A {
function f() external returns (uint) { return 1; }
}
contract B is A {
function f() public returns (uint) { return 2; }
function g() public returns (uint) { return f(); }
}
)";
compileAndRun(sourceCode);
ABI_CHECK(callContractFunction("f()"), encodeArgs(2));
ABI_CHECK(callContractFunction("g()"), encodeArgs(2));
}
BOOST_AUTO_TEST_SUITE_END()
}
@@ -0,0 +1,7 @@
contract A {
function f() external pure {}
}
contract B is A {
function f() public pure {
}
}
@@ -0,0 +1,10 @@
contract A {
function f() external pure {}
}
contract B is A {
function f() public pure {
super.f();
}
}
// ----
// TypeError: (106-113): Member "f" not found or not visible after argument-dependent lookup in contract super B.
@@ -4,4 +4,3 @@ contract C {
}
// ----
// DeclarationError: (17-66): Function with same name and arguments defined twice.
// TypeError: (17-66): Overriding function visibility differs.