Skip to content

Commit

Permalink
Merge pull request #1396 from dtolnay/macrodelimspan
Browse files Browse the repository at this point in the history
Add MacroDelimiter::span method
  • Loading branch information
dtolnay committed Mar 13, 2023
2 parents 182f6e8 + 7e84b26 commit c7c1292
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/attr.rs
Expand Up @@ -257,7 +257,7 @@ impl Attribute {
Err(Error::new(meta.eq_token.span, msg))
}
Meta::List(meta) => {
let scope = crate::mac::delimiter_span_close(&meta.delimiter);
let scope = meta.delimiter.span().close();
crate::parse::parse_scoped(parser, scope, meta.tokens.clone())
}
}
Expand Down
21 changes: 11 additions & 10 deletions src/mac.rs
@@ -1,10 +1,11 @@
use super::*;
use crate::token::{Brace, Bracket, Paren};
use proc_macro2::extra::DelimSpan;
#[cfg(any(feature = "parsing", feature = "printing"))]
use proc_macro2::Delimiter;
use proc_macro2::TokenStream;
#[cfg(feature = "parsing")]
use proc_macro2::{Span, TokenTree};
use proc_macro2::TokenTree;

#[cfg(feature = "parsing")]
use crate::parse::{Parse, ParseStream, Parser, Result};
Expand All @@ -30,14 +31,14 @@ ast_enum! {
}
}

#[cfg(feature = "parsing")]
pub(crate) fn delimiter_span_close(macro_delimiter: &MacroDelimiter) -> Span {
let delim_span = match macro_delimiter {
MacroDelimiter::Paren(token) => &token.span,
MacroDelimiter::Brace(token) => &token.span,
MacroDelimiter::Bracket(token) => &token.span,
};
delim_span.close()
impl MacroDelimiter {
pub fn span(&self) -> &DelimSpan {
match self {
MacroDelimiter::Paren(token) => &token.span,
MacroDelimiter::Brace(token) => &token.span,
MacroDelimiter::Bracket(token) => &token.span,
}
}
}

impl Macro {
Expand Down Expand Up @@ -134,7 +135,7 @@ impl Macro {
#[cfg(feature = "parsing")]
#[cfg_attr(doc_cfg, doc(cfg(feature = "parsing")))]
pub fn parse_body_with<F: Parser>(&self, parser: F) -> Result<F::Output> {
let scope = delimiter_span_close(&self.delimiter);
let scope = self.delimiter.span().close();
crate::parse::parse_scoped(parser, scope, self.tokens.clone())
}
}
Expand Down

0 comments on commit c7c1292

Please sign in to comment.