solidity/test/libsolidity/semanticTests/cleanup/cleanup_address_types_shortening.sol

34 lines
850 B
Solidity
Raw Normal View History

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