@@ -125,6 +125,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
125
125
match item. node {
126
126
ast:: ForeignItemKind :: Fn ( ref decl, ref generics) => {
127
127
let sub_span = self . span_utils . sub_span_after_keyword ( item. span , keywords:: Fn ) ;
128
+ filter ! ( self . span_utils, sub_span, item. span, None ) ;
128
129
Some ( Data :: FunctionData ( FunctionData {
129
130
id : item. id ,
130
131
name : item. ident . to_string ( ) ,
@@ -137,11 +138,13 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
137
138
parent : None ,
138
139
docs : docs_for_attrs ( & item. attrs ) ,
139
140
sig : self . sig_base_extern ( item) ,
141
+ attributes : item. attrs . clone ( ) ,
140
142
} ) )
141
143
}
142
144
ast:: ForeignItemKind :: Static ( ref ty, m) => {
143
145
let keyword = if m { keywords:: Mut } else { keywords:: Static } ;
144
146
let sub_span = self . span_utils . sub_span_after_keyword ( item. span , keyword) ;
147
+ filter ! ( self . span_utils, sub_span, item. span, None ) ;
145
148
Some ( Data :: VariableData ( VariableData {
146
149
id : item. id ,
147
150
kind : VariableKind :: Static ,
@@ -155,6 +158,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
155
158
visibility : From :: from ( & item. vis ) ,
156
159
docs : docs_for_attrs ( & item. attrs ) ,
157
160
sig : Some ( self . sig_base_extern ( item) ) ,
161
+ attributes : item. attrs . clone ( ) ,
158
162
} ) )
159
163
}
160
164
}
@@ -797,7 +801,7 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> {
797
801
let ident_start = text. find ( & name) . expect ( "Name not in signature?" ) ;
798
802
let ident_end = ident_start + name. len ( ) ;
799
803
Signature {
800
- span : mk_sp ( item . span . lo , item. span . lo + BytePos ( text. len ( ) as u32 ) ) ,
804
+ span : Span { hi : item. span . lo + BytePos ( text. len ( ) as u32 ) , ..item . span } ,
801
805
text : text,
802
806
ident_start : ident_start,
803
807
ident_end : ident_end,
0 commit comments