solidity/test/libsolidity/semanticTests/cleanup/cleanup_address_types_shortening.sol
2020-03-19 14:42:25 +01:00

34 lines
850 B
Solidity

contract C {
function f() public pure returns (address r) {
bytes21 x = 0x1122334455667788990011223344556677889900ff;
bytes20 y;
assembly {
y := x
}
address z = address(y);
assembly {
r := z
}
require(z == 0x1122334455667788990011223344556677889900);
}
function g() public pure returns (address payable r) {
bytes21 x = 0x1122334455667788990011223344556677889900ff;
bytes20 y;
assembly {
y := x
}
address payable z = address(y);
assembly {
r := z
}
require(z == 0x1122334455667788990011223344556677889900);
}
}
// ====
// compileViaYul: also
// ----
// f() -> 0x1122334455667788990011223344556677889900
// g() -> 0x1122334455667788990011223344556677889900