@@ -1241,19 +1241,20 @@ impl<'a> Parser<'a> {
1241
1241
Ok ( cond)
1242
1242
}
1243
1243
1244
- /// Parses a `let $pats = $expr` pseudo-expression.
1244
+ /// Parses a `let $pat = $expr` pseudo-expression.
1245
1245
/// The `let` token has already been eaten.
1246
1246
fn parse_let_expr ( & mut self , attrs : ThinVec < Attribute > ) -> PResult < ' a , P < Expr > > {
1247
1247
let lo = self . prev_span ;
1248
- let pats = self . parse_pats ( ) ?;
1248
+ // FIXME(or_patterns, Centril | dlrobertson): use `parse_top_pat` instead.
1249
+ let pat = self . parse_top_pat_unpack ( false ) ?;
1249
1250
self . expect ( & token:: Eq ) ?;
1250
1251
let expr = self . with_res (
1251
1252
Restrictions :: NO_STRUCT_LITERAL ,
1252
1253
|this| this. parse_assoc_expr_with ( 1 + prec_let_scrutinee_needs_par ( ) , None . into ( ) )
1253
1254
) ?;
1254
1255
let span = lo. to ( expr. span ) ;
1255
1256
self . sess . gated_spans . let_chains . borrow_mut ( ) . push ( span) ;
1256
- Ok ( self . mk_expr ( span, ExprKind :: Let ( pats , expr) , attrs) )
1257
+ Ok ( self . mk_expr ( span, ExprKind :: Let ( pat , expr) , attrs) )
1257
1258
}
1258
1259
1259
1260
/// `else` token already eaten
@@ -1387,7 +1388,8 @@ impl<'a> Parser<'a> {
1387
1388
crate fn parse_arm ( & mut self ) -> PResult < ' a , Arm > {
1388
1389
let attrs = self . parse_outer_attributes ( ) ?;
1389
1390
let lo = self . token . span ;
1390
- let pats = self . parse_pats ( ) ?;
1391
+ // FIXME(or_patterns, Centril | dlrobertson): use `parse_top_pat` instead.
1392
+ let pat = self . parse_top_pat_unpack ( false ) ?;
1391
1393
let guard = if self . eat_keyword ( kw:: If ) {
1392
1394
Some ( self . parse_expr ( ) ?)
1393
1395
} else {
@@ -1448,7 +1450,7 @@ impl<'a> Parser<'a> {
1448
1450
1449
1451
Ok ( ast:: Arm {
1450
1452
attrs,
1451
- pats,
1453
+ pats : pat , // FIXME(or_patterns, Centril | dlrobertson): this should just be `pat,`.
1452
1454
guard,
1453
1455
body : expr,
1454
1456
span : lo. to ( hi) ,
0 commit comments