Implement and fix overriding unimplemented and implemented functions with unimplemented functions.

This commit is contained in:
Daniel Kirchner
2019-12-05 09:26:43 +01:00
committed by chriseth
parent 2c72ee7017
commit 426f04b389
5 changed files with 37 additions and 33 deletions
@@ -0,0 +1,15 @@
abstract contract A {
function f() external virtual;
}
abstract contract B {
function f() external virtual {}
}
abstract contract C is A, B {
function f() external virtual override(A, B);
}
abstract contract D is B, A {
function f() external virtual override(A, B);
}
// ----
// TypeError: (154-199): Overriding an implemented function with an unimplemented function is not allowed.
// TypeError: (236-281): Overriding an implemented function with an unimplemented function is not allowed.
@@ -0,0 +1,9 @@
interface A {
function f() external;
}
interface B {
function f() external;
}
abstract contract C is A, B {
function f() external virtual override(A, B);
}