Parse impl for ExprMatch
@@ -1508,7 +1508,7 @@ pub mod parsing {
} else if input.peek(Token![loop]) {
input.call(expr_loop).map(Expr::Loop)
} else if input.peek(Token![match]) {
- input.call(expr_match).map(Expr::Match)
+ input.parse().map(Expr::Match)
} else if input.peek(Token![yield]) {
input.call(expr_yield).map(Expr::Yield)
} else if input.peek(Token![unsafe]) {
@@ -1703,7 +1703,7 @@ pub mod parsing {
} else if input.peek(Token![loop]) {
Expr::Loop(input.call(expr_loop)?)
} else if input.peek(Token![match]) {
- Expr::Match(input.call(expr_match)?)
+ Expr::Match(input.parse()?)
} else if input.peek(Token![try]) && input.peek2(token::Brace) {
Expr::TryBlock(input.call(expr_try_block)?)
} else if input.peek(Token![unsafe]) {
@@ -1877,7 +1877,8 @@ pub mod parsing {
}
#[cfg(feature = "full")]
- fn expr_match(input: ParseStream) -> Result<ExprMatch> {
+ impl Parse for ExprMatch {
+ fn parse(input: ParseStream) -> Result<Self> {
let match_token: Token![match] = input.parse()?;
let expr = expr_no_struct(input)?;
@@ -1898,6 +1899,7 @@ pub mod parsing {
arms: arms,
})
}
+ }
#[cfg(feature = "full")]
fn expr_try_block(input: ParseStream) -> Result<ExprTryBlock> {
