Auto merge of #62075 - Centril:guardless-match-arms, r=petrochenkov
Remove `ast::Guard` With the introduction of `ast::ExprKind::Let` in https://github.com/rust-lang/rust/pull/60861, the `ast::Guard` structure is now redundant in terms of representing [`if let` guards](https://github.com/rust-lang/rust/issues/51114) in AST since it can be represented by `ExprKind::Let` syntactically. Therefore, we remove `ast::Guard` here. However, we keep `hir::Guard` because the semantic representation is a different matter and this story is more unclear right now (might involve `goto 'arm` in HIR or something...). r? @petrochenkov
This commit is contained in:
commit
3cc3486733
8 changed files with 14 additions and 36 deletions
|
@ -3,7 +3,7 @@
|
|||
use crate::ast::{AngleBracketedArgs, ParenthesizedArgs, AttrStyle, BareFnTy};
|
||||
use crate::ast::{GenericBound, TraitBoundModifier};
|
||||
use crate::ast::Unsafety;
|
||||
use crate::ast::{Mod, AnonConst, Arg, Arm, Guard, Attribute, BindingMode, TraitItemKind};
|
||||
use crate::ast::{Mod, AnonConst, Arg, Arm, Attribute, BindingMode, TraitItemKind};
|
||||
use crate::ast::Block;
|
||||
use crate::ast::{BlockCheckMode, CaptureBy, Movability};
|
||||
use crate::ast::{Constness, Crate};
|
||||
|
@ -3396,7 +3396,7 @@ impl<'a> Parser<'a> {
|
|||
let lo = self.token.span;
|
||||
let pats = self.parse_pats()?;
|
||||
let guard = if self.eat_keyword(kw::If) {
|
||||
Some(Guard::If(self.parse_expr()?))
|
||||
Some(self.parse_expr()?)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue