@@ -10,45 +10,39 @@ fn vec_range() {
10
10
11
11
// Do not lint because iterator is used
12
12
let mut v = vec ! [ 1 , 2 , 3 ] ;
13
- let n = v. drain ( 1 ..v. len ( ) ) . count ( ) ;
14
-
15
- // Do not lint because iterator is assigned and used
16
- let mut v = vec ! [ 1 , 2 , 3 ] ;
17
- let iter = v. drain ( 1 ..v. len ( ) ) ;
18
- let n = iter. count ( ) ;
13
+ v. drain ( 1 ..v. len ( ) ) . next ( ) ;
19
14
20
15
// Do lint
21
16
let mut v = vec ! [ 1 , 2 , 3 ] ;
22
17
v. drain ( 1 ..v. len ( ) ) ;
18
+ //~^ ERROR: `drain` used to truncate a `Vec`
23
19
24
20
// Do lint
25
21
let x = 1 ;
26
22
let mut v = vec ! [ 1 , 2 , 3 ] ;
27
23
v. drain ( x..v. len ( ) ) ;
24
+ //~^ ERROR: `drain` used to truncate a `Vec`
28
25
}
29
26
30
27
fn vec_range_from ( ) {
31
28
// Do not lint because iterator is assigned
32
29
let mut v = vec ! [ 1 , 2 , 3 ] ;
33
30
let iter = v. drain ( 1 ..) ;
34
31
35
- // Do not lint because iterator is assigned and used
36
- let mut v = vec ! [ 1 , 2 , 3 ] ;
37
- let mut iter = v. drain ( 1 ..) ;
38
- let next = iter. next ( ) ;
39
-
40
32
// Do not lint because iterator is used
41
33
let mut v = vec ! [ 1 , 2 , 3 ] ;
42
- let next = v. drain ( 1 ..) . next ( ) ;
34
+ v. drain ( 1 ..) . next ( ) ;
43
35
44
36
// Do lint
45
37
let mut v = vec ! [ 1 , 2 , 3 ] ;
46
38
v. drain ( 1 ..) ;
39
+ //~^ ERROR: `drain` used to truncate a `Vec`
47
40
48
41
// Do lint
49
42
let x = 1 ;
50
43
let mut v = vec ! [ 1 , 2 , 3 ] ;
51
44
v. drain ( x..) ;
45
+ //~^ ERROR: `drain` used to truncate a `Vec`
52
46
}
53
47
54
48
fn vec_partial_drains ( ) {
@@ -102,45 +96,39 @@ fn vec_deque_range() {
102
96
103
97
// Do not lint because iterator is used
104
98
let mut deque = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
105
- let n = deque. drain ( 1 ..deque. len ( ) ) . count ( ) ;
106
-
107
- // Do not lint because iterator is assigned and used
108
- let mut deque = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
109
- let iter = deque. drain ( 1 ..deque. len ( ) ) ;
110
- let n = iter. count ( ) ;
99
+ deque. drain ( 1 ..deque. len ( ) ) . next ( ) ;
111
100
112
101
// Do lint
113
102
let mut v = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
114
103
v. drain ( 1 ..v. len ( ) ) ;
104
+ //~^ ERROR: `drain` used to truncate a `VecDeque`
115
105
116
106
// Do lint
117
107
let x = 1 ;
118
108
let mut v = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
119
109
v. drain ( x..v. len ( ) ) ;
110
+ //~^ ERROR: `drain` used to truncate a `VecDeque`
120
111
}
121
112
122
113
fn vec_deque_range_from ( ) {
123
114
// Do not lint because iterator is assigned
124
115
let mut deque = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
125
116
let iter = deque. drain ( 1 ..) ;
126
117
127
- // Do not lint because iterator is assigned and used
128
- let mut deque = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
129
- let mut iter = deque. drain ( 1 ..) ;
130
- let next = iter. next ( ) ;
131
-
132
118
// Do not lint because iterator is used
133
119
let mut deque = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
134
- let next = deque. drain ( 1 ..) . next ( ) ;
120
+ deque. drain ( 1 ..) . next ( ) ;
135
121
136
122
// Do lint
137
123
let mut deque = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
138
124
deque. drain ( 1 ..) ;
125
+ //~^ ERROR: `drain` used to truncate a `VecDeque`
139
126
140
127
// Do lint
141
128
let x = 1 ;
142
129
let mut v = VecDeque :: from ( [ 1 , 2 , 3 ] ) ;
143
130
v. drain ( x..) ;
131
+ //~^ ERROR: `drain` used to truncate a `VecDeque`
144
132
}
145
133
146
134
fn vec_deque_partial_drains ( ) {
@@ -194,45 +182,39 @@ fn string_range() {
194
182
195
183
// Do not lint because iterator is used
196
184
let mut s = String :: from ( "Hello, world!" ) ;
197
- let n = s. drain ( 1 ..s. len ( ) ) . count ( ) ;
198
-
199
- // Do not lint because iterator is assigned and used
200
- let mut s = String :: from ( "Hello, world!" ) ;
201
- let iter = s. drain ( 1 ..s. len ( ) ) ;
202
- let n = iter. count ( ) ;
185
+ s. drain ( 1 ..s. len ( ) ) . next ( ) ;
203
186
204
187
// Do lint
205
188
let mut s = String :: from ( "Hello, world!" ) ;
206
189
s. drain ( 1 ..s. len ( ) ) ;
190
+ //~^ ERROR: `drain` used to truncate a `String`
207
191
208
192
// Do lint
209
193
let x = 1 ;
210
194
let mut v = String :: from ( "Hello, world!" ) ;
211
195
v. drain ( x..s. len ( ) ) ;
196
+ //~^ ERROR: `drain` used to truncate a `String`
212
197
}
213
198
214
199
fn string_range_from ( ) {
215
200
// Do not lint because iterator is assigned
216
201
let mut s = String :: from ( "Hello, world!" ) ;
217
202
let iter = s. drain ( 1 ..) ;
218
203
219
- // Do not lint because iterator is assigned and used
220
- let mut s = String :: from ( "Hello, world!" ) ;
221
- let mut iter = s. drain ( 1 ..) ;
222
- let next = iter. next ( ) ;
223
-
224
204
// Do not lint because iterator is used
225
205
let mut s = String :: from ( "Hello, world!" ) ;
226
- let next = s. drain ( 1 ..) . next ( ) ;
206
+ s. drain ( 1 ..) . next ( ) ;
227
207
228
208
// Do lint
229
209
let mut s = String :: from ( "Hello, world!" ) ;
230
210
s. drain ( 1 ..) ;
211
+ //~^ ERROR: `drain` used to truncate a `String`
231
212
232
213
// Do lint
233
214
let x = 1 ;
234
- let mut v = String :: from ( "Hello, world!" ) ;
235
- v. drain ( x..) ;
215
+ let mut s = String :: from ( "Hello, world!" ) ;
216
+ s. drain ( x..) ;
217
+ //~^ ERROR: `drain` used to truncate a `String`
236
218
}
237
219
238
220
fn string_partial_drains ( ) {
0 commit comments