Handle ExprGroup when parsing
diff --git a/src/expr.rs b/src/expr.rs
index cd27c27..b050e59 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1914,10 +1914,13 @@
#[cfg(all(feature = "full", feature = "printing"))]
impl Parse for $expr_type {
fn parse(input: ParseStream) -> Result<Self> {
- let expr: Expr = input.parse()?;
- match expr {
- Expr::$variant(inner) => Ok(inner),
- _ => Err(Error::new_spanned(expr, $msg))
+ let mut expr: Expr = input.parse()?;
+ loop {
+ match expr {
+ Expr::$variant(inner) => return Ok(inner),
+ Expr::Group(ExprGroup { expr: next, .. }) => expr = *next,
+ _ => return Err(Error::new_spanned(expr, $msg))
+ }
}
}
}