Skip to content

Commit e77fc48

Browse files
bors[bot]Veykril
andauthored
Merge #10587
10587: fix: Fix `add_missing_match_arm` panicking on failed upmapping r=Veykril a=Veykril Closes #10580 (comment) Co-authored-by: Lukas Wirth <[email protected]>
2 parents 0e4c3b2 + 7e1d6e5 commit e77fc48

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

crates/ide_assists/src/handlers/add_missing_match_arms.rs

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ use ide_db::helpers::{mod_path_to_ast, FamousDefs};
66
use ide_db::RootDatabase;
77
use itertools::Itertools;
88
use syntax::ast::{self, make, AstNode, HasName, MatchArm, MatchArmList, MatchExpr, Pat};
9-
use syntax::TextRange;
109

1110
use crate::{
1211
utils::{self, render_snippet, Cursor},
@@ -40,21 +39,15 @@ use crate::{
4039
pub(crate) fn add_missing_match_arms(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
4140
let match_expr = ctx.find_node_at_offset_with_descend::<ast::MatchExpr>()?;
4241
let match_arm_list = match_expr.match_arm_list()?;
43-
let target_range: TextRange;
42+
let target_range = ctx.sema.original_range(match_expr.syntax()).range;
4443

4544
if let None = cursor_at_trivial_match_arm_list(&ctx, &match_expr, &match_arm_list) {
46-
target_range = TextRange::new(
47-
ctx.sema.original_range(match_expr.syntax()).range.start(),
48-
ctx.sema.original_range(match_arm_list.syntax()).range.start(),
49-
);
50-
51-
let cursor_in_range = target_range.contains_range(ctx.selection_trimmed());
52-
if !cursor_in_range {
45+
let arm_list_range = ctx.sema.original_range(match_arm_list.syntax()).range;
46+
let cursor_in_range = arm_list_range.contains_range(ctx.selection_trimmed());
47+
if cursor_in_range {
5348
cov_mark::hit!(not_applicable_outside_of_range_right);
5449
return None;
5550
}
56-
} else {
57-
target_range = ctx.sema.original_range(match_expr.syntax()).range;
5851
}
5952

6053
let expr = match_expr.expr()?;
@@ -953,7 +946,9 @@ fn main() {
953946
}
954947
}
955948
"#,
956-
"match E::X ",
949+
"match E::X {
950+
E::X => {}
951+
}",
957952
);
958953
}
959954

0 commit comments

Comments
 (0)