Skip to content

Commit 56e05dc

Browse files
authored
Merge pull request rust-lang#18794 from 1hakusai1/fix_fill_match_arm_in_tokio_main
Fix bug of "fill match arm" action in tokio::main macro
2 parents 39ba498 + 6fa3b3f commit 56e05dc

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/tools/rust-analyzer/crates/ide-assists/src/handlers/add_missing_match_arms.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,9 @@ pub(crate) fn add_missing_match_arms(acc: &mut Assists, ctx: &AssistContext<'_>)
261261
}
262262

263263
if let Some(cap) = ctx.config.snippet_cap {
264-
if let Some(it) = first_new_arm.and_then(|arm| arm.syntax().descendants().find_map(ast::WildcardPat::cast)) {
264+
if let Some(it) = first_new_arm
265+
.and_then(|arm| arm.syntax().descendants().find_map(ast::WildcardPat::cast))
266+
{
265267
edit.add_placeholder_snippet(cap, it);
266268
}
267269

@@ -287,14 +289,10 @@ pub(crate) fn add_missing_match_arms(acc: &mut Assists, ctx: &AssistContext<'_>)
287289
syntax::SyntaxElement::from(edit.make_syntax_mut(it))
288290
}
289291
syntax::SyntaxElement::Token(it) => {
290-
// Don't have a way to make tokens mut, so instead make the parent mut
291-
// and find the token again
292-
let parent =
293-
edit.make_syntax_mut(it.parent().expect("Token must have a parent."));
294-
let mut_token =
295-
parent.covering_element(it.text_range()).into_token().expect("Covering element cannot be found. Range may be beyond the current node's range");
296-
297-
syntax::SyntaxElement::from(mut_token)
292+
// If a token is found, it is '{' or '}'
293+
// The parent is `{ ... }`
294+
let parent = it.parent().expect("Token must have a parent.");
295+
syntax::SyntaxElement::from(edit.make_syntax_mut(parent))
298296
}
299297
}
300298
};

0 commit comments

Comments
 (0)