about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Eades <danieleades@hotmail.com>2023-01-10 20:40:08 +0000
committerDaniel Eades <danieleades@hotmail.com>2023-01-10 20:40:08 +0000
commitd218b237fd8e5495c5399f0c1651c7dbf3b3daaf (patch)
tree4b25c4bd92def09420f665fb5ab295768bde2246
parent95fc3ba41cff006a3ae4c3c730122b0503fdefab (diff)
downloadrust-d218b237fd8e5495c5399f0c1651c7dbf3b3daaf.tar.gz
rust-d218b237fd8e5495c5399f0c1651c7dbf3b3daaf.zip
collapse some nested blocks
-rw-r--r--crates/hir-ty/src/infer/expr.rs34
-rw-r--r--crates/hir-ty/src/layout.rs17
-rw-r--r--crates/ide-assists/src/handlers/extract_type_alias.rs22
-rw-r--r--crates/ide-db/src/rename.rs24
-rw-r--r--crates/ide-db/src/symbol_index.rs8
-rw-r--r--crates/ide/src/hover/render.rs8
-rw-r--r--crates/ide/src/join_lines.rs6
-rw-r--r--crates/ide/src/syntax_highlighting.rs9
-rw-r--r--crates/ide/src/typing.rs6
-rw-r--r--crates/rust-analyzer/src/main_loop.rs8
10 files changed, 63 insertions, 79 deletions
diff --git a/crates/hir-ty/src/infer/expr.rs b/crates/hir-ty/src/infer/expr.rs
index 8f9cdac3784..ea04a3d17b1 100644
--- a/crates/hir-ty/src/infer/expr.rs
+++ b/crates/hir-ty/src/infer/expr.rs
@@ -1136,18 +1136,16 @@ impl<'a> InferenceContext<'a> {
             if self.diverges.is_always() {
                 // we don't even make an attempt at coercion
                 self.table.new_maybe_never_var()
-            } else {
-                if let Some(t) = expected.only_has_type(&mut self.table) {
-                    if self.coerce(Some(expr), &TyBuilder::unit(), &t).is_err() {
-                        self.result.type_mismatches.insert(
-                            expr.into(),
-                            TypeMismatch { expected: t.clone(), actual: TyBuilder::unit() },
-                        );
-                    }
-                    t
-                } else {
-                    TyBuilder::unit()
+            } else if let Some(t) = expected.only_has_type(&mut self.table) {
+                if self.coerce(Some(expr), &TyBuilder::unit(), &t).is_err() {
+                    self.result.type_mismatches.insert(
+                        expr.into(),
+                        TypeMismatch { expected: t.clone(), actual: TyBuilder::unit() },
+                    );
                 }
+                t
+            } else {
+                TyBuilder::unit()
             }
         }
     }
@@ -1314,13 +1312,13 @@ impl<'a> InferenceContext<'a> {
                 } else {
                     param_ty
                 };
-                if !coercion_target.is_unknown() {
-                    if self.coerce(Some(arg), &ty, &coercion_target).is_err() {
-                        self.result.type_mismatches.insert(
-                            arg.into(),
-                            TypeMismatch { expected: coercion_target, actual: ty.clone() },
-                        );
-                    }
+                if !coercion_target.is_unknown()
+                    && self.coerce(Some(arg), &ty, &coercion_target).is_err()
+                {
+                    self.result.type_mismatches.insert(
+                        arg.into(),
+                        TypeMismatch { expected: coercion_target, actual: ty.clone() },
+                    );
                 }
             }
         }
