@@ -172,13 +172,7 @@ simple_empty_finalize_trace![
172
172
RandomState
173
173
] ;
174
174
175
- impl < T : Finalize , const N : usize > Finalize for [ T ; N ] {
176
- fn finalize ( & self ) {
177
- for v in self {
178
- v. finalize ( ) ;
179
- }
180
- }
181
- }
175
+ impl < T , const N : usize > Finalize for [ T ; N ] { }
182
176
unsafe impl < T : Trace , const N : usize > Trace for [ T ; N ] {
183
177
custom_trace ! ( this, {
184
178
for v in this {
@@ -213,13 +207,7 @@ macro_rules! fn_finalize_trace_group {
213
207
macro_rules! tuple_finalize_trace {
214
208
( ) => { } ; // This case is handled above, by simple_finalize_empty_trace!().
215
209
( $( $args: ident) ,* ) => {
216
- impl <$( $args: $crate:: Finalize ) ,* > Finalize for ( $( $args, ) * ) {
217
- fn finalize( & self ) {
218
- #[ allow( non_snake_case) ]
219
- let & ( $( ref $args, ) * ) = self ;
220
- $( ( $args) . finalize( ) ; ) *
221
- }
222
- }
210
+ impl <$( $args) ,* > Finalize for ( $( $args, ) * ) { }
223
211
unsafe impl <$( $args: $crate:: Trace ) ,* > Trace for ( $( $args, ) * ) {
224
212
custom_trace!( this, {
225
213
#[ allow( non_snake_case) ]
@@ -255,24 +243,14 @@ type_arg_tuple_based_finalize_trace_impls![
255
243
( A , B , C , D , E , F , G , H , I , J , K , L ) ;
256
244
] ;
257
245
258
- impl < T : Finalize + ?Sized > Finalize for Box < T > {
259
- fn finalize ( & self ) {
260
- ( * * self ) . finalize ( ) ;
261
- }
262
- }
246
+ impl < T : ?Sized > Finalize for Box < T > { }
263
247
unsafe impl < T : Trace + ?Sized > Trace for Box < T > {
264
248
custom_trace ! ( this, {
265
249
mark( & * * this) ;
266
250
} ) ;
267
251
}
268
252
269
- impl < T : Finalize > Finalize for [ T ] {
270
- fn finalize ( & self ) {
271
- for e in self {
272
- e. finalize ( ) ;
273
- }
274
- }
275
- }
253
+ impl < T > Finalize for [ T ] { }
276
254
unsafe impl < T : Trace > Trace for [ T ] {
277
255
custom_trace ! ( this, {
278
256
for e in this {
@@ -281,13 +259,7 @@ unsafe impl<T: Trace> Trace for [T] {
281
259
} ) ;
282
260
}
283
261
284
- impl < T : Finalize > Finalize for Vec < T > {
285
- fn finalize ( & self ) {
286
- for e in self {
287
- e. finalize ( ) ;
288
- }
289
- }
290
- }
262
+ impl < T > Finalize for Vec < T > { }
291
263
unsafe impl < T : Trace > Trace for Vec < T > {
292
264
custom_trace ! ( this, {
293
265
for e in this {
@@ -296,13 +268,7 @@ unsafe impl<T: Trace> Trace for Vec<T> {
296
268
} ) ;
297
269
}
298
270
299
- impl < T : Finalize > Finalize for Option < T > {
300
- fn finalize ( & self ) {
301
- if let Some ( v) = self {
302
- v. finalize ( ) ;
303
- }
304
- }
305
- }
271
+ impl < T > Finalize for Option < T > { }
306
272
unsafe impl < T : Trace > Trace for Option < T > {
307
273
custom_trace ! ( this, {
308
274
if let Some ( v) = this {
@@ -311,14 +277,7 @@ unsafe impl<T: Trace> Trace for Option<T> {
311
277
} ) ;
312
278
}
313
279
314
- impl < T : Finalize , E : Finalize > Finalize for Result < T , E > {
315
- fn finalize ( & self ) {
316
- match self {
317
- Ok ( v) => v. finalize ( ) ,
318
- Err ( v) => v. finalize ( ) ,
319
- }
320
- }
321
- }
280
+ impl < T , E > Finalize for Result < T , E > { }
322
281
unsafe impl < T : Trace , E : Trace > Trace for Result < T , E > {
323
282
custom_trace ! ( this, {
324
283
match this {
@@ -328,13 +287,7 @@ unsafe impl<T: Trace, E: Trace> Trace for Result<T, E> {
328
287
} ) ;
329
288
}
330
289
331
- impl < T : Finalize > Finalize for BinaryHeap < T > {
332
- fn finalize ( & self ) {
333
- for v in self {
334
- v. finalize ( ) ;
335
- }
336
- }
337
- }
290
+ impl < T > Finalize for BinaryHeap < T > { }
338
291
unsafe impl < T : Trace > Trace for BinaryHeap < T > {
339
292
custom_trace ! ( this, {
340
293
for v in this {
@@ -343,14 +296,7 @@ unsafe impl<T: Trace> Trace for BinaryHeap<T> {
343
296
} ) ;
344
297
}
345
298
346
- impl < K : Finalize , V : Finalize > Finalize for BTreeMap < K , V > {
347
- fn finalize ( & self ) {
348
- for ( k, v) in self {
349
- k. finalize ( ) ;
350
- v. finalize ( ) ;
351
- }
352
- }
353
- }
299
+ impl < K , V > Finalize for BTreeMap < K , V > { }
354
300
unsafe impl < K : Trace , V : Trace > Trace for BTreeMap < K , V > {
355
301
custom_trace ! ( this, {
356
302
for ( k, v) in this {
@@ -360,13 +306,7 @@ unsafe impl<K: Trace, V: Trace> Trace for BTreeMap<K, V> {
360
306
} ) ;
361
307
}
362
308
363
- impl < T : Finalize > Finalize for BTreeSet < T > {
364
- fn finalize ( & self ) {
365
- for v in self {
366
- v. finalize ( ) ;
367
- }
368
- }
369
- }
309
+ impl < T > Finalize for BTreeSet < T > { }
370
310
unsafe impl < T : Trace > Trace for BTreeSet < T > {
371
311
custom_trace ! ( this, {
372
312
for v in this {
@@ -375,15 +315,7 @@ unsafe impl<T: Trace> Trace for BTreeSet<T> {
375
315
} ) ;
376
316
}
377
317
378
- impl < K : Finalize , V : Finalize , S : Finalize > Finalize for HashMap < K , V , S > {
379
- fn finalize ( & self ) {
380
- self . hasher ( ) . finalize ( ) ;
381
- for ( k, v) in self {
382
- k. finalize ( ) ;
383
- v. finalize ( ) ;
384
- }
385
- }
386
- }
318
+ impl < K , V , S > Finalize for HashMap < K , V , S > { }
387
319
unsafe impl < K : Trace , V : Trace , S : Trace > Trace for HashMap < K , V , S > {
388
320
custom_trace ! ( this, {
389
321
mark( this. hasher( ) ) ;
@@ -394,14 +326,7 @@ unsafe impl<K: Trace, V: Trace, S: Trace> Trace for HashMap<K, V, S> {
394
326
} ) ;
395
327
}
396
328
397
- impl < T : Finalize , S : Finalize > Finalize for HashSet < T , S > {
398
- fn finalize ( & self ) {
399
- self . hasher ( ) . finalize ( ) ;
400
- for v in self {
401
- v. finalize ( ) ;
402
- }
403
- }
404
- }
329
+ impl < T , S > Finalize for HashSet < T , S > { }
405
330
unsafe impl < T : Trace , S : Trace > Trace for HashSet < T , S > {
406
331
custom_trace ! ( this, {
407
332
mark( this. hasher( ) ) ;
@@ -411,13 +336,7 @@ unsafe impl<T: Trace, S: Trace> Trace for HashSet<T, S> {
411
336
} ) ;
412
337
}
413
338
414
- impl < T : Finalize > Finalize for LinkedList < T > {
415
- fn finalize ( & self ) {
416
- for v in self {
417
- v. finalize ( ) ;
418
- }
419
- }
420
- }
339
+ impl < T > Finalize for LinkedList < T > { }
421
340
unsafe impl < T : Trace > Trace for LinkedList < T > {
422
341
custom_trace ! ( this, {
423
342
for v in this. iter( ) {
@@ -431,13 +350,7 @@ unsafe impl<T: ?Sized> Trace for PhantomData<T> {
431
350
unsafe_empty_trace ! ( ) ;
432
351
}
433
352
434
- impl < T : Finalize > Finalize for VecDeque < T > {
435
- fn finalize ( & self ) {
436
- for v in self {
437
- v. finalize ( ) ;
438
- }
439
- }
440
- }
353
+ impl < T > Finalize for VecDeque < T > { }
441
354
unsafe impl < T : Trace > Trace for VecDeque < T > {
442
355
custom_trace ! ( this, {
443
356
for v in this {
@@ -446,16 +359,7 @@ unsafe impl<T: Trace> Trace for VecDeque<T> {
446
359
} ) ;
447
360
}
448
361
449
- impl < ' a , T : ToOwned + ?Sized > Finalize for Cow < ' a , T >
450
- where
451
- T :: Owned : Finalize ,
452
- {
453
- fn finalize ( & self ) {
454
- if let Cow :: Owned ( ref v) = self {
455
- v. finalize ( ) ;
456
- }
457
- }
458
- }
362
+ impl < ' a , T : ToOwned + ?Sized > Finalize for Cow < ' a , T > { }
459
363
unsafe impl < ' a , T : ToOwned + ?Sized > Trace for Cow < ' a , T >
460
364
where
461
365
T :: Owned : Trace ,
0 commit comments