solidity/test/libsolidity/semanticTests/reverts/invalid_enum_as_external_ret.sol

35 lines
725 B
Solidity

contract C {
enum X {A, B}
function test_return() public returns (X) {
X garbled;
assembly {
garbled := 5
}
return garbled;
}
function test_inline_assignment() public returns (X _ret) {
assembly {
_ret := 5
}
}
function test_assignment() public returns (X _ret) {
X tmp;
assembly {
tmp := 5
}
_ret = tmp;
}
}
// ====
// compileViaYul: also
// compileToEwasm: also
// EVMVersion: >=byzantium
// ----
// test_return() -> FAILURE, hex"4e487b71", 33 # both should throw #
// test_inline_assignment() -> FAILURE, hex"4e487b71", 33
// test_assignment() -> FAILURE, hex"4e487b71", 33