@@ -20,8 +20,6 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate {
20
20
( synth. fold_crate ( krate) , synth. impls )
21
21
} ) ;
22
22
23
- let prims: FxHashSet < PrimitiveType > = krate. primitives . iter ( ) . map ( |p| p. 1 ) . collect ( ) ;
24
-
25
23
let crate_items = {
26
24
let mut coll = ItemCollector :: new ( ) ;
27
25
krate = cx. sess ( ) . time ( "collect_items_for_trait_impls" , || coll. fold_crate ( krate) ) ;
@@ -51,7 +49,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate {
51
49
}
52
50
}
53
51
54
- let mut cleaner = BadImplStripper { prims , items : crate_items } ;
52
+ let mut cleaner = BadImplStripper { items : crate_items } ;
55
53
let mut type_did_to_deref_target: FxHashMap < DefId , & Type > = FxHashMap :: default ( ) ;
56
54
57
55
// Follow all `Deref` targets of included items and recursively add them as valid
@@ -62,9 +60,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate {
62
60
) {
63
61
if let Some ( target) = map. get ( & type_did) {
64
62
debug ! ( "add_deref_target: type {:?}, target {:?}" , type_did, target) ;
65
- if let Some ( target_prim) = target. primitive_type ( ) {
66
- cleaner. prims . insert ( target_prim) ;
67
- } else if let Some ( target_did) = target. def_id_no_primitives ( ) {
63
+ if let Some ( target_did) = target. def_id_no_primitives ( ) {
68
64
// `impl Deref<Target = S> for S`
69
65
if target_did == type_did {
70
66
// Avoid infinite cycles
@@ -90,9 +86,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate {
90
86
} )
91
87
. expect ( "Deref impl without Target type" ) ;
92
88
93
- if let Some ( prim) = target. primitive_type ( ) {
94
- cleaner. prims . insert ( prim) ;
95
- } else if let Some ( did) = target. def_id ( & cx. cache ) {
89
+ if let Some ( did) = target. def_id ( & cx. cache ) {
96
90
cleaner. items . insert ( did. into ( ) ) ;
97
91
}
98
92
if let Some ( for_did) = for_. def_id_no_primitives ( ) {
@@ -208,7 +202,6 @@ impl DocFolder for ItemCollector {
208
202
}
209
203
210
204
struct BadImplStripper {
211
- prims : FxHashSet < PrimitiveType > ,
212
205
items : FxHashSet < ItemId > ,
213
206
}
214
207
@@ -217,8 +210,6 @@ impl BadImplStripper {
217
210
if let Generic ( _) = ty {
218
211
// keep impls made on generics
219
212
true
220
- } else if let Some ( prim) = ty. primitive_type ( ) {
221
- self . prims . contains ( & prim)
222
213
} else if let Some ( did) = ty. def_id_no_primitives ( ) {
223
214
is_deref || self . keep_impl_with_def_id ( did. into ( ) )
224
215
} else {
0 commit comments