mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Disallow conversions between bytesX and uintY of different size.
This commit is contained in:
committed by
chriseth
parent
76fc4f8e00
commit
5c59d56335
@@ -975,6 +975,15 @@ cut off::
|
||||
uint32 a = 0x12345678;
|
||||
uint16 b = uint16(a); // b will be 0x5678 now
|
||||
|
||||
Since 0.5.0 explicit conversions between integers and fixed-size byte arrays
|
||||
are only allowed, if both have the same size. To convert between integers and
|
||||
fixed-size byte arrays of different size, they first have to be explicitly
|
||||
converted to a matching size. This makes alignment and padding explicit::
|
||||
|
||||
uint16 x = 0xffff;
|
||||
bytes32(uint256(x)); // pad on the left
|
||||
bytes32(bytes2(x)); // pad on the right
|
||||
|
||||
.. index:: ! type;deduction, ! var
|
||||
|
||||
.. _type-deduction:
|
||||
|
||||
Reference in New Issue
Block a user