@@ -3680,18 +3680,24 @@ fn sidebar_assoc_items(it: &clean::Item) -> String {
3680
3680
}
3681
3681
let mut links = HashSet :: new ( ) ;
3682
3682
let ret = v. iter ( )
3683
- . filter_map ( |i| if let Some ( ref i) = i. inner_impl ( ) . trait_ {
3684
- let i_display = format ! ( "{:#}" , i) ;
3685
- let out = Escape ( & i_display) ;
3686
- let encoded = small_url_encode ( & format ! ( "{:#}" , i) ) ;
3687
- let generated = format ! ( "<a href=\" #impl-{}\" >{}</a>" , encoded, out) ;
3688
- if !links. contains ( & generated) && links. insert ( generated. clone ( ) ) {
3689
- Some ( generated)
3683
+ . filter_map ( |i| {
3684
+ let is_negative_impl = is_negative_impl ( i. inner_impl ( ) ) ;
3685
+ if let Some ( ref i) = i. inner_impl ( ) . trait_ {
3686
+ let i_display = format ! ( "{:#}" , i) ;
3687
+ let out = Escape ( & i_display) ;
3688
+ let encoded = small_url_encode ( & format ! ( "{:#}" , i) ) ;
3689
+ let generated = format ! ( "<a href=\" #impl-{}\" >{}{}</a>" ,
3690
+ encoded,
3691
+ if is_negative_impl { "!" } else { "" } ,
3692
+ out) ;
3693
+ if !links. contains ( & generated) && links. insert ( generated. clone ( ) ) {
3694
+ Some ( generated)
3695
+ } else {
3696
+ None
3697
+ }
3690
3698
} else {
3691
3699
None
3692
3700
}
3693
- } else {
3694
- None
3695
3701
} )
3696
3702
. collect :: < String > ( ) ;
3697
3703
if !ret. is_empty ( ) {
@@ -3738,6 +3744,10 @@ fn extract_for_impl_name(item: &clean::Item) -> Option<(String, String)> {
3738
3744
}
3739
3745
}
3740
3746
3747
+ fn is_negative_impl ( i : & clean:: Impl ) -> bool {
3748
+ i. polarity == Some ( clean:: ImplPolarity :: Negative )
3749
+ }
3750
+
3741
3751
fn sidebar_trait ( fmt : & mut fmt:: Formatter , it : & clean:: Item ,
3742
3752
t : & clean:: Trait ) -> fmt:: Result {
3743
3753
let mut sidebar = String :: new ( ) ;
0 commit comments