Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide_assists/src/handlers/convert_bool_then.rs')
| -rw-r--r-- | crates/ide_assists/src/handlers/convert_bool_then.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/crates/ide_assists/src/handlers/convert_bool_then.rs b/crates/ide_assists/src/handlers/convert_bool_then.rs index 497e7c2546..e7939269ad 100644 --- a/crates/ide_assists/src/handlers/convert_bool_then.rs +++ b/crates/ide_assists/src/handlers/convert_bool_then.rs @@ -1,6 +1,10 @@ use hir::{known, AsAssocItem, Semantics}; use ide_db::{ - helpers::{for_each_tail_expr, FamousDefs}, + helpers::{ + for_each_tail_expr, + node_ext::{block_as_lone_tail, preorder_expr}, + FamousDefs, + }, RootDatabase, }; use itertools::Itertools; @@ -218,7 +222,7 @@ fn is_invalid_body( expr: &ast::Expr, ) -> bool { let mut invalid = false; - expr.preorder(&mut |e| { + preorder_expr(expr, &mut |e| { invalid |= matches!(e, syntax::WalkEvent::Enter(ast::Expr::TryExpr(_) | ast::Expr::ReturnExpr(_))); invalid @@ -252,7 +256,7 @@ fn block_is_none_variant( block: &ast::BlockExpr, none_variant: hir::Variant, ) -> bool { - block.as_lone_tail().and_then(|e| match e { + block_as_lone_tail(block).and_then(|e| match e { ast::Expr::PathExpr(pat) => match sema.resolve_path(&pat.path()?)? { hir::PathResolution::Def(hir::ModuleDef::Variant(v)) => Some(v), _ => None, |