@@ -6,9 +6,10 @@ use zerogc::{Gc, CollectorId, Trace, GcSafe, NullTrace, epsilon::{self, EpsilonC
6
6
use zerogc_derive:: { Trace , NullTrace } ;
7
7
use zerogc:: cell:: GcCell ;
8
8
use std:: marker:: PhantomData ;
9
+ use std:: fmt:: Debug ;
9
10
10
11
#[ derive( Trace ) ]
11
- #[ zerogc( collector_ids( DummyCollectorId ) ) ]
12
+ #[ zerogc( collector_ids( EpsilonCollectorId ) ) ]
12
13
pub struct SpecificCollector < ' gc > {
13
14
gc : Gc < ' gc , i32 , EpsilonCollectorId > ,
14
15
rec : Gc < ' gc , SpecificCollector < ' gc > , EpsilonCollectorId > ,
@@ -92,7 +93,7 @@ struct NopTrace {
92
93
}
93
94
94
95
#[ derive( Trace ) ]
95
- #[ zerogc( unsafe_skip_drop, collector_ids( DummyCollectorId ) ) ]
96
+ #[ zerogc( unsafe_skip_drop, collector_ids( EpsilonCollectorId ) ) ]
96
97
#[ allow( unused) ]
97
98
struct UnsafeSkipped < ' gc > {
98
99
s : & ' static str ,
@@ -102,7 +103,7 @@ struct UnsafeSkipped<'gc> {
102
103
}
103
104
104
105
#[ derive( Trace ) ]
105
- #[ zerogc( ignore_lifetimes( "'a" ) , immutable, collector_ids( DummyCollectorId ) ) ]
106
+ #[ zerogc( ignore_lifetimes( "'a" ) , immutable, collector_ids( EpsilonCollectorId ) ) ]
106
107
#[ allow( unused) ]
107
108
struct LifetimeTrace < ' a : ' gc , ' gc , T : GcSafe < ' gc , EpsilonCollectorId > + ' a > {
108
109
s : String ,
@@ -113,6 +114,13 @@ struct LifetimeTrace<'a: 'gc, 'gc, T: GcSafe<'gc, EpsilonCollectorId> + 'a> {
113
114
marker : PhantomData < & ' gc ( ) >
114
115
}
115
116
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
+
116
124
#[ test]
117
125
fn basic < ' gc > ( ) {
118
126
let _b = Basic :: < epsilon:: EpsilonCollectorId > {
0 commit comments