mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
32 lines
833 B
Solidity
32 lines
833 B
Solidity
|
contract test {
|
||
|
enum ActionChoices {GoLeft, GoRight, GoStraight}
|
||
|
|
||
|
constructor() public {}
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
// ====
|
||
|
// 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
|