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