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()?,
             })
         }
     }
