mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Enum panic test for pre-byzantium.
This commit is contained in:
parent
6d3528b4a7
commit
93642f9bfc
@ -0,0 +1,32 @@
|
||||
contract test {
|
||||
enum ActionChoices {GoLeft, GoRight, GoStraight}
|
||||
|
||||
constructor() {}
|
||||
|
||||
function getChoiceExp(uint256 x) public returns (uint256 d) {
|
||||
choice = ActionChoices(x);
|
||||
d = uint256(choice);
|
||||
}
|
||||
|
||||
function getChoiceFromSigned(int256 x) public returns (uint256 d) {
|
||||
choice = ActionChoices(x);
|
||||
d = uint256(choice);
|
||||
}
|
||||
|
||||
function getChoiceFromNegativeLiteral() public returns (uint256 d) {
|
||||
choice = ActionChoices(-1);
|
||||
d = uint256(choice);
|
||||
}
|
||||
|
||||
ActionChoices choice;
|
||||
}
|
||||
|
||||
// ====
|
||||
// EVMVersion: <byzantium
|
||||
// compileViaYul: also
|
||||
// ----
|
||||
// getChoiceExp(uint256): 3 -> FAILURE # These should throw #
|
||||
// getChoiceFromSigned(int256): -1 -> FAILURE
|
||||
// getChoiceFromNegativeLiteral() -> FAILURE
|
||||
// getChoiceExp(uint256): 2 -> 2 # These should work #
|
||||
// getChoiceExp(uint256): 0 -> 0
|
Loading…
Reference in New Issue
Block a user