@@ -1396,8 +1396,12 @@ pub enum MacArgs {
1396
1396
/// Delimited arguments - `#[attr()/[]/{}]` or `mac!()/[]/{}`.
1397
1397
Delimited ( DelimSpan , MacDelimiter , TokenStream ) ,
1398
1398
/// Arguments of a key-value attribute - `#[attr = "value"]`.
1399
- /// Span belongs to the `=` token, token stream is the "value".
1400
- Eq ( Span , TokenStream ) ,
1399
+ Eq (
1400
+ /// Span of the `=` token.
1401
+ Span ,
1402
+ /// Token stream of the "value".
1403
+ TokenStream ,
1404
+ ) ,
1401
1405
}
1402
1406
1403
1407
impl MacArgs {
@@ -1421,13 +1425,13 @@ impl MacArgs {
1421
1425
pub fn inner_tokens ( & self ) -> TokenStream {
1422
1426
match self {
1423
1427
MacArgs :: Empty => TokenStream :: default ( ) ,
1424
- MacArgs :: Delimited ( .., tokens) => tokens . clone ( ) ,
1428
+ MacArgs :: Delimited ( .., tokens) |
1425
1429
MacArgs :: Eq ( .., tokens) => tokens. clone ( ) ,
1426
1430
}
1427
1431
}
1428
1432
1429
1433
/// Tokens together with the delimiters or `=`.
1430
- /// Use of this functions generally means that something suboptimal or hacky is happening.
1434
+ /// Use of this method generally means that something suboptimal or hacky is happening.
1431
1435
pub fn outer_tokens ( & self ) -> TokenStream {
1432
1436
match * self {
1433
1437
MacArgs :: Empty => TokenStream :: default ( ) ,
@@ -1461,12 +1465,12 @@ impl MacDelimiter {
1461
1465
}
1462
1466
}
1463
1467
1464
- pub fn from_token ( delim : DelimToken ) -> MacDelimiter {
1468
+ pub fn from_token ( delim : DelimToken ) -> Option < MacDelimiter > {
1465
1469
match delim {
1466
- token:: Paren => MacDelimiter :: Parenthesis ,
1467
- token:: Bracket => MacDelimiter :: Bracket ,
1468
- token:: Brace => MacDelimiter :: Brace ,
1469
- token:: NoDelim => panic ! ( "expected a delimiter" ) ,
1470
+ token:: Paren => Some ( MacDelimiter :: Parenthesis ) ,
1471
+ token:: Bracket => Some ( MacDelimiter :: Bracket ) ,
1472
+ token:: Brace => Some ( MacDelimiter :: Brace ) ,
1473
+ token:: NoDelim => None ,
1470
1474
}
1471
1475
}
1472
1476
}
0 commit comments