about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMasato Sogame <poketo7878@gmail.com>2022-08-31 18:29:58 +0900
committerPocket7878 <poketo7878@gmail.com>2022-08-31 18:47:45 +0900
commit5a1b45dcc157f41cbabf8f93fa1641bc4e29af60 (patch)
tree0f7aa7fe0f971697b57d83a51d4c38a9d80558fc
parenta5d2463b1d0ee286218e428ca6f0ee53d72e3788 (diff)
downloadrust-5a1b45dcc157f41cbabf8f93fa1641bc4e29af60.tar.gz
rust-5a1b45dcc157f41cbabf8f93fa1641bc4e29af60.zip
feature: Simplfy branch check logics
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
-rw-r--r--crates/ide-assists/src/handlers/convert_two_arm_bool_match_to_matches_macro.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/crates/ide-assists/src/handlers/convert_two_arm_bool_match_to_matches_macro.rs b/crates/ide-assists/src/handlers/convert_two_arm_bool_match_to_matches_macro.rs
index 5278fe5303a..68fe81f67b0 100644
--- a/crates/ide-assists/src/handlers/convert_two_arm_bool_match_to_matches_macro.rs
+++ b/crates/ide-assists/src/handlers/convert_two_arm_bool_match_to_matches_macro.rs
@@ -26,23 +26,23 @@ pub(crate) fn convert_two_arm_bool_match_to_matches_macro(
 ) -> Option<()> {
     let match_expr = ctx.find_node_at_offset::<ast::MatchExpr>()?;
     let match_arm_list = match_expr.match_arm_list()?;
-    if match_arm_list.arms().count() != 2 {
+    let mut arms = match_arm_list.arms();
+    let first_arm = arms.next()?;
+    let second_arm = arms.next()?;
+    if arms.next().is_some() {
         cov_mark::hit!(non_two_arm_match);
         return None;
     }
-
-    let first_arm = match_arm_list.arms().next()?;
     let first_arm_expr = first_arm.expr();
 
-    let invert_matches;
-    if is_bool_literal_expr(&first_arm_expr, true) {
-        invert_matches = false;
+    let invert_matches = if is_bool_literal_expr(&first_arm_expr, true) {
+        false
     } else if is_bool_literal_expr(&first_arm_expr, false) {
-        invert_matches = true;
+        true
     } else {
         cov_mark::hit!(non_bool_literal_match);
         return None;
-    }
+    };
 
     let target_range = ctx.sema.original_range(match_expr.syntax()).range;
     let expr = match_expr.expr()?;