Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #22750 from ChayimFriedman2/fix-clippy
internal: Fix 1.97.0 Clippy
Chayim Refael Friedman 5 weeks ago
parent 2b4c2c3 · parent e227a70 · commit 71f31c4
-rw-r--r--crates/hir-def/src/expr_store/lower.rs2
-rw-r--r--crates/hir-def/src/item_tree/lower.rs5
-rw-r--r--crates/hir-ty/src/autoderef.rs5
-rw-r--r--crates/hir-ty/src/drop.rs5
-rw-r--r--crates/hir-ty/src/method_resolution.rs10
-rw-r--r--crates/hir/src/lib.rs2
-rw-r--r--crates/hir/src/source_analyzer.rs5
-rw-r--r--crates/ide-assists/src/handlers/add_missing_match_arms.rs2
-rw-r--r--crates/ide-assists/src/handlers/change_visibility.rs5
-rw-r--r--crates/ide-assists/src/handlers/extract_variable.rs10
-rw-r--r--crates/ide-assists/src/handlers/generate_enum_is_method.rs2
-rw-r--r--crates/ide-assists/src/handlers/generate_enum_projection_method.rs2
-rw-r--r--crates/ide-assists/src/handlers/remove_underscore.rs5
-rw-r--r--crates/ide-completion/src/snippet.rs5
-rw-r--r--crates/ide-db/src/syntax_helpers/suggest_name.rs5
-rw-r--r--crates/ide/src/inlay_hints/closing_brace.rs5
-rw-r--r--crates/ide/src/typing.rs4
-rw-r--r--crates/rust-analyzer/src/flycheck.rs35
-rw-r--r--crates/syntax/src/fuzz.rs2
-rw-r--r--crates/syntax/src/lib.rs7
-rw-r--r--lib/lsp-server/examples/minimal_lsp.rs2
-rw-r--r--xtask/src/codegen/assists_doc_tests.rs8
22 files changed, 57 insertions, 76 deletions
diff --git a/crates/hir-def/src/expr_store/lower.rs b/crates/hir-def/src/expr_store/lower.rs
index 08c1dc5f3d..5c81ec7ece 100644
--- a/crates/hir-def/src/expr_store/lower.rs
+++ b/crates/hir-def/src/expr_store/lower.rs
@@ -2731,7 +2731,7 @@ impl<'db> ExprCollector<'db> {
pats.push(self.collect_pat(first, binding_list));
binding_list.reject_new = true;
for rest in it {
- for (_, it) in binding_list.is_used.iter_mut() {
+ for it in binding_list.is_used.values_mut() {
*it = false;
}
pats.push(self.collect_pat(rest, binding_list));
diff --git a/crates/hir-def/src/item_tree/lower.rs b/crates/hir-def/src/item_tree/lower.rs
index 03c7ebd693..6f916c83ef 100644
--- a/crates/hir-def/src/item_tree/lower.rs
+++ b/crates/hir-def/src/item_tree/lower.rs
@@ -397,7 +397,10 @@ impl UseTreeLowering<'_> {
Some(path) => {
match ModPath::from_src(self.db, path, span_for_range) {
Some(it) => Some(it),
- None => return None, // FIXME: report errors somewhere
+ None => {
+ // FIXME: report errors somewhere
+ return None;
+ }
}
}
};
diff --git a/crates/hir-ty/src/autoderef.rs b/crates/hir-ty/src/autoderef.rs
index a8ed4126ab..ea0881923c 100644
--- a/crates/hir-ty/src/autoderef.rs
+++ b/crates/hir-ty/src/autoderef.rs
@@ -207,11 +207,10 @@ where
} else {
(AutoderefKind::Builtin, ty)
}
- } else if let Some(ty) = self.overloaded_deref_ty(self.state.cur_ty) {
+ } else {
+ let ty = self.overloaded_deref_ty(self.state.cur_ty)?;
// The overloaded deref check already normalizes the pointee type.
(AutoderefKind::Overloaded, ty)
- } else {
- return None;
};
self.state.steps.push(self.state.cur_ty, kind);
diff --git a/crates/hir-ty/src/drop.rs b/crates/hir-ty/src/drop.rs
index 08860e1e45..0a4d016c6a 100644
--- a/crates/hir-ty/src/drop.rs
+++ b/crates/hir-ty/src/drop.rs
@@ -28,10 +28,7 @@ pub fn destructor(db: &dyn HirDatabase, adt: AdtId) -> Option<ImplId> {
let interner = DbInterner::new_with(db, module.krate(db));
let drop_trait = interner.lang_items().Drop?;
let impls = match module.block(db) {
- Some(block) => match TraitImpls::for_block(db, block) {
- Some(it) => &**it,
- None => return None,
- },
+ Some(block) => TraitImpls::for_block(db, block)?,
None => TraitImpls::for_crate(db, module.krate(db)),
};
impls.for_trait_and_self_ty(drop_trait, &SimplifiedType::Adt(adt.into())).0.first().copied()
diff --git a/crates/hir-ty/src/method_resolution.rs b/crates/hir-ty/src/method_resolution.rs
index b68f664d51..2772663ec9 100644
--- a/crates/hir-ty/src/method_resolution.rs
+++ b/crates/hir-ty/src/method_resolution.rs
@@ -678,7 +678,7 @@ impl TraitImpls {
Arc::new(result)
}
- #[salsa::tracked(returns(ref))]
+ #[salsa::tracked(returns(as_deref))]
pub fn for_block(db: &dyn HirDatabase, block: BlockId) -> Option<Box<Self>> {
let _p = tracing::info_span!("inherent_impls_in_block_query").entered();
@@ -687,7 +687,7 @@ impl TraitImpls {
if result.map.is_empty() { None } else { Some(Box::new(result)) }
}
- #[salsa::tracked(returns(ref))]
+ #[salsa::tracked(returns(deref))]
pub fn for_crate_and_deps(db: &dyn HirDatabase, krate: Crate) -> Box<[Arc<Self>]> {
krate.transitive_deps(db).iter().map(|&dep| Self::for_crate(db, dep).clone()).collect()
}
@@ -830,7 +830,7 @@ impl TraitImpls {
for_each: &mut dyn FnMut(&TraitImpls),
) {
let blocks = std::iter::successors(block, |block| block.loc(db).module.block(db));
- blocks.filter_map(|block| Self::for_block(db, block).as_deref()).for_each(&mut *for_each);
+ blocks.filter_map(|block| Self::for_block(db, block)).for_each(&mut *for_each);
Self::for_crate_and_deps(db, krate).iter().map(|it| &**it).for_each(for_each);
}
@@ -858,11 +858,11 @@ impl TraitImpls {
.take_while(move |&block| {
other_block.is_none_or(|other_block| other_block != block)
})
- .filter_map(move |block| TraitImpls::for_block(db, block).as_deref())
+ .filter_map(move |block| TraitImpls::for_block(db, block))
};
if trait_block == type_block {
blocks_iter(trait_block)
- .filter_map(|block| TraitImpls::for_block(db, block).as_deref())
+ .filter_map(|block| TraitImpls::for_block(db, block))
.for_each(for_each);
} else {
for_each_block(trait_block, type_block).for_each(&mut *for_each);
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index 998c1b8b91..96fb65882c 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -4715,7 +4715,7 @@ impl Impl {
&mut |impls| extend_with_impls(Either::Left(impls.for_self_ty(&simplified_ty))),
);
iter::successors(module.block(db), |block| block.loc(db).module.block(db))
- .filter_map(|block| TraitImpls::for_block(db, block).as_deref())
+ .filter_map(|block| TraitImpls::for_block(db, block))
.for_each(|impls| impls.for_self_ty(&simplified_ty, &mut extend_with_impls));
for &krate in &*all_crates(db) {
TraitImpls::for_crate(db, krate)
diff --git a/crates/hir/src/source_analyzer.rs b/crates/hir/src/source_analyzer.rs
index 9e4d825ab2..21830f9d0d 100644
--- a/crates/hir/src/source_analyzer.rs
+++ b/crates/hir/src/source_analyzer.rs
@@ -1427,11 +1427,10 @@ impl<'db> SourceAnalyzer<'db> {
let ty = if let Some(expr) = ast::Expr::cast(parent.clone()) {
let expr_id = self.expr_id(expr)?;
self.infer()?.type_of_expr_or_pat(expr_id)?
- } else if let Some(pat) = ast::Pat::cast(parent) {
+ } else {
+ let pat = ast::Pat::cast(parent)?;
let pat_id = self.pat_id(&pat)?;
self.infer()?.expr_or_pat_ty(pat_id)
- } else {
- return None;
};
let (subst, expected_resolution) = match ty.kind() {
TyKind::Adt(adt_def, subst) => {
diff --git a/crates/ide-assists/src/handlers/add_missing_match_arms.rs b/crates/ide-assists/src/handlers/add_missing_match_arms.rs
index 632fe0d72c..8e39cfc49c 100644
--- a/crates/ide-assists/src/handlers/add_missing_match_arms.rs
+++ b/crates/ide-assists/src/handlers/add_missing_match_arms.rs
@@ -573,7 +573,7 @@ fn resolve_tuple_of_enum_def(
})
})
.collect::<Option<Vec<ExtendedEnum>>>()
- .and_then(|list| if list.is_empty() { None } else { Some(list) })
+ .filter(|list| !list.is_empty())
}
fn resolve_array_of_enum_def(
diff --git a/crates/ide-assists/src/handlers/change_visibility.rs b/crates/ide-assists/src/handlers/change_visibility.rs
index f17197a750..18d7faeb2b 100644
--- a/crates/ide-assists/src/handlers/change_visibility.rs
+++ b/crates/ide-assists/src/handlers/change_visibility.rs
@@ -67,14 +67,13 @@ fn add_vis(acc: &mut Assists, ctx: &AssistContext<'_, '_>) -> Option<()> {
}
check_is_not_variant(&field)?;
(vis_offset(field.syntax()), field_name.syntax().text_range())
- } else if let Some(field) = ctx.find_node_at_offset::<ast::TupleField>() {
+ } else {
+ let field = ctx.find_node_at_offset::<ast::TupleField>()?;
if field.visibility().is_some() {
return None;
}
check_is_not_variant(&field)?;
(vis_offset(field.syntax()), field.syntax().text_range())
- } else {
- return None;
};
acc.add(
diff --git a/crates/ide-assists/src/handlers/extract_variable.rs b/crates/ide-assists/src/handlers/extract_variable.rs
index 86dbf20fac..0bd9d1a23a 100644
--- a/crates/ide-assists/src/handlers/extract_variable.rs
+++ b/crates/ide-assists/src/handlers/extract_variable.rs
@@ -72,13 +72,11 @@ pub(crate) fn extract_variable(acc: &mut Assists, ctx: &AssistContext<'_, '_>) -
let node = if ctx.has_empty_selection() {
if let Some(t) = ctx.token_at_offset().find(|it| it.kind() == T![;]) {
t.parent().and_then(ast::ExprStmt::cast)?.syntax().clone()
- } else if let Some(expr) = ancestors_at_offset(ctx.source_file().syntax(), ctx.offset())
- .next()
- .and_then(ast::Expr::cast)
- {
- expr.syntax().ancestors().find_map(valid_target_expr(ctx))?.syntax().clone()
} else {
- return None;
+ let expr = ancestors_at_offset(ctx.source_file().syntax(), ctx.offset())
+ .next()
+ .and_then(ast::Expr::cast)?;
+ expr.syntax().ancestors().find_map(valid_target_expr(ctx))?.syntax().clone()
}
} else {
match ctx.covering_element() {
diff --git a/crates/ide-assists/src/handlers/generate_enum_is_method.rs b/crates/ide-assists/src/handlers/generate_enum_is_method.rs
index 867eaf4c29..53e77b4947 100644
--- a/crates/ide-assists/src/handlers/generate_enum_is_method.rs
+++ b/crates/ide-assists/src/handlers/generate_enum_is_method.rs
@@ -141,7 +141,7 @@ impl Method {
};
let variant_name = variant.name()?;
- let fn_name = format!("is_{}", &to_lower_snake_case(&variant_name.text()));
+ let fn_name = format!("is_{}", to_lower_snake_case(&variant_name.text()));
Some(Method { pattern_suffix, fn_name, variant_name })
}
}
diff --git a/crates/ide-assists/src/handlers/generate_enum_projection_method.rs b/crates/ide-assists/src/handlers/generate_enum_projection_method.rs
index 4cdc801ec1..8a194ae02b 100644
--- a/crates/ide-assists/src/handlers/generate_enum_projection_method.rs
+++ b/crates/ide-assists/src/handlers/generate_enum_projection_method.rs
@@ -219,7 +219,7 @@ impl Method {
fn new(variant: &ast::Variant, fn_name_prefix: &str) -> Option<Self> {
use itertools::Itertools as _;
let variant_name = variant.name()?;
- let fn_name = format!("{fn_name_prefix}_{}", &to_lower_snake_case(&variant_name.text()));
+ let fn_name = format!("{fn_name_prefix}_{}", to_lower_snake_case(&variant_name.text()));
match variant.kind() {
ast::StructKind::Record(record) => {
diff --git a/crates/ide-assists/src/handlers/remove_underscore.rs b/crates/ide-assists/src/handlers/remove_underscore.rs
index 1ccdcda52d..1b65e78378 100644
--- a/crates/ide-assists/src/handlers/remove_underscore.rs
+++ b/crates/ide-assists/src/handlers/remove_underscore.rs
@@ -37,7 +37,8 @@ pub(crate) fn remove_underscore(acc: &mut Assists, ctx: &AssistContext<'_, '_>)
_ => return None,
};
(text.to_owned(), name_ref.syntax().text_range(), def)
- } else if let Some(name_ref) = ctx.find_node_at_offset::<ast::NameRef>() {
+ } else {
+ let name_ref = ctx.find_node_at_offset::<ast::NameRef>()?;
let text = name_ref.text();
if !text.starts_with('_') {
return None;
@@ -48,8 +49,6 @@ pub(crate) fn remove_underscore(acc: &mut Assists, ctx: &AssistContext<'_, '_>)
_ => return None,
};
(text.to_owned(), name_ref.syntax().text_range(), def)
- } else {
- return None;
};
if !def.usages(&ctx.sema).at_least_one() {
diff --git a/crates/ide-completion/src/snippet.rs b/crates/ide-completion/src/snippet.rs
index 67ca9db230..ee47c84708 100644
--- a/crates/ide-completion/src/snippet.rs
+++ b/crates/ide-completion/src/snippet.rs
@@ -181,10 +181,7 @@ fn import_edits(
};
let mut res = Vec::with_capacity(requires.len());
for import in requires {
- match resolve(import) {
- Some(first) => res.extend(first),
- None => return None,
- }
+ res.extend(resolve(import)?)
}
Some(res)
}
diff --git a/crates/ide-db/src/syntax_helpers/suggest_name.rs b/crates/ide-db/src/syntax_helpers/suggest_name.rs
index 15920595a8..42bfc7fe4b 100644
--- a/crates/ide-db/src/syntax_helpers/suggest_name.rs
+++ b/crates/ide-db/src/syntax_helpers/suggest_name.rs
@@ -447,10 +447,9 @@ fn name_of_type<'db>(
name
} else if let Some((inner_ty, _)) = ty.as_reference() {
return name_of_type(&inner_ty, db, edition);
- } else if let Some(inner_ty) = ty.as_slice() {
- return Some(sequence_name(Some(&inner_ty), db, edition));
} else {
- return None;
+ let inner_ty = ty.as_slice()?;
+ return Some(sequence_name(Some(&inner_ty), db, edition));
};
normalize(&name, edition)
}
diff --git a/crates/ide/src/inlay_hints/closing_brace.rs b/crates/ide/src/inlay_hints/closing_brace.rs
index 49d7d454df..c6c8806ac9 100644
--- a/crates/ide/src/inlay_hints/closing_brace.rs
+++ b/crates/ide/src/inlay_hints/closing_brace.rs
@@ -139,7 +139,8 @@ pub(super) fn hints(
_ => return None,
}
}
- } else if let Some(mac) = ast::MacroCall::cast(node.clone()) {
+ } else {
+ let mac = ast::MacroCall::cast(node.clone())?;
let last_token = mac.syntax().last_token()?;
if last_token.kind() != T![;] && last_token.kind() != SyntaxKind::R_CURLY {
return None;
@@ -150,8 +151,6 @@ pub(super) fn hints(
format!("{}!", mac.path()?),
mac.path().and_then(|it| it.segment()).map(|it| it.syntax().text_range()),
)
- } else {
- return None;
};
if let Some(mut next) = closing_token.next_token() {
diff --git a/crates/ide/src/typing.rs b/crates/ide/src/typing.rs
index a49a85fe78..b06079d8ac 100644
--- a/crates/ide/src/typing.rs
+++ b/crates/ide/src/typing.rs
@@ -326,10 +326,8 @@ fn on_dot_typed(file: &SourceFile, offset: TextSize) -> Option<TextEdit> {
// Make sure dot is a part of call chain
let receiver = if let Some(field_expr) = ast::FieldExpr::cast(parent.clone()) {
field_expr.expr()?
- } else if let Some(method_call_expr) = ast::MethodCallExpr::cast(parent.clone()) {
- method_call_expr.receiver()?
} else {
- return None;
+ ast::MethodCallExpr::cast(parent.clone())?.receiver()?
};
let receiver_is_multiline = receiver.syntax().text().find_char('\n').is_some();
diff --git a/crates/rust-analyzer/src/flycheck.rs b/crates/rust-analyzer/src/flycheck.rs
index 16dd9bee1f..f73ffb24ee 100644
--- a/crates/rust-analyzer/src/flycheck.rs
+++ b/crates/rust-analyzer/src/flycheck.rs
@@ -494,33 +494,24 @@ impl<'a> Substitutions<'a> {
let mut cmd = toolchain::command(&template.program, &template.cwd, extra_env);
for arg in &template.args {
if let Some(ix) = arg.find(LABEL_INLINE) {
- if let Some(label) = self.label {
- let mut arg = arg.to_string();
- arg.replace_range(ix..ix + LABEL_INLINE.len(), label);
- cmd.arg(arg);
- continue;
- } else {
- return None;
- }
+ let label = self.label?;
+ let mut arg = arg.to_string();
+ arg.replace_range(ix..ix + LABEL_INLINE.len(), label);
+ cmd.arg(arg);
+ continue;
}
if let Some(ix) = arg.find(SAVED_FILE_INLINE) {
- if let Some(saved_file) = self.saved_file {
- let mut arg = arg.to_string();
- arg.replace_range(ix..ix + SAVED_FILE_INLINE.len(), saved_file);
- cmd.arg(arg);
- continue;
- } else {
- return None;
- }
+ let saved_file = self.saved_file?;
+ let mut arg = arg.to_string();
+ arg.replace_range(ix..ix + SAVED_FILE_INLINE.len(), saved_file);
+ cmd.arg(arg);
+ continue;
}
// Legacy syntax: full argument match
if arg == SAVED_FILE_PLACEHOLDER_DOLLAR {
- if let Some(saved_file) = self.saved_file {
- cmd.arg(saved_file);
- continue;
- } else {
- return None;
- }
+ let saved_file = self.saved_file?;
+ cmd.arg(saved_file);
+ continue;
}
cmd.arg(arg);
}
diff --git a/crates/syntax/src/fuzz.rs b/crates/syntax/src/fuzz.rs
index 9b5cd0135e..3c5640f08a 100644
--- a/crates/syntax/src/fuzz.rs
+++ b/crates/syntax/src/fuzz.rs
@@ -42,7 +42,7 @@ impl CheckReparse {
let delete =
TextRange::at(delete_start.try_into().unwrap(), delete_len.try_into().unwrap());
let edited_text =
- format!("{}{}{}", &text[..delete_start], &insert, &text[delete_start + delete_len..]);
+ format!("{}{}{}", &text[..delete_start], insert, &text[delete_start + delete_len..]);
Some(CheckReparse { text, insert, delete, edited_text })
}
diff --git a/crates/syntax/src/lib.rs b/crates/syntax/src/lib.rs
index 924e72ee40..ab24ed9231 100644
--- a/crates/syntax/src/lib.rs
+++ b/crates/syntax/src/lib.rs
@@ -273,8 +273,11 @@ macro_rules! match_ast {
$( $( $path:ident )::+ ($it:pat) => $res:expr, )*
_ => $catch_all:expr $(,)?
}) => {{
- $( if let Some($it) = $($path::)+cast($node.clone()) { $res } else )*
- { $catch_all }
+ #[allow(clippy::question_mark, reason = "if `$catch_all` is `return None` Clippy can mark this")]
+ {
+ $( if let Some($it) = $($path::)+cast($node.clone()) { $res } else )*
+ { $catch_all }
+ }
}};
}
diff --git a/lib/lsp-server/examples/minimal_lsp.rs b/lib/lsp-server/examples/minimal_lsp.rs
index b7dcef9bfa..9a73f3fb7f 100644
--- a/lib/lsp-server/examples/minimal_lsp.rs
+++ b/lib/lsp-server/examples/minimal_lsp.rs
@@ -134,7 +134,7 @@ fn main_loop(
break;
}
if let Err(err) = handle_request(&connection, &req, &mut docs) {
- log::error!("[lsp] request {} failed: {err}", &req.method);
+ log::error!("[lsp] request {} failed: {err}", req.method);
}
}
Message::Notification(note) => {
diff --git a/xtask/src/codegen/assists_doc_tests.rs b/xtask/src/codegen/assists_doc_tests.rs
index dd55d06bd3..c272768acb 100644
--- a/xtask/src/codegen/assists_doc_tests.rs
+++ b/xtask/src/codegen/assists_doc_tests.rs
@@ -23,7 +23,7 @@ use super::check_doc_test;
for assist in assists.iter() {
for (idx, section) in assist.sections.iter().enumerate() {
let test_id =
- if idx == 0 { assist.id.clone() } else { format!("{}_{idx}", &assist.id) };
+ if idx == 0 { assist.id.clone() } else { format!("{}_{idx}", assist.id) };
let test = format!(
r######"
#[test]
@@ -35,8 +35,8 @@ r#####"
{}"#####)
}}
"######,
- &test_id,
- &assist.id,
+ test_id,
+ assist.id,
reveal_hash_comments(&section.before),
reveal_hash_comments(&section.after)
);
@@ -117,7 +117,7 @@ impl Assist {
(doc.chars().next().unwrap().is_ascii_uppercase() && doc.ends_with('.'))
|| !assist.sections.is_empty(),
"\n\n{}: assist docs should be proper sentences, with capitalization and a full stop at the end.\n\n{}\n\n",
- &assist.id,
+ assist.id,
doc,
);