Skip to content

Commit 7eb843b

Browse files
bors[bot]lnicola
andauthored
Merge #9325
9325: Minor: clippy perf fixes r=matklad a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
2 parents 86c3c42 + 6b1f005 commit 7eb843b

File tree

11 files changed

+23
-22
lines changed

11 files changed

+23
-22
lines changed

crates/hir_def/src/resolver.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -640,8 +640,7 @@ pub trait HasResolver: Copy {
640640
impl HasResolver for ModuleId {
641641
fn resolver(self, db: &dyn DefDatabase) -> Resolver {
642642
let mut def_map = self.def_map(db);
643-
let mut modules = Vec::new();
644-
modules.push((def_map.clone(), self.local_id));
643+
let mut modules = vec![(def_map.clone(), self.local_id)];
645644
while let Some(parent) = def_map.parent() {
646645
def_map = parent.def_map(db);
647646
modules.push((def_map.clone(), parent.local_id));

crates/hir_expand/src/builtin_macro.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ fn assert_expand(
202202

203203
let arg_tts = args.into_iter().flat_map(|arg| {
204204
quote! { &(#arg), }
205-
}.token_trees).collect::<Vec<_>>();
205+
}.token_trees);
206206

207207
let expanded = quote! {
208208
{ { (##arg_tts); } }
@@ -254,7 +254,7 @@ fn format_args_expand(
254254
let _format_string = args.remove(0);
255255
let arg_tts = args.into_iter().flat_map(|arg| {
256256
quote! { std::fmt::ArgumentV1::new(&(#arg), std::fmt::Display::fmt), }
257-
}.token_trees).collect::<Vec<_>>();
257+
}.token_trees);
258258
let expanded = quote! {
259259
std::fmt::Arguments::new_v1(&[], &[##arg_tts])
260260
};

crates/hir_ty/src/diagnostics/expr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ impl BodyValidationDiagnostic {
5656
pub fn collect(db: &dyn HirDatabase, owner: DefWithBodyId) -> Vec<BodyValidationDiagnostic> {
5757
let _p = profile::span("BodyValidationDiagnostic::collect");
5858
let infer = db.infer(owner);
59-
let mut validator = ExprValidator::new(owner, infer.clone());
59+
let mut validator = ExprValidator::new(owner, infer);
6060
validator.validate_body(db);
6161
validator.diagnostics
6262
}

crates/hir_ty/src/infer/expr.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ impl<'a> InferenceContext<'a> {
367367
Expr::Path(p) => {
368368
// FIXME this could be more efficient...
369369
let resolver = resolver_for_expr(self.db.upcast(), self.owner, tgt_expr);
370-
self.infer_path(&resolver, p, tgt_expr.into()).unwrap_or(self.err_ty())
370+
self.infer_path(&resolver, p, tgt_expr.into()).unwrap_or_else(|| self.err_ty())
371371
}
372372
Expr::Continue { .. } => TyKind::Never.intern(&Interner),
373373
Expr::Break { expr, label } => {
@@ -511,7 +511,7 @@ impl<'a> InferenceContext<'a> {
511511
_ => None,
512512
}
513513
})
514-
.unwrap_or(self.err_ty());
514+
.unwrap_or_else(|| self.err_ty());
515515
let ty = self.insert_type_vars(ty);
516516
self.normalize_associated_types_in(ty)
517517
}
@@ -818,8 +818,10 @@ impl<'a> InferenceContext<'a> {
818818
for stmt in statements {
819819
match stmt {
820820
Statement::Let { pat, type_ref, initializer } => {
821-
let decl_ty =
822-
type_ref.as_ref().map(|tr| self.make_ty(tr)).unwrap_or(self.err_ty());
821+
let decl_ty = type_ref
822+
.as_ref()
823+
.map(|tr| self.make_ty(tr))
824+
.unwrap_or_else(|| self.err_ty());
823825

824826
// Always use the declared type when specified
825827
let mut ty = decl_ty.clone();

crates/hir_ty/src/infer/pat.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ impl<'a> InferenceContext<'a> {
192192
Pat::Path(path) => {
193193
// FIXME use correct resolver for the surrounding expression
194194
let resolver = self.resolver.clone();
195-
self.infer_path(&resolver, path, pat.into()).unwrap_or(self.err_ty())
195+
self.infer_path(&resolver, path, pat.into()).unwrap_or_else(|| self.err_ty())
196196
}
197197
Pat::Bind { mode, name: _, subpat } => {
198198
let mode = if mode == &BindingAnnotation::Unannotated {

crates/hir_ty/src/lower.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@ impl<'a> TyLoweringContext<'a> {
562562
},
563563
);
564564

565-
ty.unwrap_or(TyKind::Error.intern(&Interner))
565+
ty.unwrap_or_else(|| TyKind::Error.intern(&Interner))
566566
} else {
567567
TyKind::Error.intern(&Interner)
568568
}

crates/ide/src/goto_type_definition.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ pub(crate) fn goto_type_definition(
2525
let token: SyntaxToken = pick_best(file.syntax().token_at_offset(position.offset))?;
2626
let token: SyntaxToken = sema.descend_into_macros(token);
2727

28-
let (ty, node) = sema.token_ancestors_with_macros(token.clone()).find_map(|node| {
28+
let (ty, node) = sema.token_ancestors_with_macros(token).find_map(|node| {
2929
let ty = match_ast! {
3030
match node {
3131
ast::Expr(it) => sema.type_of_expr(&it)?,

crates/ide_assists/src/handlers/remove_dbg.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ pub(crate) fn remove_dbg(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
3535
.prev_sibling_or_token()
3636
.and_then(whitespace_start)
3737
.map(|start| TextRange::new(start, macro_call.syntax().text_range().end()))
38-
.unwrap_or(macro_call.syntax().text_range())
38+
.unwrap_or_else(|| macro_call.syntax().text_range())
3939
},
4040
ast::ExprStmt(it) => {
4141
let start = it
4242
.syntax()
4343
.prev_sibling_or_token()
4444
.and_then(whitespace_start)
45-
.unwrap_or(it.syntax().text_range().start());
45+
.unwrap_or_else(|| it.syntax().text_range().start());
4646
let end = it.syntax().text_range().end();
4747

4848
TextRange::new(start, end)

crates/proc_macro_api/src/version.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,23 @@ pub fn read_dylib_info(dylib_path: &Path) -> io::Result<RustCInfo> {
2828

2929
let ver_str = read_version(dylib_path)?;
3030
let mut items = ver_str.split_whitespace();
31-
let tag = items.next().ok_or(err!("version format error"))?;
31+
let tag = items.next().ok_or_else(|| err!("version format error"))?;
3232
if tag != "rustc" {
3333
return Err(err!("version format error (No rustc tag)"));
3434
}
3535

36-
let version_part = items.next().ok_or(err!("no version string"))?;
36+
let version_part = items.next().ok_or_else(|| err!("no version string"))?;
3737
let mut version_parts = version_part.split('-');
38-
let version = version_parts.next().ok_or(err!("no version"))?;
38+
let version = version_parts.next().ok_or_else(|| err!("no version"))?;
3939
let channel = version_parts.next().unwrap_or_default().to_string();
4040

41-
let commit = items.next().ok_or(err!("no commit info"))?;
41+
let commit = items.next().ok_or_else(|| err!("no commit info"))?;
4242
// remove (
4343
if commit.len() == 0 {
4444
return Err(err!("commit format error"));
4545
}
4646
let commit = commit[1..].to_string();
47-
let date = items.next().ok_or(err!("no date info"))?;
47+
let date = items.next().ok_or_else(|| err!("no date info"))?;
4848
// remove )
4949
if date.len() == 0 {
5050
return Err(err!("date format error"));

crates/project_model/src/build_data.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ impl WorkspaceBuildData {
187187
let mut deserializer = serde_json::Deserializer::from_str(line);
188188
deserializer.disable_recursion_limit();
189189
let message = Message::deserialize(&mut deserializer)
190-
.unwrap_or(Message::TextLine(line.to_string()));
190+
.unwrap_or_else(|_| Message::TextLine(line.to_string()));
191191

192192
match message {
193193
Message::BuildScriptExecuted(BuildScript {
@@ -229,7 +229,7 @@ impl WorkspaceBuildData {
229229
Message::CompilerArtifact(message) => {
230230
progress(format!("metadata {}", message.target.name));
231231

232-
if message.target.kind.contains(&"proc-macro".to_string()) {
232+
if message.target.kind.iter().any(|k| k == "proc-macro") {
233233
let package_id = message.package_id;
234234
// Skip rmeta file
235235
if let Some(filename) =

crates/test_utils/src/fixture.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ impl Fixture {
131131
res.push(meta)
132132
} else {
133133
if line.starts_with("// ")
134-
&& line.contains(":")
134+
&& line.contains(':')
135135
&& !line.contains("::")
136136
&& line.chars().all(|it| !it.is_uppercase())
137137
{

0 commit comments

Comments
 (0)