|
1 | 1 | //! Functions dealing with attributes and meta items.
|
2 | 2 |
|
| 3 | +use std::fmt::Debug; |
3 | 4 | use std::iter;
|
4 | 5 | use std::sync::atomic::{AtomicU32, Ordering};
|
5 | 6 |
|
@@ -68,7 +69,7 @@ impl AttributeExt for Attribute {
|
68 | 69 | fn value_span(&self) -> Option<Span> {
|
69 | 70 | match &self.kind {
|
70 | 71 | AttrKind::Normal(normal) => match &normal.item.args {
|
71 |
| - AttrArgs::Eq(_, l) => Some(l.span), |
| 72 | + AttrArgs::Eq { eq_span: _, value } => Some(value.span), |
72 | 73 | _ => None,
|
73 | 74 | },
|
74 | 75 | AttrKind::DocComment(..) => None,
|
@@ -225,13 +226,13 @@ impl AttrItem {
|
225 | 226 | AttrArgs::Delimited(args) if args.delim == Delimiter::Parenthesis => {
|
226 | 227 | MetaItemKind::list_from_tokens(args.tokens.clone())
|
227 | 228 | }
|
228 |
| - AttrArgs::Delimited(_) | AttrArgs::Eq(..) | AttrArgs::Empty => None, |
| 229 | + AttrArgs::Delimited(_) | AttrArgs::Eq { .. } | AttrArgs::Empty => None, |
229 | 230 | }
|
230 | 231 | }
|
231 | 232 |
|
232 | 233 | fn value_str(&self) -> Option<Symbol> {
|
233 | 234 | match &self.args {
|
234 |
| - AttrArgs::Eq(_, expr) => match expr.kind { |
| 235 | + AttrArgs::Eq { eq_span: _, value } => match value.kind { |
235 | 236 | ExprKind::Lit(token_lit) => {
|
236 | 237 | LitKind::from_token_lit(token_lit).ok().and_then(|lit| lit.str())
|
237 | 238 | }
|
@@ -435,10 +436,10 @@ impl MetaItemKind {
|
435 | 436 | MetaItemKind::list_from_tokens(tokens.clone()).map(MetaItemKind::List)
|
436 | 437 | }
|
437 | 438 | AttrArgs::Delimited(..) => None,
|
438 |
| - AttrArgs::Eq(_, expr) => match expr.kind { |
| 439 | + AttrArgs::Eq { eq_span: _, value } => match value.kind { |
439 | 440 | ExprKind::Lit(token_lit) => {
|
440 | 441 | // Turn failures to `None`, we'll get parse errors elsewhere.
|
441 |
| - MetaItemLit::from_token_lit(token_lit, expr.span) |
| 442 | + MetaItemLit::from_token_lit(token_lit, value.span) |
442 | 443 | .ok()
|
443 | 444 | .map(|lit| MetaItemKind::NameValue(lit))
|
444 | 445 | }
|
@@ -636,15 +637,15 @@ pub fn mk_attr_name_value_str(
|
636 | 637 | span: Span,
|
637 | 638 | ) -> Attribute {
|
638 | 639 | let lit = token::Lit::new(token::Str, escape_string_symbol(val), None);
|
639 |
| - let expr = P(Expr { |
| 640 | + let value = P(Expr { |
640 | 641 | id: DUMMY_NODE_ID,
|
641 | 642 | kind: ExprKind::Lit(lit),
|
642 | 643 | span,
|
643 | 644 | attrs: AttrVec::new(),
|
644 | 645 | tokens: None,
|
645 | 646 | });
|
646 | 647 | let path = Path::from_ident(Ident::new(name, span));
|
647 |
| - let args = AttrArgs::Eq(span, expr); |
| 648 | + let args = AttrArgs::Eq { eq_span: span, value }; |
648 | 649 | mk_attr(g, style, unsafety, path, args, span)
|
649 | 650 | }
|
650 | 651 |
|
|
0 commit comments