@@ -6,9 +6,10 @@ use zerogc::{Gc, CollectorId, Trace, GcSafe, NullTrace, epsilon::{self, EpsilonC
66use zerogc_derive:: { Trace , NullTrace } ;
77use zerogc:: cell:: GcCell ;
88use std:: marker:: PhantomData ;
9+ use std:: fmt:: Debug ;
910
1011#[ derive( Trace ) ]
11- #[ zerogc( collector_ids( DummyCollectorId ) ) ]
12+ #[ zerogc( collector_ids( EpsilonCollectorId ) ) ]
1213pub struct SpecificCollector < ' gc > {
1314 gc : Gc < ' gc , i32 , EpsilonCollectorId > ,
1415 rec : Gc < ' gc , SpecificCollector < ' gc > , EpsilonCollectorId > ,
@@ -92,7 +93,7 @@ struct NopTrace {
9293}
9394
9495#[ derive( Trace ) ]
95- #[ zerogc( unsafe_skip_drop, collector_ids( DummyCollectorId ) ) ]
96+ #[ zerogc( unsafe_skip_drop, collector_ids( EpsilonCollectorId ) ) ]
9697#[ allow( unused) ]
9798struct UnsafeSkipped < ' gc > {
9899 s : & ' static str ,
@@ -102,7 +103,7 @@ struct UnsafeSkipped<'gc> {
102103}
103104
104105#[ derive( Trace ) ]
105- #[ zerogc( ignore_lifetimes( "'a" ) , immutable, collector_ids( DummyCollectorId ) ) ]
106+ #[ zerogc( ignore_lifetimes( "'a" ) , immutable, collector_ids( EpsilonCollectorId ) ) ]
106107#[ allow( unused) ]
107108struct LifetimeTrace < ' a : ' gc , ' gc , T : GcSafe < ' gc , EpsilonCollectorId > + ' a > {
108109 s : String ,
@@ -113,6 +114,13 @@ struct LifetimeTrace<'a: 'gc, 'gc, T: GcSafe<'gc, EpsilonCollectorId> + 'a> {
113114 marker : PhantomData < & ' gc ( ) >
114115}
115116
117+ #[ derive( Trace ) ]
118+ #[ zerogc( copy, collector_ids( Id ) , ignore_params( T ) ) ]
119+ struct IgnoredParam < ' gc , T : Debug + ' gc , Id : CollectorId > {
120+ gc : Gc < ' gc , IgnoredParam < ' gc , T , Id > , Id > ,
121+ param : PhantomData < fn ( ) -> T > ,
122+ }
123+
116124#[ test]
117125fn basic < ' gc > ( ) {
118126 let _b = Basic :: < epsilon:: EpsilonCollectorId > {
0 commit comments