@@ -219,7 +219,7 @@ impl Attribute {
219
219
/// Extracts the MetaItem from inside this Attribute.
220
220
pub fn meta ( & self ) -> Option < MetaItem > {
221
221
match & self . kind {
222
- AttrKind :: Normal ( normal) => normal. item . meta ( self . span ) ,
222
+ AttrKind :: Normal ( normal) => normal. item . meta ( ) ,
223
223
AttrKind :: DocComment ( ..) => None ,
224
224
}
225
225
}
@@ -285,12 +285,12 @@ impl AttrItem {
285
285
}
286
286
}
287
287
288
- pub fn meta ( & self , span : Span ) -> Option < MetaItem > {
288
+ pub fn meta ( & self ) -> Option < MetaItem > {
289
289
Some ( MetaItem {
290
290
unsafety : Safety :: Default ,
291
291
path : self . path . clone ( ) ,
292
292
kind : self . meta_kind ( ) ?,
293
- span,
293
+ span : self . span ( ) ,
294
294
} )
295
295
}
296
296
@@ -406,7 +406,7 @@ impl MetaItem {
406
406
Path { span, segments, tokens : None }
407
407
}
408
408
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 ( ) ,
410
410
token:: Nonterminal :: NtPath ( path) => ( * * path) . clone ( ) ,
411
411
_ => return None ,
412
412
} ,
@@ -620,8 +620,15 @@ pub fn mk_attr(
620
620
path : Path ,
621
621
args : AttrArgs ,
622
622
span : Span ,
623
+ inner_span : Span ,
623
624
) -> 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
+ )
625
632
}
626
633
627
634
pub fn mk_attr_from_item (
@@ -645,10 +652,11 @@ pub fn mk_attr_word(
645
652
unsafety : Safety ,
646
653
name : Symbol ,
647
654
span : Span ,
655
+ inner_span : Span ,
648
656
) -> Attribute {
649
657
let path = Path :: from_ident ( Ident :: new ( name, span) ) ;
650
658
let args = AttrArgs :: Empty ;
651
- mk_attr ( g, style, unsafety, path, args, span)
659
+ mk_attr ( g, style, unsafety, path, args, span, inner_span )
652
660
}
653
661
654
662
pub fn mk_attr_nested_word (
@@ -658,6 +666,7 @@ pub fn mk_attr_nested_word(
658
666
outer : Symbol ,
659
667
inner : Symbol ,
660
668
span : Span ,
669
+ inner_span : Span ,
661
670
) -> Attribute {
662
671
let inner_tokens = TokenStream :: new ( vec ! [ TokenTree :: Token (
663
672
Token :: from_ast_ident( Ident :: new( inner, span) ) ,
@@ -670,7 +679,7 @@ pub fn mk_attr_nested_word(
670
679
delim : Delimiter :: Parenthesis ,
671
680
tokens : inner_tokens,
672
681
} ) ;
673
- mk_attr ( g, style, unsafety, path, attr_args, span)
682
+ mk_attr ( g, style, unsafety, path, attr_args, span, inner_span )
674
683
}
675
684
676
685
pub fn mk_attr_name_value_str (
@@ -680,6 +689,7 @@ pub fn mk_attr_name_value_str(
680
689
name : Symbol ,
681
690
val : Symbol ,
682
691
span : Span ,
692
+ inner_span : Span ,
683
693
) -> Attribute {
684
694
let lit = token:: Lit :: new ( token:: Str , escape_string_symbol ( val) , None ) ;
685
695
let expr = P ( Expr {
@@ -691,7 +701,7 @@ pub fn mk_attr_name_value_str(
691
701
} ) ;
692
702
let path = Path :: from_ident ( Ident :: new ( name, span) ) ;
693
703
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 )
695
705
}
696
706
697
707
pub fn filter_by_name < A : AttributeExt > ( attrs : & [ A ] , name : Symbol ) -> impl Iterator < Item = & A > {
0 commit comments