3
3
// --- locals ---
4
4
5
5
fn locals_1 ( ) {
6
- let a = 1 ; // BAD: unused value [NOT DETECTED]
7
- let b = 1 ;
8
- let c = 1 ;
9
- let d = String :: from ( "a" ) ; // BAD: unused value [NOT DETECTED]
10
- let e = String :: from ( "b" ) ;
11
- let f = 1 ;
6
+ let a = 1 ; // BAD: unused value
7
+ let b = 1 ; // SPURIOUS: unused value [macros not yet supported]
8
+ let c = 1 ; // SPURIOUS: unused value [macros not yet supported]
9
+ let d = String :: from ( "a" ) ; // BAD: unused value
10
+ let e = String :: from ( "b" ) ; // SPURIOUS: unused value [macros not yet supported]
11
+ let f = 1 ; // SPURIOUS: unused value [macros not yet supported]
12
12
let _ = 1 ; // (deliberately unused)
13
13
14
14
println ! ( "use {}" , b) ;
@@ -32,39 +32,39 @@ fn locals_2() {
32
32
let h: i32 ;
33
33
let i: i32 ;
34
34
35
- b = 1 ; // BAD: unused value [NOT DETECTED]
35
+ b = 1 ; // BAD: unused value
36
36
37
- c = 1 ; // BAD: unused value [NOT DETECTED]
38
- c = 2 ;
37
+ c = 1 ; // BAD: unused value
38
+ c = 2 ; // SPURIOUS: unused value [macros not yet supported]
39
39
println ! ( "use {}" , c) ;
40
- c = 3 ; // BAD: unused value [NOT DETECTED]
40
+ c = 3 ; // BAD: unused value
41
41
42
- d = 1 ;
42
+ d = 1 ; // SPURIOUS: unused value [macros not yet supported]
43
43
if cond ( ) {
44
- d = 2 ; // BAD: unused value [NOT DETECTED]
45
- d = 3 ;
44
+ d = 2 ; // BAD: unused value
45
+ d = 3 ; // SPURIOUS: unused value [macros not yet supported]
46
46
} else {
47
47
}
48
48
println ! ( "use {}" , d) ;
49
49
50
- e = 1 ; // BAD: unused value [NOT DETECTED]
50
+ e = 1 ; // BAD: unused value
51
51
if cond ( ) {
52
- e = 2 ;
52
+ e = 2 ; // SPURIOUS: unused value [macros not yet supported]
53
53
} else {
54
- e = 3 ;
54
+ e = 3 ; // SPURIOUS: unused value [macros not yet supported]
55
55
}
56
56
println ! ( "use {}" , e) ;
57
57
58
58
f = 1 ;
59
59
f += 1 ;
60
60
println ! ( "use {}" , f) ;
61
- f += 1 ; // BAD: unused value [NOT DETECTED]
61
+ f += 1 ; // BAD: unused value
62
62
f = 1 ;
63
- f += 1 ; // BAD: unused value [NOT DETECTED]
63
+ f += 1 ; // BAD: unused value
64
64
65
- g = if cond ( ) { 1 } else { 2 } ; // BAD: unused value (x2) [NOT DETECTED]
65
+ g = if cond ( ) { 1 } else { 2 } ; // BAD: unused value
66
66
h = if cond ( ) { 3 } else { 4 } ;
67
- i = if cond ( ) { h } else { 5 } ;
67
+ i = if cond ( ) { h } else { 5 } ; // SPURIOUS: unused value [macros not yet supported]
68
68
println ! ( "use {}" , i) ;
69
69
70
70
_ = 1 ; // (deliberately unused) [NOT DETECTED]
@@ -84,9 +84,9 @@ impl MyStruct {
84
84
}
85
85
86
86
fn structs ( ) {
87
- let a = MyStruct { val : 1 } ; // BAD: unused value [NOT DETECTED]
88
- let b = MyStruct { val : 2 } ;
89
- let c = MyStruct { val : 3 } ;
87
+ let a = MyStruct { val : 1 } ; // BAD: unused value
88
+ let b = MyStruct { val : 2 } ; // SPURIOUS: unused value [macros not yet supported]
89
+ let c = MyStruct { val : 3 } ; // SPURIOUS: unused value [macros not yet supported]
90
90
let mut d: MyStruct ; // BAD: unused variable
91
91
let mut e: MyStruct ;
92
92
let mut f: MyStruct ;
@@ -105,8 +105,8 @@ fn structs() {
105
105
// --- arrays ---
106
106
107
107
fn arrays ( ) {
108
- let is = [ 1 , 2 , 3 ] ; // BAD: unused values (x3) [NOT DETECTED]
109
- let js = [ 1 , 2 , 3 ] ;
108
+ let is = [ 1 , 2 , 3 ] ; // BAD: unused values (x3)
109
+ let js = [ 1 , 2 , 3 ] ; // SPURIOUS: unused value [macros not yet supported]
110
110
let ks = [ 1 , 2 , 3 ] ;
111
111
112
112
println ! ( "lets use {:?}" , js) ;
@@ -130,7 +130,7 @@ fn statics() {
130
130
static mut STAT4 : i32 = 0 ; // BAD: unused value [NOT DETECTED]
131
131
132
132
unsafe {
133
- let total = CON1 + STAT1 + STAT3 ;
133
+ let total = CON1 + STAT1 + STAT3 ; // BAD: unused value
134
134
}
135
135
}
136
136
@@ -139,7 +139,7 @@ fn statics() {
139
139
fn parameters (
140
140
x : i32 ,
141
141
y : i32 , // BAD: unused variable
142
- _z : i32 , // (`_` is asking the compiler, and by extension us, to not warn that this is unused)
142
+ _z : i32 , // (`_` is asking the compiler, and by extension us, to not warn that this is unused) TODO
143
143
) -> i32 {
144
144
return x;
145
145
}
@@ -189,7 +189,7 @@ enum YesOrNo {
189
189
No ,
190
190
}
191
191
192
- use YesOrNo :: { Yes , No } ; // allows `Yes`, `No` to be accessed without qualifiers.
192
+ use YesOrNo :: { No , Yes } ; // allows `Yes`, `No` to be accessed without qualifiers.
193
193
194
194
struct MyPoint {
195
195
x : i64 ,
@@ -207,7 +207,8 @@ fn if_lets_matches() {
207
207
}
208
208
209
209
let mut next = Some ( 30 ) ;
210
- while let Some ( val) = next // BAD: unused variable
210
+ while let Some ( val) = // BAD: unused variable
211
+ next
211
212
{
212
213
next = None ;
213
214
}
@@ -229,7 +230,7 @@ fn if_lets_matches() {
229
230
let d = Some ( 70 ) ;
230
231
match d {
231
232
Some ( val) => {
232
- total += val;
233
+ total += val; // BAD: unused variable
233
234
}
234
235
None => { // SPURIOUS: unused variable 'None'
235
236
}
@@ -239,8 +240,7 @@ fn if_lets_matches() {
239
240
match e {
240
241
Option :: Some ( val) => { // BAD: unused variable
241
242
}
242
- Option :: None => {
243
- }
243
+ Option :: None => { }
244
244
}
245
245
246
246
let f = MyOption :: Some ( 90 ) ;
@@ -250,10 +250,9 @@ fn if_lets_matches() {
250
250
MyOption :: None => { }
251
251
}
252
252
253
- let g : Result < i64 , i64 > = Ok ( 100 ) ;
253
+ let g: Result < i64 , i64 > = Ok ( 100 ) ;
254
254
match g {
255
- Ok ( _) => {
256
- }
255
+ Ok ( _) => { }
257
256
Err ( num) => { } // BAD: unused variable
258
257
}
259
258
@@ -266,7 +265,7 @@ fn if_lets_matches() {
266
265
let i = Yes ;
267
266
match i {
268
267
Yes => { } // SPURIOUS: unused variable 'Yes'
269
- No => { } // SPURIOUS: unused variable 'No'
268
+ No => { } // SPURIOUS: unused variable 'No'
270
269
}
271
270
272
271
if let j = Yes { // BAD: unused variable
@@ -289,31 +288,28 @@ fn if_lets_matches() {
289
288
290
289
let p1 = MyPoint { x : 1 , y : 2 } ;
291
290
match p1 {
292
- MyPoint { x : 0 , y : 0 } => {
293
- }
291
+ MyPoint { x : 0 , y : 0 } => { }
294
292
MyPoint { x : 1 , y } => { // BAD: unused variable
295
293
}
296
- MyPoint { x : 2 , y : _ } => {
297
- }
294
+ MyPoint { x : 2 , y : _ } => { }
298
295
MyPoint { x : 3 , y : a } => { // BAD: unused variable
299
296
}
300
- MyPoint { x : 4 , .. } => {
301
- }
297
+ MyPoint { x : 4 , .. } => { }
302
298
p => { // BAD: unused variable
303
299
}
304
300
}
305
301
}
306
302
307
303
fn shadowing ( ) -> i32 {
308
- let x = 1 ; // BAD: unused value [NOT DETECTED]
304
+ let x = 1 ; // BAD: unused value
309
305
let mut y: i32 ; // BAD: unused variable
310
306
311
307
{
312
308
let x = 2 ;
313
309
let mut y: i32 ;
314
310
315
311
{
316
- let x = 3 ; // BAD: unused value [NOT DETECTED]
312
+ let x = 3 ; // BAD: unused value
317
313
let mut y: i32 ; // BAD: unused variable
318
314
}
319
315
0 commit comments