2019-11-04 13:33:33 +00:00
|
|
|
abstract contract A {
|
2019-09-16 12:33:43 +00:00
|
|
|
int public testvar;
|
|
|
|
function foo() internal returns (uint256);
|
|
|
|
function test(uint8 _a) internal returns (uint256);
|
|
|
|
}
|
2019-11-04 13:33:33 +00:00
|
|
|
abstract contract B {
|
2019-09-16 12:33:43 +00:00
|
|
|
function foo() internal returns (uint256);
|
|
|
|
function test() internal returns (uint256);
|
|
|
|
}
|
2019-11-04 13:33:33 +00:00
|
|
|
abstract contract C {
|
2019-09-16 12:33:43 +00:00
|
|
|
function foo() internal returns (uint256);
|
|
|
|
}
|
2019-11-04 13:33:33 +00:00
|
|
|
abstract contract D {
|
2019-09-16 12:33:43 +00:00
|
|
|
function foo() internal returns (uint256);
|
|
|
|
function test() internal returns (uint256);
|
|
|
|
}
|
2019-11-04 13:33:33 +00:00
|
|
|
abstract contract X is A, B, C, D {
|
2019-09-16 12:33:43 +00:00
|
|
|
int public override testvar;
|
|
|
|
function test() internal override(B, D, C) returns (uint256);
|
|
|
|
function foo() internal override(A, C) returns (uint256);
|
|
|
|
}
|
|
|
|
// ----
|
2019-11-04 13:33:33 +00:00
|
|
|
// TypeError: (528-545): Invalid contract specified in override list: C.
|
|
|
|
// TypeError: (590-604): Function needs to specify overridden contracts B and D.
|