@@ -15,9 +15,8 @@ use rustc_hir::def::{DefKind, Res};
15
15
use rustc_hir:: def_id:: { DefId , LOCAL_CRATE } ;
16
16
use rustc_middle:: mir:: interpret:: { sign_extend, ConstValue , Scalar } ;
17
17
use rustc_middle:: ty:: subst:: { GenericArgKind , SubstsRef } ;
18
- use rustc_middle:: ty:: { self , DefIdTree , Ty , TyCtxt } ;
18
+ use rustc_middle:: ty:: { self , DefIdTree , Ty } ;
19
19
use rustc_span:: symbol:: { kw, sym, Symbol } ;
20
- use smallvec:: SmallVec ;
21
20
use std:: mem;
22
21
23
22
pub fn krate ( mut cx : & mut DocContext < ' _ > ) -> Crate {
@@ -350,60 +349,6 @@ pub fn qpath_to_string(p: &hir::QPath<'_>) -> String {
350
349
s
351
350
}
352
351
353
- pub fn impl_for_type ( tcx : TyCtxt < ' _ > , primitive : PrimitiveType ) -> SmallVec < [ DefId ; 4 ] > {
354
- use self :: PrimitiveType :: * ;
355
-
356
- let both =
357
- |a : Option < DefId > , b : Option < DefId > | -> SmallVec < _ > { a. into_iter ( ) . chain ( b) . collect ( ) } ;
358
-
359
- let lang_items = tcx. lang_items ( ) ;
360
- let primary_impl = match primitive {
361
- Isize => lang_items. isize_impl ( ) ,
362
- I8 => lang_items. i8_impl ( ) ,
363
- I16 => lang_items. i16_impl ( ) ,
364
- I32 => lang_items. i32_impl ( ) ,
365
- I64 => lang_items. i64_impl ( ) ,
366
- I128 => lang_items. i128_impl ( ) ,
367
- Usize => lang_items. usize_impl ( ) ,
368
- U8 => lang_items. u8_impl ( ) ,
369
- U16 => lang_items. u16_impl ( ) ,
370
- U32 => lang_items. u32_impl ( ) ,
371
- U64 => lang_items. u64_impl ( ) ,
372
- U128 => lang_items. u128_impl ( ) ,
373
- F32 => return both ( lang_items. f32_impl ( ) , lang_items. f32_runtime_impl ( ) ) ,
374
- F64 => return both ( lang_items. f64_impl ( ) , lang_items. f64_runtime_impl ( ) ) ,
375
- Char => lang_items. char_impl ( ) ,
376
- Bool => lang_items. bool_impl ( ) ,
377
- Str => return both ( lang_items. str_impl ( ) , lang_items. str_alloc_impl ( ) ) ,
378
- Slice => {
379
- return lang_items
380
- . slice_impl ( )
381
- . into_iter ( )
382
- . chain ( lang_items. slice_u8_impl ( ) )
383
- . chain ( lang_items. slice_alloc_impl ( ) )
384
- . chain ( lang_items. slice_u8_alloc_impl ( ) )
385
- . collect ( ) ;
386
- }
387
- Array => lang_items. array_impl ( ) ,
388
- Tuple => None ,
389
- Unit => None ,
390
- RawPointer => {
391
- return lang_items
392
- . const_ptr_impl ( )
393
- . into_iter ( )
394
- . chain ( lang_items. mut_ptr_impl ( ) )
395
- . chain ( lang_items. const_slice_ptr_impl ( ) )
396
- . chain ( lang_items. mut_slice_ptr_impl ( ) )
397
- . collect ( ) ;
398
- }
399
- Reference => None ,
400
- Fn => None ,
401
- Never => None ,
402
- } ;
403
-
404
- primary_impl. into_iter ( ) . collect ( )
405
- }
406
-
407
352
pub fn build_deref_target_impls ( cx : & DocContext < ' _ > , items : & [ Item ] , ret : & mut Vec < Item > ) {
408
353
let tcx = cx. tcx ;
409
354
@@ -423,7 +368,7 @@ pub fn build_deref_target_impls(cx: &DocContext<'_>, items: &[Item], ret: &mut V
423
368
None => continue ,
424
369
} ,
425
370
} ;
426
- for did in impl_for_type ( tcx, primitive ) {
371
+ for did in primitive . impls ( tcx) {
427
372
if !did. is_local ( ) {
428
373
inline:: build_impl ( cx, did, None , ret) ;
429
374
}
0 commit comments