@@ -241,7 +241,6 @@ fn pick_pattern_and_expr_order(
241
241
( true , true ) => return None ,
242
242
( true , false ) => ( pat, expr, expr2) ,
243
243
( false , true ) => ( pat2, expr2, expr) ,
244
- _ if is_sad_pat ( sema, & pat2) => ( pat, expr, expr2) ,
245
244
_ if is_sad_pat ( sema, & pat) => ( pat2, expr2, expr) ,
246
245
( false , false ) => ( pat, expr, expr2) ,
247
246
} ,
@@ -251,9 +250,7 @@ fn pick_pattern_and_expr_order(
251
250
252
251
fn is_empty_expr ( expr : & ast:: Expr ) -> bool {
253
252
match expr {
254
- ast:: Expr :: BlockExpr ( expr) => {
255
- expr. statements ( ) . next ( ) . is_none ( ) && expr. tail_expr ( ) . is_none ( )
256
- }
253
+ ast:: Expr :: BlockExpr ( expr) => expr. is_empty ( ) ,
257
254
ast:: Expr :: TupleExpr ( expr) => expr. fields ( ) . next ( ) . is_none ( ) ,
258
255
_ => false ,
259
256
}
@@ -262,12 +259,10 @@ fn is_empty_expr(expr: &ast::Expr) -> bool {
262
259
fn binds_name ( sema : & hir:: Semantics < RootDatabase > , pat : & ast:: Pat ) -> bool {
263
260
let binds_name_v = |pat| binds_name ( & sema, & pat) ;
264
261
match pat {
265
- ast:: Pat :: IdentPat ( pat) => {
266
- match pat. name ( ) . and_then ( |name| NameClass :: classify ( sema, & name) ) {
267
- Some ( NameClass :: ConstReference ( _) ) => false ,
268
- _ => true ,
269
- }
270
- }
262
+ ast:: Pat :: IdentPat ( pat) => !matches ! (
263
+ pat. name( ) . and_then( |name| NameClass :: classify( sema, & name) ) ,
264
+ Some ( NameClass :: ConstReference ( _) )
265
+ ) ,
271
266
ast:: Pat :: MacroPat ( _) => true ,
272
267
ast:: Pat :: OrPat ( pat) => pat. pats ( ) . any ( binds_name_v) ,
273
268
ast:: Pat :: SlicePat ( pat) => pat. pats ( ) . any ( binds_name_v) ,
0 commit comments