]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/src/docs/uninit_assumed_init.txt
Rollup merge of #101389 - lukaslueg:rcgetmutdocs, r=m-ou-se
[rust.git] / src / tools / clippy / src / docs / uninit_assumed_init.txt
1 ### What it does
2 Checks for `MaybeUninit::uninit().assume_init()`.
3
4 ### Why is this bad?
5 For most types, this is undefined behavior.
6
7 ### Known problems
8 For now, we accept empty tuples and tuples / arrays
9 of `MaybeUninit`. There may be other types that allow uninitialized
10 data, but those are not yet rigorously defined.
11
12 ### Example
13 ```
14 // Beware the UB
15 use std::mem::MaybeUninit;
16
17 let _: usize = unsafe { MaybeUninit::uninit().assume_init() };
18 ```
19
20 Note that the following is OK:
21
22 ```
23 use std::mem::MaybeUninit;
24
25 let _: [MaybeUninit<bool>; 5] = unsafe {
26     MaybeUninit::uninit().assume_init()
27 };
28 ```