@@ -47,7 +47,7 @@ fn fixes(var_name: &String, diagnostic_range: FileRange, is_in_marco: bool) -> O
47
47
48
48
#[ cfg( test) ]
49
49
mod tests {
50
- use crate :: tests:: check_diagnostics;
50
+ use crate :: tests:: { check_diagnostics, check_fix , check_no_fix } ;
51
51
52
52
#[ test]
53
53
fn unused_variables_simple ( ) {
@@ -57,31 +57,31 @@ mod tests {
57
57
struct Foo { f1: i32, f2: i64 }
58
58
59
59
fn f(kkk: i32) {}
60
- //^^^ warn: unused variable
60
+ //^^^ 💡 warn: unused variable
61
61
fn main() {
62
62
let a = 2;
63
- //^ warn: unused variable
63
+ //^ 💡 warn: unused variable
64
64
let b = 5;
65
65
// note: `unused variable` implies `unused mut`, so we should not emit both at the same time.
66
66
let mut c = f(b);
67
- //^^^^^ warn: unused variable
67
+ //^^^^^ 💡 warn: unused variable
68
68
let (d, e) = (3, 5);
69
- //^ warn: unused variable
69
+ //^ 💡 warn: unused variable
70
70
let _ = e;
71
71
let f1 = 2;
72
72
let f2 = 5;
73
73
let f = Foo { f1, f2 };
74
74
match f {
75
75
Foo { f1, f2 } => {
76
- //^^ warn: unused variable
76
+ //^^ 💡 warn: unused variable
77
77
_ = f2;
78
78
}
79
79
}
80
80
let g = false;
81
81
if g {}
82
82
let h: fn() -> i32 = || 2;
83
83
let i = h();
84
- //^ warn: unused variable
84
+ //^ 💡 warn: unused variable
85
85
}
86
86
"# ,
87
87
) ;
@@ -95,11 +95,11 @@ struct S {
95
95
}
96
96
impl S {
97
97
fn owned_self(self, u: i32) {}
98
- //^ warn: unused variable
98
+ //^ 💡 warn: unused variable
99
99
fn ref_self(&self, u: i32) {}
100
- //^ warn: unused variable
100
+ //^ 💡 warn: unused variable
101
101
fn ref_mut_self(&mut self, u: i32) {}
102
- //^ warn: unused variable
102
+ //^ 💡 warn: unused variable
103
103
fn owned_mut_self(mut self) {}
104
104
//^^^^^^^^ 💡 warn: variable does not need to be mutable
105
105
@@ -131,7 +131,78 @@ fn main() {
131
131
#[deny(unused)]
132
132
fn main2() {
133
133
let x = 2;
134
- //^ error: unused variable
134
+ //^ 💡 error: unused variable
135
+ }
136
+ "# ,
137
+ ) ;
138
+ }
139
+
140
+ #[ test]
141
+ fn fix_unused_variable ( ) {
142
+ check_fix (
143
+ r#"
144
+ fn main() {
145
+ let x$0 = 2;
146
+ }
147
+ "# ,
148
+ r#"
149
+ fn main() {
150
+ let _x = 2;
151
+ }
152
+ "# ,
153
+ ) ;
154
+
155
+ check_fix (
156
+ r#"
157
+ fn main() {
158
+ let ($0d, _e) = (3, 5);
159
+ }
160
+ "# ,
161
+ r#"
162
+ fn main() {
163
+ let (_d, _e) = (3, 5);
164
+ }
165
+ "# ,
166
+ ) ;
167
+
168
+ check_fix (
169
+ r#"
170
+ struct Foo { f1: i32, f2: i64 }
171
+ fn main() {
172
+ let f = Foo { f1: 0, f2: 0 };
173
+ match f {
174
+ Foo { f1$0, f2 } => {
175
+ _ = f2;
176
+ }
177
+ }
178
+ }
179
+ "# ,
180
+ r#"
181
+ struct Foo { f1: i32, f2: i64 }
182
+ fn main() {
183
+ let f = Foo { f1: 0, f2: 0 };
184
+ match f {
185
+ Foo { _f1, f2 } => {
186
+ _ = f2;
187
+ }
188
+ }
189
+ }
190
+ "# ,
191
+ ) ;
192
+ }
193
+
194
+ #[ test]
195
+ fn no_fix_for_marco ( ) {
196
+ check_no_fix (
197
+ r#"
198
+ macro_rules! my_macro {
199
+ () => {
200
+ let x = 3;
201
+ };
202
+ }
203
+
204
+ fn main() {
205
+ $0my_macro!();
135
206
}
136
207
"# ,
137
208
) ;
0 commit comments