Unnamed repository; edit this file 'description' to name the repository.
Merge #10429
10429: internal: remove deprecated method r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
bors[bot] 2021-10-02
parent 745fd99 · parent 7dbf24f · commit 5faf07d
-rw-r--r--crates/ide_assists/src/handlers/replace_if_let_with_match.rs11
-rw-r--r--crates/syntax/src/ast/node_ext.rs12
2 files changed, 6 insertions, 17 deletions
diff --git a/crates/ide_assists/src/handlers/replace_if_let_with_match.rs b/crates/ide_assists/src/handlers/replace_if_let_with_match.rs
index 3a89c2b996..22675fbee0 100644
--- a/crates/ide_assists/src/handlers/replace_if_let_with_match.rs
+++ b/crates/ide_assists/src/handlers/replace_if_let_with_match.rs
@@ -210,11 +210,7 @@ pub(crate) fn replace_match_with_if_let(acc: &mut Assists, ctx: &AssistContext)
ast::Expr::BlockExpr(block) => block,
expr => make::block_expr(iter::empty(), Some(expr)),
};
- let else_expr = match else_expr {
- ast::Expr::BlockExpr(block) if block.is_empty() => None,
- ast::Expr::TupleExpr(tuple) if tuple.fields().next().is_none() => None,
- expr => Some(expr),
- };
+ let else_expr = if is_empty_expr(&else_expr) { None } else { Some(else_expr) };
let if_let_expr = make::expr_if(
condition,
then_block,
@@ -257,7 +253,10 @@ fn pick_pattern_and_expr_order(
fn is_empty_expr(expr: &ast::Expr) -> bool {
match expr {
- ast::Expr::BlockExpr(expr) => expr.is_empty(),
+ ast::Expr::BlockExpr(expr) => match expr.stmt_list() {
+ Some(it) => it.statements().next().is_none() && it.tail_expr().is_none(),
+ None => true,
+ },
ast::Expr::TupleExpr(expr) => expr.fields().next().is_none(),
_ => false,
}
diff --git a/crates/syntax/src/ast/node_ext.rs b/crates/syntax/src/ast/node_ext.rs
index a07f02e445..800befb04b 100644
--- a/crates/syntax/src/ast/node_ext.rs
+++ b/crates/syntax/src/ast/node_ext.rs
@@ -10,10 +10,7 @@ use parser::SyntaxKind;
use rowan::{GreenNodeData, GreenTokenData};
use crate::{
- ast::{
- self, support, AstNode, AstToken, HasAttrs, HasGenericParams, HasModuleItem, HasName,
- SyntaxNode,
- },
+ ast::{self, support, AstNode, AstToken, HasAttrs, HasGenericParams, HasName, SyntaxNode},
NodeOrToken, SmolStr, SyntaxElement, SyntaxToken, TokenText, T,
};
@@ -54,13 +51,6 @@ impl ast::HasModuleItem for ast::StmtList {}
impl ast::BlockExpr {
// FIXME: remove all these methods, they belong to ast::StmtList
- pub fn items(&self) -> impl Iterator<Item = ast::Item> {
- self.stmt_list().into_iter().flat_map(|it| it.items())
- }
-
- pub fn is_empty(&self) -> bool {
- self.statements().next().is_none() && self.tail_expr().is_none()
- }
pub fn statements(&self) -> impl Iterator<Item = ast::Stmt> {
self.stmt_list().into_iter().flat_map(|it| it.statements())
}