@@ -16,64 +16,76 @@ fn fun() -> usize {
16
16
}
17
17
18
18
fn main ( ) {
19
- // Test for basic case
20
- let mut spaces = Vec :: with_capacity ( 10 ) ;
21
- for _ in 0 ..10 {
22
- spaces. push ( vec ! [ b' ' ] ) ;
23
- }
24
-
25
- let mut vec2: Vec < u8 > = Vec :: new ( ) ;
19
+ // ** linted cases **
20
+ let mut vec: Vec < u8 > = Vec :: new ( ) ;
26
21
let item = 2 ;
27
22
for _ in 5 ..=20 {
28
- vec2 . push ( item) ;
23
+ vec . push ( item) ;
29
24
}
30
25
31
- let mut vec3 : Vec < u8 > = Vec :: new ( ) ;
26
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
32
27
for _ in 0 ..15 {
33
28
let item = 2 ;
34
- vec3 . push ( item) ;
29
+ vec . push ( item) ;
35
30
}
36
31
37
- let mut vec4 : Vec < u8 > = Vec :: new ( ) ;
32
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
38
33
for _ in 0 ..15 {
39
- vec4. push ( 13 ) ;
34
+ vec. push ( 13 ) ;
35
+ }
36
+
37
+ let mut vec = Vec :: new ( ) ;
38
+ for _ in 0 ..20 {
39
+ vec. push ( VALUE ) ;
40
+ }
41
+
42
+ let mut vec = Vec :: new ( ) ;
43
+ let item = VALUE ;
44
+ for _ in 0 ..20 {
45
+ vec. push ( item) ;
46
+ }
47
+
48
+ // ** non-linted cases **
49
+ let mut spaces = Vec :: with_capacity ( 10 ) ;
50
+ for _ in 0 ..10 {
51
+ spaces. push ( vec ! [ b' ' ] ) ;
40
52
}
41
53
42
54
// Suggestion should not be given as pushed variable can mutate
43
- let mut vec5 : Vec < u8 > = Vec :: new ( ) ;
55
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
44
56
let mut item: u8 = 2 ;
45
57
for _ in 0 ..30 {
46
- vec5 . push ( mutate_increment ( & mut item) ) ;
58
+ vec . push ( mutate_increment ( & mut item) ) ;
47
59
}
48
60
49
- let mut vec6 : Vec < u8 > = Vec :: new ( ) ;
61
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
50
62
let mut item: u8 = 2 ;
51
63
let mut item2 = & mut mutate_increment ( & mut item) ;
52
64
for _ in 0 ..30 {
53
- vec6 . push ( mutate_increment ( item2) ) ;
65
+ vec . push ( mutate_increment ( item2) ) ;
54
66
}
55
67
56
- let mut vec7 : Vec < usize > = Vec :: new ( ) ;
68
+ let mut vec : Vec < usize > = Vec :: new ( ) ;
57
69
for ( a, b) in [ 0 , 1 , 4 , 9 , 16 ] . iter ( ) . enumerate ( ) {
58
- vec7 . push ( a) ;
70
+ vec . push ( a) ;
59
71
}
60
72
61
- let mut vec8 : Vec < u8 > = Vec :: new ( ) ;
73
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
62
74
for i in 0 ..30 {
63
- vec8 . push ( increment ( i) ) ;
75
+ vec . push ( increment ( i) ) ;
64
76
}
65
77
66
- let mut vec9 : Vec < u8 > = Vec :: new ( ) ;
78
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
67
79
for i in 0 ..30 {
68
- vec9 . push ( i + i * i) ;
80
+ vec . push ( i + i * i) ;
69
81
}
70
82
71
83
// Suggestion should not be given as there are multiple pushes that are not the same
72
- let mut vec10 : Vec < u8 > = Vec :: new ( ) ;
84
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
73
85
let item: u8 = 2 ;
74
86
for _ in 0 ..30 {
75
- vec10 . push ( item) ;
76
- vec10 . push ( item * 2 ) ;
87
+ vec . push ( item) ;
88
+ vec . push ( item * 2 ) ;
77
89
}
78
90
79
91
// Suggestion should not be given as Vec is not involved
@@ -88,23 +100,23 @@ fn main() {
88
100
for i in 0 ..30 {
89
101
vec_a. push ( A { kind : i } ) ;
90
102
}
91
- let mut vec12 : Vec < u8 > = Vec :: new ( ) ;
103
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
92
104
for a in vec_a {
93
- vec12 . push ( 2u8 . pow ( a. kind ) ) ;
105
+ vec . push ( 2u8 . pow ( a. kind ) ) ;
94
106
}
95
107
96
108
// Fix #5902
97
- let mut vec13 : Vec < u8 > = Vec :: new ( ) ;
109
+ let mut vec : Vec < u8 > = Vec :: new ( ) ;
98
110
let mut item = 0 ;
99
111
for _ in 0 ..10 {
100
- vec13 . push ( item) ;
112
+ vec . push ( item) ;
101
113
item += 10 ;
102
114
}
103
115
104
116
// Fix #5979
105
- let mut vec14 : Vec < std:: fs:: File > = Vec :: new ( ) ;
117
+ let mut vec : Vec < std:: fs:: File > = Vec :: new ( ) ;
106
118
for _ in 0 ..10 {
107
- vec14 . push ( std:: fs:: File :: open ( "foobar" ) . unwrap ( ) ) ;
119
+ vec . push ( std:: fs:: File :: open ( "foobar" ) . unwrap ( ) ) ;
108
120
}
109
121
// Fix #5979
110
122
#[ derive( Clone ) ]
@@ -113,36 +125,27 @@ fn main() {
113
125
trait T { }
114
126
impl T for S { }
115
127
116
- let mut vec15 : Vec < Box < dyn T > > = Vec :: new ( ) ;
128
+ let mut vec : Vec < Box < dyn T > > = Vec :: new ( ) ;
117
129
for _ in 0 ..10 {
118
- vec15. push ( Box :: new ( S { } ) ) ;
119
- }
120
-
121
- let mut vec16 = Vec :: new ( ) ;
122
- for _ in 0 ..20 {
123
- vec16. push ( VALUE ) ;
124
- }
125
-
126
- let mut vec17 = Vec :: new ( ) ;
127
- let item = VALUE ;
128
- for _ in 0 ..20 {
129
- vec17. push ( item) ;
130
+ vec. push ( Box :: new ( S { } ) ) ;
130
131
}
131
132
132
- let mut vec18 = Vec :: new ( ) ;
133
+ // Fix #5985
134
+ let mut vec = Vec :: new ( ) ;
133
135
let item = 42 ;
134
136
let item = fun ( ) ;
135
137
for _ in 0 ..20 {
136
- vec18 . push ( item) ;
138
+ vec . push ( item) ;
137
139
}
138
140
139
- let mut vec19 = Vec :: new ( ) ;
141
+ // Fix #5985
142
+ let mut vec = Vec :: new ( ) ;
140
143
let key = 1 ;
141
144
for _ in 0 ..20 {
142
145
let item = match key {
143
146
1 => 10 ,
144
147
_ => 0 ,
145
148
} ;
146
- vec19 . push ( item) ;
149
+ vec . push ( item) ;
147
150
}
148
151
}
0 commit comments