@@ -1396,8 +1396,12 @@ pub enum MacArgs {
13961396 /// Delimited arguments - `#[attr()/[]/{}]` or `mac!()/[]/{}`.
13971397 Delimited ( DelimSpan , MacDelimiter , TokenStream ) ,
13981398 /// 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+ ) ,
14011405}
14021406
14031407impl MacArgs {
@@ -1421,13 +1425,13 @@ impl MacArgs {
14211425 pub fn inner_tokens ( & self ) -> TokenStream {
14221426 match self {
14231427 MacArgs :: Empty => TokenStream :: default ( ) ,
1424- MacArgs :: Delimited ( .., tokens) => tokens . clone ( ) ,
1428+ MacArgs :: Delimited ( .., tokens) |
14251429 MacArgs :: Eq ( .., tokens) => tokens. clone ( ) ,
14261430 }
14271431 }
14281432
14291433 /// 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.
14311435 pub fn outer_tokens ( & self ) -> TokenStream {
14321436 match * self {
14331437 MacArgs :: Empty => TokenStream :: default ( ) ,
@@ -1461,12 +1465,12 @@ impl MacDelimiter {
14611465 }
14621466 }
14631467
1464- pub fn from_token ( delim : DelimToken ) -> MacDelimiter {
1468+ pub fn from_token ( delim : DelimToken ) -> Option < MacDelimiter > {
14651469 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 ,
14701474 }
14711475 }
14721476}
0 commit comments