@@ -172,13 +172,7 @@ simple_empty_finalize_trace![
172172 RandomState
173173] ;
174174
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 ] { }
182176unsafe impl < T : Trace , const N : usize > Trace for [ T ; N ] {
183177 custom_trace ! ( this, {
184178 for v in this {
@@ -213,13 +207,7 @@ macro_rules! fn_finalize_trace_group {
213207macro_rules! tuple_finalize_trace {
214208 ( ) => { } ; // This case is handled above, by simple_finalize_empty_trace!().
215209 ( $( $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, ) * ) { }
223211 unsafe impl <$( $args: $crate:: Trace ) ,* > Trace for ( $( $args, ) * ) {
224212 custom_trace!( this, {
225213 #[ allow( non_snake_case) ]
@@ -255,24 +243,14 @@ type_arg_tuple_based_finalize_trace_impls![
255243 ( A , B , C , D , E , F , G , H , I , J , K , L ) ;
256244] ;
257245
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 > { }
263247unsafe impl < T : Trace + ?Sized > Trace for Box < T > {
264248 custom_trace ! ( this, {
265249 mark( & * * this) ;
266250 } ) ;
267251}
268252
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 ] { }
276254unsafe impl < T : Trace > Trace for [ T ] {
277255 custom_trace ! ( this, {
278256 for e in this {
@@ -281,13 +259,7 @@ unsafe impl<T: Trace> Trace for [T] {
281259 } ) ;
282260}
283261
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 > { }
291263unsafe impl < T : Trace > Trace for Vec < T > {
292264 custom_trace ! ( this, {
293265 for e in this {
@@ -296,13 +268,7 @@ unsafe impl<T: Trace> Trace for Vec<T> {
296268 } ) ;
297269}
298270
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 > { }
306272unsafe impl < T : Trace > Trace for Option < T > {
307273 custom_trace ! ( this, {
308274 if let Some ( v) = this {
@@ -311,14 +277,7 @@ unsafe impl<T: Trace> Trace for Option<T> {
311277 } ) ;
312278}
313279
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 > { }
322281unsafe impl < T : Trace , E : Trace > Trace for Result < T , E > {
323282 custom_trace ! ( this, {
324283 match this {
@@ -328,13 +287,7 @@ unsafe impl<T: Trace, E: Trace> Trace for Result<T, E> {
328287 } ) ;
329288}
330289
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 > { }
338291unsafe impl < T : Trace > Trace for BinaryHeap < T > {
339292 custom_trace ! ( this, {
340293 for v in this {
@@ -343,14 +296,7 @@ unsafe impl<T: Trace> Trace for BinaryHeap<T> {
343296 } ) ;
344297}
345298
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 > { }
354300unsafe impl < K : Trace , V : Trace > Trace for BTreeMap < K , V > {
355301 custom_trace ! ( this, {
356302 for ( k, v) in this {
@@ -360,13 +306,7 @@ unsafe impl<K: Trace, V: Trace> Trace for BTreeMap<K, V> {
360306 } ) ;
361307}
362308
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 > { }
370310unsafe impl < T : Trace > Trace for BTreeSet < T > {
371311 custom_trace ! ( this, {
372312 for v in this {
@@ -375,15 +315,7 @@ unsafe impl<T: Trace> Trace for BTreeSet<T> {
375315 } ) ;
376316}
377317
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 > { }
387319unsafe impl < K : Trace , V : Trace , S : Trace > Trace for HashMap < K , V , S > {
388320 custom_trace ! ( this, {
389321 mark( this. hasher( ) ) ;
@@ -394,14 +326,7 @@ unsafe impl<K: Trace, V: Trace, S: Trace> Trace for HashMap<K, V, S> {
394326 } ) ;
395327}
396328
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 > { }
405330unsafe impl < T : Trace , S : Trace > Trace for HashSet < T , S > {
406331 custom_trace ! ( this, {
407332 mark( this. hasher( ) ) ;
@@ -411,13 +336,7 @@ unsafe impl<T: Trace, S: Trace> Trace for HashSet<T, S> {
411336 } ) ;
412337}
413338
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 > { }
421340unsafe impl < T : Trace > Trace for LinkedList < T > {
422341 custom_trace ! ( this, {
423342 for v in this. iter( ) {
@@ -431,13 +350,7 @@ unsafe impl<T: ?Sized> Trace for PhantomData<T> {
431350 unsafe_empty_trace ! ( ) ;
432351}
433352
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 > { }
441354unsafe impl < T : Trace > Trace for VecDeque < T > {
442355 custom_trace ! ( this, {
443356 for v in this {
@@ -446,16 +359,7 @@ unsafe impl<T: Trace> Trace for VecDeque<T> {
446359 } ) ;
447360}
448361
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 > { }
459363unsafe impl < ' a , T : ToOwned + ?Sized > Trace for Cow < ' a , T >
460364where
461365 T :: Owned : Trace ,
0 commit comments