interface A {
    function foo() external returns (uint);
    function goo() external returns (uint);
}
interface B {
    function foo() external returns (uint);
    function goo() external returns (uint);
}
contract X is A, B {
	uint public override(A, B) foo;
    function goo() external virtual override(A, B) returns (uint) {}
}
abstract contract T is A {
    function foo() external virtual returns (uint);
    function goo() external virtual returns (uint);
}
contract Y is X, T {
}
// ----
// TypeError 6480: (466-488): Derived contract must override function "foo". Two or more base classes define function with same name and parameter types. Since one of the bases defines a public state variable which cannot be overridden, you have to change the inheritance layout or the names of the functions.
// TypeError 6480: (466-488): Derived contract must override function "goo". Two or more base classes define function with same name and parameter types.
