]> git.lizzy.rs Git - rust.git/blob - tests/ui/let_underscore_must_use.rs
Auto merge of #8612 - SabrinaJewson:suggest-from-utf8-unchecked-in-const, r=flip1995
[rust.git] / tests / ui / let_underscore_must_use.rs
1 #![warn(clippy::let_underscore_must_use)]
2 #![allow(clippy::unnecessary_wraps)]
3
4 // Debug implementations can fire this lint,
5 // so we shouldn't lint external macros
6 #[derive(Debug)]
7 struct Foo {
8     field: i32,
9 }
10
11 #[must_use]
12 fn f() -> u32 {
13     0
14 }
15
16 fn g() -> Result<u32, u32> {
17     Ok(0)
18 }
19
20 #[must_use]
21 fn l<T>(x: T) -> T {
22     x
23 }
24
25 fn h() -> u32 {
26     0
27 }
28
29 struct S;
30
31 impl S {
32     #[must_use]
33     pub fn f(&self) -> u32 {
34         0
35     }
36
37     pub fn g(&self) -> Result<u32, u32> {
38         Ok(0)
39     }
40
41     fn k(&self) -> u32 {
42         0
43     }
44
45     #[must_use]
46     fn h() -> u32 {
47         0
48     }
49
50     fn p() -> Result<u32, u32> {
51         Ok(0)
52     }
53 }
54
55 trait Trait {
56     #[must_use]
57     fn a() -> u32;
58 }
59
60 impl Trait for S {
61     fn a() -> u32 {
62         0
63     }
64 }
65
66 fn main() {
67     let _ = f();
68     let _ = g();
69     let _ = h();
70     let _ = l(0_u32);
71
72     let s = S {};
73
74     let _ = s.f();
75     let _ = s.g();
76     let _ = s.k();
77
78     let _ = S::h();
79     let _ = S::p();
80
81     let _ = S::a();
82
83     let _ = if true { Ok(()) } else { Err(()) };
84
85     let a = Result::<(), ()>::Ok(());
86
87     let _ = a.is_ok();
88
89     let _ = a.map(|_| ());
90
91     let _ = a;
92
93     #[allow(clippy::let_underscore_must_use)]
94     let _ = a;
95 }