solidity/test/libsolidity/syntaxTests/inheritance/override/nonintermediate_common_base_and_unique_implementation_modifier.sol

20 lines
386 B
Solidity
Raw Normal View History

2019-12-09 15:14:22 +00:00
contract I {
2019-12-09 16:42:12 +00:00
modifier f() virtual { _; }
2019-12-09 15:14:22 +00:00
}
contract J {
2019-12-09 16:42:12 +00:00
modifier f() virtual { _; }
2019-12-09 15:14:22 +00:00
}
contract IJ is I, J {
modifier f() virtual override (I, J) { _; }
}
contract A is IJ
{
modifier f() override { _; }
}
contract B is IJ
{
}
contract C is A, B {}
// ----
2019-12-09 16:42:12 +00:00
// TypeError: (229-250): Derived contract must override modifier "f". Two or more base classes define modifier with same name.