Remove grouped macro
diff --git a/src/expr.rs b/src/expr.rs
index 5b635ae..b6aef5a 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1026,7 +1026,7 @@
#[cfg(feature = "full")]
use ext::IdentExt;
- use parse::{Parse, ParseStream, Result};
+ use parse::{Parse, ParseBuffer, ParseStream, Result};
use path;
// When we're parsing expressions which occur before blocks, like in an if
@@ -1814,11 +1814,11 @@
#[cfg(feature = "full")]
fn expr_group(input: ParseStream) -> Result<ExprGroup> {
- let content;
+ let group = private::<ParseBuffer>::parse_group(input)?;
Ok(ExprGroup {
attrs: Vec::new(),
- group_token: grouped!(content in input),
- expr: content.parse()?,
+ group_token: group.token,
+ expr: group.content.parse()?,
})
}
diff --git a/src/group.rs b/src/group.rs
index b968b91..7acb318 100644
--- a/src/group.rs
+++ b/src/group.rs
@@ -1,7 +1,7 @@
use proc_macro2::{Delimiter, Span};
use error::Result;
-use parse::ParseBuffer;
+use parse::{ParseBuffer, ParseStream};
use private;
use token;
@@ -74,11 +74,11 @@
content: content,
})
}
+}
- // Not public API.
- #[doc(hidden)]
- pub fn parse_group(&self) -> Result<Group<'a>> {
- self.parse_delimited(Delimiter::None)
+impl<'a> private<ParseBuffer<'a>> {
+ pub fn parse_group(input: ParseStream) -> Result<Group> {
+ input.parse_delimited(Delimiter::None)
.map(|(span, content)| Group {
token: token::Group(span),
content: content,
@@ -169,19 +169,3 @@
}
};
}
-
-#[doc(hidden)]
-#[macro_export]
-macro_rules! grouped {
- ($content:ident in $cursor:expr) => {
- match $crate::parse::ParseBuffer::parse_group(&$cursor) {
- $crate::export::Ok(group) => {
- $content = group.content;
- group.token
- }
- $crate::export::Err(error) => {
- return $crate::export::Err(error);
- }
- }
- };
-}
diff --git a/src/ty.rs b/src/ty.rs
index 94258e1..23e516a 100644
--- a/src/ty.rs
+++ b/src/ty.rs
@@ -250,7 +250,7 @@
pub mod parsing {
use super::*;
- use parse::{Parse, ParseStream, Result};
+ use parse::{Parse, ParseBuffer, ParseStream, Result};
use path;
impl Parse for Type {
@@ -677,10 +677,10 @@
impl Parse for TypeGroup {
fn parse(input: ParseStream) -> Result<Self> {
- let content;
+ let group = private::<ParseBuffer>::parse_group(input)?;
Ok(TypeGroup {
- group_token: grouped!(content in input),
- elem: content.parse()?,
+ group_token: group.token,
+ elem: group.content.parse()?,
})
}
}