@@ -164,9 +164,9 @@ where
164
164
let match_expr = self . collect_expr_opt ( condition. expr ( ) ) ;
165
165
let placeholder_pat = self . missing_pat ( ) ;
166
166
let arms = vec ! [
167
- MatchArm { pats : vec! [ pat] , expr: then_branch, guard: None } ,
167
+ MatchArm { pat, expr: then_branch, guard: None } ,
168
168
MatchArm {
169
- pats : vec! [ placeholder_pat] ,
169
+ pat : placeholder_pat,
170
170
expr: else_branch. unwrap_or_else( || self . empty_block( ) ) ,
171
171
guard: None ,
172
172
} ,
@@ -203,8 +203,8 @@ where
203
203
let placeholder_pat = self . missing_pat ( ) ;
204
204
let break_ = self . alloc_expr_desugared ( Expr :: Break { expr : None } ) ;
205
205
let arms = vec ! [
206
- MatchArm { pats : vec! [ pat] , expr: body, guard: None } ,
207
- MatchArm { pats : vec! [ placeholder_pat] , expr: break_, guard: None } ,
206
+ MatchArm { pat, expr: body, guard: None } ,
207
+ MatchArm { pat : placeholder_pat, expr: break_, guard: None } ,
208
208
] ;
209
209
let match_expr =
210
210
self . alloc_expr_desugared ( Expr :: Match { expr : match_expr, arms } ) ;
@@ -250,7 +250,7 @@ where
250
250
match_arm_list
251
251
. arms ( )
252
252
. map ( |arm| MatchArm {
253
- pats : arm . pats ( ) . map ( |p| self . collect_pat ( p ) ) . collect ( ) ,
253
+ pat : self . collect_pat_opt ( arm . pat ( ) ) ,
254
254
expr : self . collect_expr_opt ( arm. expr ( ) ) ,
255
255
guard : arm
256
256
. guard ( )
@@ -587,6 +587,11 @@ where
587
587
let path = p. path ( ) . and_then ( |path| self . expander . parse_path ( path) ) ;
588
588
path. map ( Pat :: Path ) . unwrap_or ( Pat :: Missing )
589
589
}
590
+ ast:: Pat :: OrPat ( p) => {
591
+ let pats = p. pats ( ) . map ( |p| self . collect_pat ( p) ) . collect ( ) ;
592
+ Pat :: Or ( pats)
593
+ }
594
+ ast:: Pat :: ParenPat ( p) => return self . collect_pat_opt ( p. pat ( ) ) ,
590
595
ast:: Pat :: TuplePat ( p) => {
591
596
let args = p. args ( ) . map ( |p| self . collect_pat ( p) ) . collect ( ) ;
592
597
Pat :: Tuple ( args)
0 commit comments