mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Issue state mutability restriction for overriding and not for virtual functions.
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
interface Parent {
|
||||
function test() external returns (uint256);
|
||||
function test() external pure returns (uint256);
|
||||
}
|
||||
|
||||
interface SubA is Parent {}
|
||||
interface SubB is Parent {}
|
||||
|
||||
contract C is SubA, SubB {
|
||||
function test() external override returns (uint256) { return 42; }
|
||||
function test() external override pure returns (uint256) { return 42; }
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
interface Parent {
|
||||
function test() external returns (uint256);
|
||||
function test() external pure returns (uint256);
|
||||
}
|
||||
|
||||
interface SubA is Parent {
|
||||
function test() external override returns (uint256);
|
||||
function test() external pure override returns (uint256);
|
||||
}
|
||||
|
||||
interface SubB is Parent {
|
||||
function test() external override returns (uint256);
|
||||
function test() external pure override returns (uint256);
|
||||
}
|
||||
|
||||
contract C is SubA, SubB {
|
||||
function test() external override(SubA, SubB) returns (uint256) { return 42; }
|
||||
function test() external pure override(SubA, SubB) returns (uint256) { return 42; }
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
interface ParentA {
|
||||
function testA() external returns (uint256);
|
||||
function testA() external pure returns (uint256);
|
||||
}
|
||||
|
||||
interface ParentB {
|
||||
function testB() external returns (uint256);
|
||||
function testB() external pure returns (uint256);
|
||||
}
|
||||
|
||||
interface Sub is ParentA, ParentB {
|
||||
function testSub() external returns (uint256);
|
||||
function testSub() external pure returns (uint256);
|
||||
}
|
||||
|
||||
contract SubImpl is Sub {
|
||||
function testA() external override returns (uint256) { return 12; }
|
||||
function testB() external override(ParentB) returns (uint256) { return 42; }
|
||||
function testSub() external override returns (uint256) { return 99; }
|
||||
function testA() external pure override returns (uint256) { return 12; }
|
||||
function testB() external pure override(ParentB) returns (uint256) { return 42; }
|
||||
function testSub() external pure override returns (uint256) { return 99; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user