diff --git a/crates/hir-ty/src/layout.rs b/crates/hir-ty/src/layout.rs
index 7a1cca3143e..958d3dabe0e 100644
--- a/crates/hir-ty/src/layout.rs
+++ b/crates/hir-ty/src/layout.rs
@@ -251,17 +251,14 @@ fn layout_of_unit(cx: &LayoutCx<'_>, dl: &TargetDataLayout) -> Result<Layout, La
 
 fn struct_tail_erasing_lifetimes(db: &dyn HirDatabase, pointee: Ty) -> Ty {
     match pointee.kind(Interner) {
-        TyKind::Adt(AdtId(adt), subst) => match adt {
-            &hir_def::AdtId::StructId(i) => {
-                let data = db.struct_data(i);
-                let mut it = data.variant_data.fields().iter().rev();
-                match it.next() {
-                    Some((f, _)) => field_ty(db, i.into(), f, subst),
-                    None => pointee,
-                }
+        TyKind::Adt(AdtId(hir_def::AdtId::StructId(i)), subst) => {
+            let data = db.struct_data(*i);
+            let mut it = data.variant_data.fields().iter().rev();
+            match it.next() {
+                Some((f, _)) => field_ty(db, (*i).into(), f, subst),
+                None => pointee,
             }
-            _ => pointee,
-        },
+        }
         _ => pointee,
     }
 }
diff --git a/crates/ide-assists/src/handlers/extract_type_alias.rs b/crates/ide-assists/src/handlers/extract_type_alias.rs
index 0505f5784f8..6c0238f35d0 100644
--- a/crates/ide-assists/src/handlers/extract_type_alias.rs
+++ b/crates/ide-assists/src/handlers/extract_type_alias.rs
@@ -161,19 +161,17 @@ fn collect_used_generics<'gp>(
                     .and_then(|lt| known_generics.iter().find(find_lifetime(&lt.text()))),
             ),
             ast::Type::ArrayType(ar) => {
-                if let Some(expr) = ar.expr() {
-                    if let ast::Expr::PathExpr(p) = expr {
-                        if let Some(path) = p.path() {
-                            if let Some(name_ref) = path.as_single_name_ref() {
-                                if let Some(param) = known_generics.iter().find(|gp| {
-                                    if let ast::GenericParam::ConstParam(cp) = gp {
-                                        cp.name().map_or(false, |n| n.text() == name_ref.text())
-                                    } else {
-                                        false
-                                    }
-                                }) {
-                                    generics.push(param);
+                if let Some(ast::Expr::PathExpr(p)) = ar.expr() {
+                    if let Some(path) = p.path() {
+                        if let Some(name_ref) = path.as_single_name_ref() {
+                            if let Some(param) = known_generics.iter().find(|gp| {
+                                if let ast::GenericParam::ConstParam(cp) = gp {
+                                    cp.name().map_or(false, |n| n.text() == name_ref.text())
+                                } else {
+                                    false
                                 }
+                            }) {
+                                generics.push(param);
                             }
                         }
                     }
diff --git a/crates/ide-db/src/rename.rs b/crates/ide-db/src/rename.rs
index 8f310b0f42f..0e5906097c3 100644
--- a/crates/ide-db/src/rename.rs
+++ b/crates/ide-db/src/rename.rs
@@ -389,19 +389,17 @@ fn source_edit_from_name_ref(
                         edit.delete(TextRange::new(s, e));
                         return true;
                     }
-                } else if init == name_ref {
-                    if field_name.text() == new_name {
-                        cov_mark::hit!(test_rename_local_put_init_shorthand);
-                        // Foo { field: local } -> Foo { field }
-                        //            ^^^^^^^ delete this
-
-                        // same names, we can use a shorthand here instead.
-                        // we do not want to erase attributes hence this range start
-                        let s = field_name.syntax().text_range().end();
-                        let e = init.syntax().text_range().end();
-                        edit.delete(TextRange::new(s, e));
-                        return true;
-                    }
+                } else if init == name_ref && field_name.text() == new_name {
+                    cov_mark::hit!(test_rename_local_put_init_shorthand);
+                    // Foo { field: local } -> Foo { field }
+                    //            ^^^^^^^ delete this
+
+                    // same names, we can use a shorthand here instead.
+                    // we do not want to erase attributes hence this range start
+                    let s = field_name.syntax().text_range().end();
+                    let e = init.syntax().text_range().end();
+                    edit.delete(TextRange::new(s, e));
+                    return true;
                 }
             }
             // init shorthand
diff --git a/crates/ide-db/src/symbol_index.rs b/crates/ide-db/src/symbol_index.rs
index c054cc15979..a91ffd1ec4f 100644
--- a/crates/ide-db/src/symbol_index.rs
+++ b/crates/ide-db/src/symbol_index.rs
@@ -323,10 +323,10 @@ impl Query {
                         if symbol.name != self.query {
                             continue;
                         }
-                    } else if self.case_sensitive {
-                        if self.query.chars().any(|c| !symbol.name.contains(c)) {
-                            continue;
-                        }
+                    } else if self.case_sensitive
+                        && self.query.chars().any(|c| !symbol.name.contains(c))
+                    {
+                        continue;
                     }
 
                     res.push(symbol.clone());
diff --git a/crates/ide/src/hover/render.rs b/crates/ide/src/hover/render.rs
index 47257f0bfad..cb537d7ef79 100644
--- a/crates/ide/src/hover/render.rs
+++ b/crates/ide/src/hover/render.rs
@@ -64,12 +64,10 @@ pub(super) fn type_info(
             bt_end = if config.markdown() { "```\n" } else { "" }
         )
         .into()
+    } else if config.markdown() {
+        Markup::fenced_block(&original.display(sema.db))
     } else {
-        if config.markdown() {
-            Markup::fenced_block(&original.display(sema.db))
-        } else {
-            original.display(sema.db).to_string().into()
-        }
+        original.display(sema.db).to_string().into()
     };
     res.actions.push(HoverAction::goto_type_from_targets(sema.db, targets));
     Some(res)
diff --git a/crates/ide/src/join_lines.rs b/crates/ide/src/join_lines.rs
index edc48e84d72..1cfde236245 100644
--- a/crates/ide/src/join_lines.rs
+++ b/crates/ide/src/join_lines.rs
@@ -161,10 +161,8 @@ fn remove_newline(
         }
     }
 
-    if config.join_assignments {
-        if join_assignments(edit, &prev, &next).is_some() {
-            return;
-        }
+    if config.join_assignments && join_assignments(edit, &prev, &next).is_some() {
+        return;
     }
 
     if config.unwrap_trivial_blocks {
diff --git a/crates/ide/src/syntax_highlighting.rs b/crates/ide/src/syntax_highlighting.rs
index 50371d620eb..454a250f3de 100644
--- a/crates/ide/src/syntax_highlighting.rs
+++ b/crates/ide/src/syntax_highlighting.rs
@@ -413,11 +413,10 @@ fn traverse(
                 let string = ast::String::cast(token);
                 let string_to_highlight = ast::String::cast(descended_token.clone());
                 if let Some((string, expanded_string)) = string.zip(string_to_highlight) {
-                    if string.is_raw() {
-                        if inject::ra_fixture(hl, sema, config, &string, &expanded_string).is_some()
-                        {
-                            continue;
-                        }
+                    if string.is_raw()
+                        && inject::ra_fixture(hl, sema, config, &string, &expanded_string).is_some()
+                    {
+                        continue;
                     }
                     highlight_format_string(hl, &string, &expanded_string, range);
                     highlight_escape_string(hl, &string, range.start());
diff --git a/crates/ide/src/typing.rs b/crates/ide/src/typing.rs
index eba5a485636..c2654875625 100644
--- a/crates/ide/src/typing.rs
+++ b/crates/ide/src/typing.rs
@@ -205,10 +205,8 @@ fn on_eq_typed(file: &SourceFile, offset: TextSize) -> Option<TextEdit> {
             if expr_stmt.semicolon_token().is_some() {
                 return None;
             }
-        } else {
-            if !ast::StmtList::can_cast(binop.syntax().parent()?.kind()) {
-                return None;
-            }
+        } else if !ast::StmtList::can_cast(binop.syntax().parent()?.kind()) {
+            return None;
         }
 
         let expr = binop.rhs()?;
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs
index 0bc940dfe8d..a270049019f 100644
--- a/crates/rust-analyzer/src/main_loop.rs
+++ b/crates/rust-analyzer/src/main_loop.rs
@@ -307,10 +307,10 @@ impl GlobalState {
                 }
             }
 
-            if !was_quiescent || state_changed || memdocs_added_or_removed {
-                if self.config.publish_diagnostics() {
-                    self.update_diagnostics()
-                }
+            if (!was_quiescent || state_changed || memdocs_added_or_removed)
+                && self.config.publish_diagnostics()
+            {
+                self.update_diagnostics()
             }
         }