]> git.lizzy.rs Git - rust.git/blob - src/docs/cast_possible_wrap.txt
Auto merge of #9421 - xphoniex:fix-#9420, r=giraffate
[rust.git] / src / docs / cast_possible_wrap.txt
1 ### What it does
2 Checks for casts from an unsigned type to a signed type of
3 the same size. Performing such a cast is a 'no-op' for the compiler,
4 i.e., nothing is changed at the bit level, and the binary representation of
5 the value is reinterpreted. This can cause wrapping if the value is too big
6 for the target signed type. However, the cast works as defined, so this lint
7 is `Allow` by default.
8
9 ### Why is this bad?
10 While such a cast is not bad in itself, the results can
11 be surprising when this is not the intended behavior, as demonstrated by the
12 example below.
13
14 ### Example
15 ```
16 u32::MAX as i32; // will yield a value of `-1`
17 ```