mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Fixes ICE when overriding an implemented modifier with an unimplemented one.
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
contract A {
|
||||
modifier m() virtual { _; }
|
||||
}
|
||||
abstract contract B is A {
|
||||
modifier m() virtual override;
|
||||
}
|
||||
contract C is B {
|
||||
function f() m public {}
|
||||
}
|
||||
// ----
|
||||
// TypeError 4593: (78-108): Overriding an implemented modifier with an unimplemented modifier is not allowed.
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
contract A {
|
||||
modifier m() virtual { _; }
|
||||
}
|
||||
abstract contract B {
|
||||
modifier m() virtual;
|
||||
}
|
||||
contract C is A, B {
|
||||
modifier m() override(A, B) { _; }
|
||||
function f() m public {}
|
||||
}
|
||||
// ----
|
||||
@@ -0,0 +1,11 @@
|
||||
abstract contract A {
|
||||
modifier m() virtual;
|
||||
}
|
||||
abstract contract B is A {
|
||||
modifier m() virtual override;
|
||||
}
|
||||
abstract contract C is B {
|
||||
modifier m() virtual override;
|
||||
function f() m public {}
|
||||
}
|
||||
// ----
|
||||
@@ -0,0 +1,8 @@
|
||||
abstract contract A {
|
||||
modifier m() virtual;
|
||||
function f() m public {}
|
||||
}
|
||||
contract B is A {
|
||||
modifier m() virtual override { _; }
|
||||
}
|
||||
// ----
|
||||
@@ -0,0 +1,8 @@
|
||||
abstract contract A {
|
||||
modifier m() virtual;
|
||||
function f() m public virtual {}
|
||||
}
|
||||
abstract contract B is A {
|
||||
function f() public override {}
|
||||
}
|
||||
// ----
|
||||
Reference in New Issue
Block a user