@@ -3613,18 +3613,24 @@ fn sidebar_assoc_items(it: &clean::Item) -> String {
3613
3613
}
3614
3614
let mut links = HashSet :: new ( ) ;
3615
3615
let ret = v. iter ( )
3616
- . filter_map ( |i| if let Some ( ref i) = i. inner_impl ( ) . trait_ {
3617
- let i_display = format ! ( "{:#}" , i) ;
3618
- let out = Escape ( & i_display) ;
3619
- let encoded = small_url_encode ( & format ! ( "{:#}" , i) ) ;
3620
- let generated = format ! ( "<a href=\" #impl-{}\" >{}</a>" , encoded, out) ;
3621
- if !links. contains ( & generated) && links. insert ( generated. clone ( ) ) {
3622
- Some ( generated)
3616
+ . filter_map ( |i| {
3617
+ let is_negative_impl = is_negative_impl ( i. inner_impl ( ) ) ;
3618
+ if let Some ( ref i) = i. inner_impl ( ) . trait_ {
3619
+ let i_display = format ! ( "{:#}" , i) ;
3620
+ let out = Escape ( & i_display) ;
3621
+ let encoded = small_url_encode ( & format ! ( "{:#}" , i) ) ;
3622
+ let generated = format ! ( "<a href=\" #impl-{}\" >{}{}</a>" ,
3623
+ encoded,
3624
+ if is_negative_impl { "!" } else { "" } ,
3625
+ out) ;
3626
+ if !links. contains ( & generated) && links. insert ( generated. clone ( ) ) {
3627
+ Some ( generated)
3628
+ } else {
3629
+ None
3630
+ }
3623
3631
} else {
3624
3632
None
3625
3633
}
3626
- } else {
3627
- None
3628
3634
} )
3629
3635
. collect :: < String > ( ) ;
3630
3636
if !ret. is_empty ( ) {
@@ -3671,6 +3677,10 @@ fn extract_for_impl_name(item: &clean::Item) -> Option<(String, String)> {
3671
3677
}
3672
3678
}
3673
3679
3680
+ fn is_negative_impl ( i : & clean:: Impl ) -> bool {
3681
+ i. polarity == Some ( clean:: ImplPolarity :: Negative )
3682
+ }
3683
+
3674
3684
fn sidebar_trait ( fmt : & mut fmt:: Formatter , it : & clean:: Item ,
3675
3685
t : & clean:: Trait ) -> fmt:: Result {
3676
3686
let mut sidebar = String :: new ( ) ;
0 commit comments