mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
32 lines
720 B
Solidity
32 lines
720 B
Solidity
contract Test {
|
|
bytes6 name;
|
|
|
|
constructor() {
|
|
function (bytes6 _name) internal setter = setName;
|
|
setter("abcdef");
|
|
|
|
applyShift(leftByteShift, 3);
|
|
}
|
|
|
|
function getName() public returns (bytes6 ret) {
|
|
return name;
|
|
}
|
|
|
|
function setName(bytes6 _name) private {
|
|
name = _name;
|
|
}
|
|
|
|
function leftByteShift(bytes6 _value, uint _shift) public returns (bytes6) {
|
|
return _value << _shift * 8;
|
|
}
|
|
|
|
function applyShift(function (bytes6 _value, uint _shift) internal returns (bytes6) _shiftOperator, uint _bytes) internal {
|
|
name = _shiftOperator(name, _bytes);
|
|
}
|
|
}
|
|
|
|
// ====
|
|
// compileViaYul: also
|
|
// ----
|
|
// getName() -> "def\x00\x00\x00"
|