]> git.proxmox.com Git - rustc.git/blob - src/tools/clippy/tests/ui/match_single_binding.fixed
New upstream version 1.74.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / match_single_binding.fixed
1 #![warn(clippy::match_single_binding)]
2 #![allow(
3 unused,
4 clippy::let_unit_value,
5 clippy::no_effect,
6 clippy::toplevel_ref_arg,
7 clippy::uninlined_format_args,
8 clippy::useless_vec
9 )]
10
11 struct Point {
12 x: i32,
13 y: i32,
14 }
15
16 fn coords() -> Point {
17 Point { x: 1, y: 2 }
18 }
19
20 macro_rules! foo {
21 ($param:expr) => {
22 match $param {
23 _ => println!("whatever"),
24 }
25 };
26 }
27
28 fn main() {
29 let a = 1;
30 let b = 2;
31 let c = 3;
32 // Lint
33 let (x, y, z) = (a, b, c);
34 {
35 println!("{} {} {}", x, y, z);
36 }
37 // Lint
38 let (x, y, z) = (a, b, c);
39 println!("{} {} {}", x, y, z);
40 // Ok
41 foo!(a);
42 // Ok
43 match a {
44 2 => println!("2"),
45 _ => println!("Not 2"),
46 }
47 // Ok
48 let d = Some(5);
49 match d {
50 Some(d) => println!("{}", d),
51 _ => println!("None"),
52 }
53 // Lint
54 println!("whatever");
55 // Lint
56 {
57 let x = 29;
58 println!("x has a value of {}", x);
59 }
60 // Lint
61 {
62 let e = 5 * a;
63 if e >= 5 {
64 println!("e is superior to 5");
65 }
66 }
67 // Lint
68 let p = Point { x: 0, y: 7 };
69 let Point { x, y } = p;
70 println!("Coords: ({}, {})", x, y);
71 // Lint
72 let Point { x: x1, y: y1 } = p;
73 println!("Coords: ({}, {})", x1, y1);
74 // Lint
75 let x = 5;
76 let ref r = x;
77 println!("Got a reference to {}", r);
78 // Lint
79 let mut x = 5;
80 let ref mut mr = x;
81 println!("Got a mutable reference to {}", mr);
82 // Lint
83 let Point { x, y } = coords();
84 let product = x * y;
85 // Lint
86 let v = vec![Some(1), Some(2), Some(3), Some(4)];
87 #[allow(clippy::let_and_return)]
88 let _ = v
89 .iter()
90 .map(|i| {
91 let unwrapped = i.unwrap();
92 unwrapped
93 })
94 .collect::<Vec<u8>>();
95 // Ok
96 let x = 1;
97 match x {
98 #[cfg(disabled_feature)]
99 0 => println!("Disabled branch"),
100 _ => println!("Enabled branch"),
101 }
102
103 // Ok
104 let x = 1;
105 let y = 1;
106 match match y {
107 0 => 1,
108 _ => 2,
109 } {
110 #[cfg(disabled_feature)]
111 0 => println!("Array index start"),
112 _ => println!("Not an array index start"),
113 }
114
115 // Lint
116 let x = 1;
117 println!("Not an array index start")
118 }
119
120 fn issue_8723() {
121 let (mut val, idx) = ("a b", 1);
122
123 let (pre, suf) = val.split_at(idx);
124 val = {
125 println!("{}", pre);
126 suf
127 };
128
129 let _ = val;
130 }
131
132 fn side_effects() {}
133
134 fn issue_9575() {
135 let _ = || {
136 side_effects();
137 println!("Needs curlies")
138 };
139 }
140
141 fn issue_9725(r: Option<u32>) {
142 let x = r;
143 match x {
144 Some(_) => {
145 println!("Some");
146 },
147 None => {
148 println!("None");
149 },
150 };
151 }
152
153 fn issue_10447() -> usize {
154 ();
155
156 let a = ();
157
158 side_effects();
159
160 let b = side_effects();
161
162 println!("1");
163
164 let c = println!("1");
165
166 let in_expr = [
167 (),
168 side_effects(),
169 println!("1"),
170 ];
171
172 2
173 }