1010
1111use attr;
1212use ast;
13- use syntax_pos:: { mk_sp, Span } ;
14- use codemap:: spanned;
13+ use codemap:: respan;
1514use parse:: common:: SeqSep ;
1615use parse:: PResult ;
1716use parse:: token:: { self , Nonterminal } ;
@@ -49,8 +48,7 @@ impl<'a> Parser<'a> {
4948 just_parsed_doc_comment = false ;
5049 }
5150 token:: DocComment ( s) => {
52- let Span { lo, hi, .. } = self . span ;
53- let attr = attr:: mk_sugared_doc_attr ( attr:: mk_attr_id ( ) , s, lo, hi) ;
51+ let attr = attr:: mk_sugared_doc_attr ( attr:: mk_attr_id ( ) , s, self . span ) ;
5452 if attr. style != ast:: AttrStyle :: Outer {
5553 let mut err = self . fatal ( "expected outer doc comment" ) ;
5654 err. note ( "inner doc comments like this (starting with \
@@ -94,7 +92,7 @@ impl<'a> Parser<'a> {
9492 self . token) ;
9593 let ( span, path, tokens, mut style) = match self . token {
9694 token:: Pound => {
97- let lo = self . span . lo ;
95+ let lo = self . span ;
9896 self . bump ( ) ;
9997
10098 if inner_parse_policy == InnerAttributeParsePolicy :: Permitted {
@@ -122,9 +120,9 @@ impl<'a> Parser<'a> {
122120 self . expect ( & token:: OpenDelim ( token:: Bracket ) ) ?;
123121 let ( path, tokens) = self . parse_path_and_tokens ( ) ?;
124122 self . expect ( & token:: CloseDelim ( token:: Bracket ) ) ?;
125- let hi = self . prev_span . hi ;
123+ let hi = self . prev_span ;
126124
127- ( mk_sp ( lo , hi) , path, tokens, style)
125+ ( lo . to ( hi) , path, tokens, style)
128126 }
129127 _ => {
130128 let token_str = self . this_token_to_string ( ) ;
@@ -189,8 +187,7 @@ impl<'a> Parser<'a> {
189187 }
190188 token:: DocComment ( s) => {
191189 // we need to get the position of this token before we bump.
192- let Span { lo, hi, .. } = self . span ;
193- let attr = attr:: mk_sugared_doc_attr ( attr:: mk_attr_id ( ) , s, lo, hi) ;
190+ let attr = attr:: mk_sugared_doc_attr ( attr:: mk_attr_id ( ) , s, self . span ) ;
194191 if attr. style == ast:: AttrStyle :: Inner {
195192 attrs. push ( attr) ;
196193 self . bump ( ) ;
@@ -238,11 +235,10 @@ impl<'a> Parser<'a> {
238235 return Ok ( meta) ;
239236 }
240237
241- let lo = self . span . lo ;
238+ let lo = self . span ;
242239 let ident = self . parse_ident ( ) ?;
243240 let node = self . parse_meta_item_kind ( ) ?;
244- let hi = self . prev_span . hi ;
245- Ok ( ast:: MetaItem { name : ident. name , node : node, span : mk_sp ( lo, hi) } )
241+ Ok ( ast:: MetaItem { name : ident. name , node : node, span : lo. to ( self . prev_span ) } )
246242 }
247243
248244 pub fn parse_meta_item_kind ( & mut self ) -> PResult < ' a , ast:: MetaItemKind > {
@@ -258,26 +254,25 @@ impl<'a> Parser<'a> {
258254
259255 /// matches meta_item_inner : (meta_item | UNSUFFIXED_LIT) ;
260256 fn parse_meta_item_inner ( & mut self ) -> PResult < ' a , ast:: NestedMetaItem > {
261- let sp = self . span ;
262- let lo = self . span . lo ;
257+ let lo = self . span ;
263258
264259 match self . parse_unsuffixed_lit ( ) {
265260 Ok ( lit) => {
266- return Ok ( spanned ( lo, self . prev_span . hi , ast:: NestedMetaItemKind :: Literal ( lit) ) )
261+ return Ok ( respan ( lo. to ( self . prev_span ) , ast:: NestedMetaItemKind :: Literal ( lit) ) )
267262 }
268263 Err ( ref mut err) => self . diagnostic ( ) . cancel ( err)
269264 }
270265
271266 match self . parse_meta_item ( ) {
272267 Ok ( mi) => {
273- return Ok ( spanned ( lo, self . prev_span . hi , ast:: NestedMetaItemKind :: MetaItem ( mi) ) )
268+ return Ok ( respan ( lo. to ( self . prev_span ) , ast:: NestedMetaItemKind :: MetaItem ( mi) ) )
274269 }
275270 Err ( ref mut err) => self . diagnostic ( ) . cancel ( err)
276271 }
277272
278273 let found = self . this_token_to_string ( ) ;
279274 let msg = format ! ( "expected unsuffixed literal or identifier, found {}" , found) ;
280- Err ( self . diagnostic ( ) . struct_span_err ( sp , & msg) )
275+ Err ( self . diagnostic ( ) . struct_span_err ( lo , & msg) )
281276 }
282277
283278 /// matches meta_seq = ( COMMASEP(meta_item_inner) )
0 commit comments