@@ -219,7 +219,7 @@ impl Attribute {
219219 /// Extracts the MetaItem from inside this Attribute.
220220 pub fn meta ( & self ) -> Option < MetaItem > {
221221 match & self . kind {
222- AttrKind :: Normal ( normal) => normal. item . meta ( self . span ) ,
222+ AttrKind :: Normal ( normal) => normal. item . meta ( ) ,
223223 AttrKind :: DocComment ( ..) => None ,
224224 }
225225 }
@@ -285,12 +285,12 @@ impl AttrItem {
285285 }
286286 }
287287
288- pub fn meta ( & self , span : Span ) -> Option < MetaItem > {
288+ pub fn meta ( & self ) -> Option < MetaItem > {
289289 Some ( MetaItem {
290290 unsafety : Safety :: Default ,
291291 path : self . path . clone ( ) ,
292292 kind : self . meta_kind ( ) ?,
293- span,
293+ span : self . span ( ) ,
294294 } )
295295 }
296296
@@ -406,7 +406,7 @@ impl MetaItem {
406406 Path { span, segments, tokens : None }
407407 }
408408 Some ( TokenTree :: Token ( Token { kind : token:: Interpolated ( nt) , .. } , _) ) => match & * * nt {
409- token:: Nonterminal :: NtMeta ( item) => return item. meta ( item . path . span ) ,
409+ token:: Nonterminal :: NtMeta ( item) => return item. meta ( ) ,
410410 token:: Nonterminal :: NtPath ( path) => ( * * path) . clone ( ) ,
411411 _ => return None ,
412412 } ,
@@ -620,8 +620,15 @@ pub fn mk_attr(
620620 path : Path ,
621621 args : AttrArgs ,
622622 span : Span ,
623+ inner_span : Span ,
623624) -> Attribute {
624- mk_attr_from_item ( g, AttrItem { unsafety, path, args, tokens : None } , None , style, span)
625+ mk_attr_from_item (
626+ g,
627+ AttrItem { unsafety, path, args, tokens : None , span : inner_span } ,
628+ None ,
629+ style,
630+ span,
631+ )
625632}
626633
627634pub fn mk_attr_from_item (
@@ -645,10 +652,11 @@ pub fn mk_attr_word(
645652 unsafety : Safety ,
646653 name : Symbol ,
647654 span : Span ,
655+ inner_span : Span ,
648656) -> Attribute {
649657 let path = Path :: from_ident ( Ident :: new ( name, span) ) ;
650658 let args = AttrArgs :: Empty ;
651- mk_attr ( g, style, unsafety, path, args, span)
659+ mk_attr ( g, style, unsafety, path, args, span, inner_span )
652660}
653661
654662pub fn mk_attr_nested_word (
@@ -658,6 +666,7 @@ pub fn mk_attr_nested_word(
658666 outer : Symbol ,
659667 inner : Symbol ,
660668 span : Span ,
669+ inner_span : Span ,
661670) -> Attribute {
662671 let inner_tokens = TokenStream :: new ( vec ! [ TokenTree :: Token (
663672 Token :: from_ast_ident( Ident :: new( inner, span) ) ,
@@ -670,7 +679,7 @@ pub fn mk_attr_nested_word(
670679 delim : Delimiter :: Parenthesis ,
671680 tokens : inner_tokens,
672681 } ) ;
673- mk_attr ( g, style, unsafety, path, attr_args, span)
682+ mk_attr ( g, style, unsafety, path, attr_args, span, inner_span )
674683}
675684
676685pub fn mk_attr_name_value_str (
@@ -680,6 +689,7 @@ pub fn mk_attr_name_value_str(
680689 name : Symbol ,
681690 val : Symbol ,
682691 span : Span ,
692+ inner_span : Span ,
683693) -> Attribute {
684694 let lit = token:: Lit :: new ( token:: Str , escape_string_symbol ( val) , None ) ;
685695 let expr = P ( Expr {
@@ -691,7 +701,7 @@ pub fn mk_attr_name_value_str(
691701 } ) ;
692702 let path = Path :: from_ident ( Ident :: new ( name, span) ) ;
693703 let args = AttrArgs :: Eq { eq_span : span, expr } ;
694- mk_attr ( g, style, unsafety, path, args, span)
704+ mk_attr ( g, style, unsafety, path, args, span, inner_span )
695705}
696706
697707pub fn filter_by_name < A : AttributeExt > ( attrs : & [ A ] , name : Symbol ) -> impl Iterator < Item = & A > {
0 commit comments