@@ -530,7 +530,7 @@ pub struct CfgHideShow {
530530 pub values : ThinVec < CfgInfo > ,
531531}
532532
533- #[ derive( Clone , Debug , Default , HashStable_Generic , Encodable , Decodable , PrintAttribute ) ]
533+ #[ derive( Clone , Debug , Default , HashStable_Generic , Decodable , PrintAttribute ) ]
534534pub struct DocAttribute {
535535 pub aliases : FxIndexMap < Symbol , Span > ,
536536 pub hidden : Option < Span > ,
@@ -566,6 +566,61 @@ pub struct DocAttribute {
566566 pub no_crate_inject : Option < Span > ,
567567}
568568
569+ impl < E : rustc_span:: SpanEncoder > rustc_serialize:: Encodable < E > for DocAttribute {
570+ fn encode ( & self , encoder : & mut E ) {
571+ let DocAttribute {
572+ aliases,
573+ hidden,
574+ inline,
575+ cfg,
576+ auto_cfg,
577+ auto_cfg_change,
578+ fake_variadic,
579+ keyword,
580+ attribute,
581+ masked,
582+ notable_trait,
583+ search_unbox,
584+ html_favicon_url,
585+ html_logo_url,
586+ html_playground_url,
587+ html_root_url,
588+ html_no_source,
589+ issue_tracker_base_url,
590+ rust_logo,
591+ test_attrs,
592+ no_crate_inject,
593+ } = self ;
594+ rustc_serialize:: Encodable :: < E > :: encode ( aliases, encoder) ;
595+ rustc_serialize:: Encodable :: < E > :: encode ( hidden, encoder) ;
596+
597+ // FIXME: The `doc(inline)` attribute is never encoded, but is it actually the right thing
598+ // to do? I suspect the condition was broken, should maybe instead not encode anything if we
599+ // have `doc(no_inline)`.
600+ let inline = inline. iter ( ) . filter ( |i| i != DocInline :: Inline ) . cloned ( ) . collect ( ) ;
601+ rustc_serialize:: Encodable :: < E > :: encode ( inline, encoder) ;
602+
603+ rustc_serialize:: Encodable :: < E > :: encode ( cfg, encoder) ;
604+ rustc_serialize:: Encodable :: < E > :: encode ( auto_cfg, encoder) ;
605+ rustc_serialize:: Encodable :: < E > :: encode ( auto_cfg_change, encoder) ;
606+ rustc_serialize:: Encodable :: < E > :: encode ( fake_variadic, encoder) ;
607+ rustc_serialize:: Encodable :: < E > :: encode ( keyword, encoder) ;
608+ rustc_serialize:: Encodable :: < E > :: encode ( attribute, encoder) ;
609+ rustc_serialize:: Encodable :: < E > :: encode ( masked, encoder) ;
610+ rustc_serialize:: Encodable :: < E > :: encode ( notable_trait, encoder) ;
611+ rustc_serialize:: Encodable :: < E > :: encode ( search_unbox, encoder) ;
612+ rustc_serialize:: Encodable :: < E > :: encode ( html_favicon_url, encoder) ;
613+ rustc_serialize:: Encodable :: < E > :: encode ( html_logo_url, encoder) ;
614+ rustc_serialize:: Encodable :: < E > :: encode ( html_playground_url, encoder) ;
615+ rustc_serialize:: Encodable :: < E > :: encode ( html_root_url, encoder) ;
616+ rustc_serialize:: Encodable :: < E > :: encode ( html_no_source, encoder) ;
617+ rustc_serialize:: Encodable :: < E > :: encode ( issue_tracker_base_url, encoder) ;
618+ rustc_serialize:: Encodable :: < E > :: encode ( rust_logo, encoder) ;
619+ rustc_serialize:: Encodable :: < E > :: encode ( test_attrs, encoder) ;
620+ rustc_serialize:: Encodable :: < E > :: encode ( no_crate_inject, encoder) ;
621+ }
622+ }
623+
569624/// Represents parsed *built-in* inert attributes.
570625///
571626/// ## Overview
0 commit comments