33// --- locals ---
44
55fn locals_1 ( ) {
6- let a = 1 ; // BAD: unused value [NOT DETECTED]
6+ let a = 1 ; // BAD: unused value
77 let b = 1 ;
88 let c = 1 ;
9- let d = String :: from ( "a" ) ; // BAD: unused value [NOT DETECTED]
9+ let d = String :: from ( "a" ) ; // BAD: unused value
1010 let e = String :: from ( "b" ) ;
1111 let f = 1 ;
1212 let _ = 1 ; // (deliberately unused)
@@ -32,22 +32,22 @@ fn locals_2() {
3232 let h: i32 ;
3333 let i: i32 ;
3434
35- b = 1 ; // BAD: unused value [NOT DETECTED]
35+ b = 1 ; // BAD: unused value
3636
37- c = 1 ; // BAD: unused value [NOT DETECTED]
37+ c = 1 ; // BAD: unused value
3838 c = 2 ;
3939 println ! ( "use {}" , c) ;
40- c = 3 ; // BAD: unused value [NOT DETECTED]
40+ c = 3 ; // BAD: unused value
4141
4242 d = 1 ;
4343 if cond ( ) {
44- d = 2 ; // BAD: unused value [NOT DETECTED]
44+ d = 2 ; // BAD: unused value
4545 d = 3 ;
4646 } else {
4747 }
4848 println ! ( "use {}" , d) ;
4949
50- e = 1 ; // BAD: unused value [NOT DETECTED]
50+ e = 1 ; // BAD: unused value
5151 if cond ( ) {
5252 e = 2 ;
5353 } else {
@@ -58,16 +58,16 @@ fn locals_2() {
5858 f = 1 ;
5959 f += 1 ;
6060 println ! ( "use {}" , f) ;
61- f += 1 ; // BAD: unused value [NOT DETECTED]
61+ f += 1 ; // BAD: unused value
6262 f = 1 ;
63- f += 1 ; // BAD: unused value [NOT DETECTED]
63+ f += 1 ; // BAD: unused value
6464
65- g = if cond ( ) { 1 } else { 2 } ; // BAD: unused value (x2) [NOT DETECTED]
65+ g = if cond ( ) { 1 } else { 2 } ; // BAD: unused value
6666 h = if cond ( ) { 3 } else { 4 } ;
6767 i = if cond ( ) { h } else { 5 } ;
6868 println ! ( "use {}" , i) ;
6969
70- _ = 1 ; // (deliberately unused) [NOT DETECTED]
70+ _ = 1 ; // GOOD (deliberately unused)
7171}
7272
7373// --- structs ---
@@ -84,7 +84,7 @@ impl MyStruct {
8484}
8585
8686fn structs ( ) {
87- let a = MyStruct { val : 1 } ; // BAD: unused value [NOT DETECTED]
87+ let a = MyStruct { val : 1 } ; // BAD: unused value
8888 let b = MyStruct { val : 2 } ;
8989 let c = MyStruct { val : 3 } ;
9090 let mut d: MyStruct ; // BAD: unused variable
@@ -105,7 +105,7 @@ fn structs() {
105105// --- arrays ---
106106
107107fn arrays ( ) {
108- let is = [ 1 , 2 , 3 ] ; // BAD: unused values (x3) [NOT DETECTED]
108+ let is = [ 1 , 2 , 3 ] ; // BAD: unused value
109109 let js = [ 1 , 2 , 3 ] ;
110110 let ks = [ 1 , 2 , 3 ] ;
111111
@@ -130,7 +130,7 @@ fn statics() {
130130 static mut STAT4 : i32 = 0 ; // BAD: unused value [NOT DETECTED]
131131
132132 unsafe {
133- let total = CON1 + STAT1 + STAT3 ;
133+ let total = CON1 + STAT1 + STAT3 ; // BAD: unused value
134134 }
135135}
136136
@@ -200,7 +200,7 @@ fn loops() {
200200
201201 for x // SPURIOUS: unused variable
202202 in 1 ..10 {
203- _ = format ! ( "x is {x}" ) ;
203+ _ = format ! ( "x is {x}" ) ; // SPURIOUS: unused value `res`
204204 }
205205
206206 for x
@@ -215,12 +215,12 @@ fn loops() {
215215
216216 for x
217217 in 1 ..10 {
218- assert_eq ! ( x, 1 ) ;
218+ assert_eq ! ( x, 1 ) ; // SPURIOUS: unused value `kind`
219219 }
220220
221221 for x
222222 in 1 ..10 {
223- assert_eq ! ( id( x) , id( 1 ) ) ;
223+ assert_eq ! ( id( x) , id( 1 ) ) ; // SPURIOUS: unused value `kind`
224224 }
225225
226226}
@@ -255,7 +255,8 @@ fn if_lets_matches() {
255255 }
256256
257257 let mut next = Some ( 30 ) ;
258- while let Some ( val) = next // BAD: unused variable
258+ while let Some ( val) = // BAD: unused variable
259+ next
259260 {
260261 next = None ;
261262 }
@@ -270,25 +271,22 @@ fn if_lets_matches() {
270271 match c {
271272 Some ( val) => { // BAD: unused variable
272273 }
273- None => {
274- }
274+ None => { }
275275 }
276276
277277 let d = Some ( 70 ) ;
278278 match d {
279279 Some ( val) => {
280- total += val;
281- }
282- None => {
280+ total += val; // BAD: unused value
283281 }
282+ None => { }
284283 }
285284
286285 let e = Option :: Some ( 80 ) ;
287286 match e {
288287 Option :: Some ( val) => { // BAD: unused variable
289288 }
290- Option :: None => {
291- }
289+ Option :: None => { }
292290 }
293291
294292 let f = MyOption :: Some ( 90 ) ;
@@ -298,10 +296,9 @@ fn if_lets_matches() {
298296 MyOption :: None => { }
299297 }
300298
301- let g : Result < i64 , i64 > = Ok ( 100 ) ;
299+ let g: Result < i64 , i64 > = Ok ( 100 ) ;
302300 match g {
303- Ok ( _) => {
304- }
301+ Ok ( _) => { }
305302 Err ( num) => { } // BAD: unused variable
306303 }
307304
@@ -327,8 +324,7 @@ fn if_lets_matches() {
327324 }
328325
329326 let l = Yes ;
330- if let Yes = l {
331- }
327+ if let Yes = l { }
332328
333329 match 1 {
334330 1 => { }
@@ -337,22 +333,19 @@ fn if_lets_matches() {
337333
338334 let p1 = MyPoint { x : 1 , y : 2 } ;
339335 match p1 {
340- MyPoint { x : 0 , y : 0 } => {
341- }
336+ MyPoint { x : 0 , y : 0 } => { }
342337 MyPoint { x : 1 , y } => { // BAD: unused variable
343338 }
344- MyPoint { x : 2 , y : _ } => {
345- }
339+ MyPoint { x : 2 , y : _ } => { }
346340 MyPoint { x : 3 , y : a } => { // BAD: unused variable
347341 }
348- MyPoint { x : 4 , .. } => {
349- }
342+ MyPoint { x : 4 , .. } => { }
350343 p => { // BAD: unused variable
351344 }
352345 }
353346
354347 let duration1 = std:: time:: Duration :: new ( 10 , 0 ) ; // ten seconds
355- assert_eq ! ( duration1. as_secs( ) , 10 ) ;
348+ assert_eq ! ( duration1. as_secs( ) , 10 ) ; // SPURIOUS: unused value `kind`
356349
357350 let duration2: Result < std:: time:: Duration , String > =
358351 Ok ( std:: time:: Duration :: new ( 10 , 0 ) ) ;
@@ -374,15 +367,15 @@ fn if_lets_matches() {
374367}
375368
376369fn shadowing ( ) -> i32 {
377- let x = 1 ; // BAD: unused value [NOT DETECTED]
370+ let x = 1 ; // BAD: unused value
378371 let mut y: i32 ; // BAD: unused variable
379372
380373 {
381374 let x = 2 ;
382375 let mut y: i32 ;
383376
384377 {
385- let x = 3 ; // BAD: unused value [NOT DETECTED]
378+ let x = 3 ; // BAD: unused value
386379 let mut y: i32 ; // BAD: unused variable
387380 }
388381
@@ -436,7 +429,7 @@ fn folds_and_closures() {
436429 let a5 = 1 ..10 ;
437430 _ = a5. fold ( 0 , | acc, val | val) ; // BAD: unused variable
438431
439- let i6 = 1 ;
432+ let i6 = 1 ; // SPURIOUS: unused value
440433 let a6 = 1 ..10 ;
441434 _ = a6. fold ( 0 , | acc, val | acc + val + i6) ;
442435}
@@ -449,16 +442,16 @@ fn main() {
449442 structs ( ) ;
450443 arrays ( ) ;
451444 statics ( ) ;
452- println ! ( "lets use result {}" , parameters( 1 , 2 , 3 ) ) ;
445+ println ! ( "lets use result {}" , parameters( 1 , 2 , 3 ) ) ;
453446 loops ( ) ;
454447 if_lets_matches ( ) ;
455448 shadowing ( ) ;
456449 func_ptrs ( ) ;
457450 folds_and_closures ( ) ;
458451
459- unreachable_if ( ) ;
460- unreachable_panic ( ) ;
461- unreachable_match ( ) ;
462- unreachable_loop ( ) ;
463- unreachable_paren ( ) ;
452+ unreachable_if ( ) ;
453+ unreachable_panic ( ) ;
454+ unreachable_match ( ) ;
455+ unreachable_loop ( ) ;
456+ unreachable_paren ( ) ;
464457}
0 commit comments