mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Override checks for modifiers.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
contract A {
|
||||
modifier f() virtual { _; }
|
||||
}
|
||||
contract B {
|
||||
modifier f() virtual { _; }
|
||||
}
|
||||
contract C is A, B {
|
||||
modifier f() override(A,B) { _; }
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
contract A {
|
||||
modifier f() virtual { _; }
|
||||
}
|
||||
contract B {
|
||||
modifier f() virtual { _; }
|
||||
}
|
||||
contract C is A, B {
|
||||
}
|
||||
// ----
|
||||
// THIS NEEDS TO BE AN ERROR
|
||||
@@ -1,5 +1,6 @@
|
||||
contract A { modifier mod(uint a) { _; } }
|
||||
contract B is A { modifier mod(uint8 a) { _; } }
|
||||
// ----
|
||||
// TypeError: (61-89): Overriding modifier is missing 'override' specifier.
|
||||
// TypeError: (61-89): Override changes modifier signature.
|
||||
// TypeError: (61-89): Overriding modifier is missing 'override' specifier.
|
||||
// TypeError: (13-40): Trying to override non-virtual modifier. Did you forget to add "virtual"?
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
contract A { modifier mod(uint a) { _; } }
|
||||
contract A { modifier mod(uint a) virtual { _; } }
|
||||
contract B is A { modifier mod(uint a) override { _; } }
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
contract A { modifier mod(uint a) { _; } }
|
||||
contract B is A { modifier mod(uint a) override { _; } }
|
||||
// ----
|
||||
// TypeError: (13-40): Trying to override non-virtual modifier. Did you forget to add "virtual"?
|
||||
Reference in New Issue
Block a user