File tree 1 file changed +7
-0
lines changed 1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -108,6 +108,7 @@ pub enum ExternalLocation {
108
108
109
109
/// Metadata about an implementor of a trait.
110
110
pub struct Implementor {
111
+ def_id : ast:: DefId ,
111
112
generics : clean:: Generics ,
112
113
trait_ : clean:: Type ,
113
114
for_ : clean:: Type ,
@@ -531,6 +532,11 @@ fn write_shared(cx: &Context,
531
532
532
533
try!( write ! ( & mut f, r"implementors['{}'] = [" , krate. name) ) ;
533
534
for imp in imps. iter ( ) {
535
+ // If the trait and implementation are in the same crate, then
536
+ // there's no need to emit information about it (there's inlining
537
+ // going on). If they're in different crates then the crate defining
538
+ // the trait will be interested in our implementation.
539
+ if imp. def_id . krate == did. krate { continue }
534
540
try!( write ! ( & mut f, r#""impl{} {} for {}","# ,
535
541
imp. generics, imp. trait_, imp. for_) ) ;
536
542
}
@@ -759,6 +765,7 @@ impl DocFolder for Cache {
759
765
Vec :: new ( )
760
766
} ) ;
761
767
v. push ( Implementor {
768
+ def_id : item. def_id ,
762
769
generics : i. generics . clone ( ) ,
763
770
trait_ : i. trait_ . get_ref ( ) . clone ( ) ,
764
771
for_ : i. for_ . clone ( ) ,
You can’t perform that action at this time.
0 commit comments