From 8206939fed0e2307455d46620ee114f74ab35d7f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lauren=C8=9Biu=20Nicola?= Date: Wed, 26 May 2021 18:34:50 +0300 Subject: [PATCH] clippy::redundant_clone fixes --- crates/hir_expand/src/eager.rs | 2 +- crates/hir_ty/src/infer/coerce.rs | 12 ++++++------ crates/hir_ty/src/infer/expr.rs | 11 +++++------ crates/hir_ty/src/infer/pat.rs | 9 ++++----- .../ide_assists/src/handlers/expand_glob_import.rs | 2 +- crates/project_model/src/build_data.rs | 6 +++--- crates/project_model/src/cargo_workspace.rs | 7 ++----- 7 files changed, 22 insertions(+), 27 deletions(-) diff --git a/crates/hir_expand/src/eager.rs b/crates/hir_expand/src/eager.rs index e165b9c5fb7..1464320ba2d 100644 --- a/crates/hir_expand/src/eager.rs +++ b/crates/hir_expand/src/eager.rs @@ -197,7 +197,7 @@ fn eager_macro_recur( macro_resolver: &dyn Fn(ast::Path) -> Option, mut diagnostic_sink: &mut dyn FnMut(mbe::ExpandError), ) -> Result { - let original = curr.value.clone().clone_for_update(); + let original = curr.value.clone_for_update(); let children = original.descendants().filter_map(ast::MacroCall::cast); let mut replacements = Vec::new(); diff --git a/crates/hir_ty/src/infer/coerce.rs b/crates/hir_ty/src/infer/coerce.rs index 765a02b1ced..03b97e7db5d 100644 --- a/crates/hir_ty/src/infer/coerce.rs +++ b/crates/hir_ty/src/infer/coerce.rs @@ -76,17 +76,17 @@ pub(super) fn coerce_merge_branch(&mut self, id: Option, ty1: &Ty, ty2: // way around first would mean we make the type variable `!`, instead of // just marking it as possibly diverging. if self.coerce(&ty2, &ty1) { - ty1.clone() + ty1 } else if self.coerce(&ty1, &ty2) { - ty2.clone() + ty2 } else { if let Some(id) = id { self.result .type_mismatches - .insert(id.into(), TypeMismatch { expected: ty1.clone(), actual: ty2.clone() }); + .insert(id.into(), TypeMismatch { expected: ty1.clone(), actual: ty2 }); } cov_mark::hit!(coerce_merge_fail_fallback); - ty1.clone() + ty1 } } @@ -183,7 +183,7 @@ fn coerce_ref(&mut self, from_ty: Ty, to_ty: &Ty, to_mt: Mutability) -> InferRes // details of coercion errors though, so I think it's useful to leave // the structure like it is. - let canonicalized = self.canonicalize(from_ty.clone()); + let canonicalized = self.canonicalize(from_ty); let autoderef = autoderef::autoderef( self.db, self.resolver.krate(), @@ -389,7 +389,7 @@ fn try_coerce_unsized(&mut self, from_ty: &Ty, to_ty: &Ty) -> InferResult { // The CoerceUnsized trait should have two generic params: Self and T. return Err(TypeError); } - b.push(coerce_from.clone()).push(to_ty.clone()).build() + b.push(coerce_from).push(to_ty.clone()).build() }; let goal: InEnvironment = diff --git a/crates/hir_ty/src/infer/expr.rs b/crates/hir_ty/src/infer/expr.rs index eab8fac910e..c0cbe19c156 100644 --- a/crates/hir_ty/src/infer/expr.rs +++ b/crates/hir_ty/src/infer/expr.rs @@ -44,7 +44,7 @@ pub(super) fn infer_expr(&mut self, tgt_expr: ExprId, expected: &Expectation) -> if !could_unify { self.result.type_mismatches.insert( tgt_expr.into(), - TypeMismatch { expected: expected_ty.clone(), actual: ty.clone() }, + TypeMismatch { expected: expected_ty, actual: ty.clone() }, ); } } @@ -57,15 +57,14 @@ pub(super) fn infer_expr_coerce(&mut self, expr: ExprId, expected: &Expectation) let ty = self.infer_expr_inner(expr, &expected); let ty = if let Some(target) = expected.only_has_type(&mut self.table) { if !self.coerce(&ty, &target) { - self.result.type_mismatches.insert( - expr.into(), - TypeMismatch { expected: target.clone(), actual: ty.clone() }, - ); + self.result + .type_mismatches + .insert(expr.into(), TypeMismatch { expected: target, actual: ty.clone() }); // Return actual type when type mismatch. // This is needed for diagnostic when return type mismatch. ty } else { - target.clone() + target } } else { ty diff --git a/crates/hir_ty/src/infer/pat.rs b/crates/hir_ty/src/infer/pat.rs index 9c8e3b6aea9..83e0a7a9e95 100644 --- a/crates/hir_ty/src/infer/pat.rs +++ b/crates/hir_ty/src/infer/pat.rs @@ -196,7 +196,7 @@ pub(super) fn infer_pat( let inner_ty = if let Some(subpat) = subpat { self.infer_pat(*subpat, &expected, default_bm) } else { - expected.clone() + expected }; let inner_ty = self.insert_type_vars_shallow(inner_ty); @@ -266,10 +266,9 @@ pub(super) fn infer_pat( // use a new type variable if we got error type here let ty = self.insert_type_vars_shallow(ty); if !self.unify(&ty, &expected) { - self.result.type_mismatches.insert( - pat.into(), - TypeMismatch { expected: expected.clone(), actual: ty.clone() }, - ); + self.result + .type_mismatches + .insert(pat.into(), TypeMismatch { expected: expected, actual: ty.clone() }); } self.write_pat_ty(pat, ty.clone()); ty diff --git a/crates/ide_assists/src/handlers/expand_glob_import.rs b/crates/ide_assists/src/handlers/expand_glob_import.rs index 79cb08d6903..6da880b52d9 100644 --- a/crates/ide_assists/src/handlers/expand_glob_import.rs +++ b/crates/ide_assists/src/handlers/expand_glob_import.rs @@ -55,7 +55,7 @@ pub(crate) fn expand_glob_import(acc: &mut Assists, ctx: &AssistContext) -> Opti let refs_in_target = find_refs_in_mod(ctx, target_module, Some(current_module))?; let imported_defs = find_imported_defs(ctx, star)?; - let target = parent.clone().either(|n| n.syntax().clone(), |n| n.syntax().clone()); + let target = parent.either(|n| n.syntax().clone(), |n| n.syntax().clone()); acc.add( AssistId("expand_glob_import", AssistKind::RefactorRewrite), "Expand glob import", diff --git a/crates/project_model/src/build_data.rs b/crates/project_model/src/build_data.rs index 3aa546980cd..33a4f81686f 100644 --- a/crates/project_model/src/build_data.rs +++ b/crates/project_model/src/build_data.rs @@ -214,7 +214,7 @@ fn collect( acc }; let package_build_data = - res.per_package.entry(package_id.repr.clone()).or_default(); + res.per_package.entry(package_id.repr).or_default(); // cargo_metadata crate returns default (empty) path for // older cargos, which is not absolute, so work around that. if !out_dir.as_str().is_empty() { @@ -237,13 +237,13 @@ fn collect( { let filename = AbsPathBuf::assert(PathBuf::from(&filename)); let package_build_data = - res.per_package.entry(package_id.repr.clone()).or_default(); + res.per_package.entry(package_id.repr).or_default(); package_build_data.proc_macro_dylib_path = Some(filename); } } } Message::CompilerMessage(message) => { - progress(message.target.name.clone()); + progress(message.target.name); } Message::BuildFinished(_) => {} Message::TextLine(_) => {} diff --git a/crates/project_model/src/cargo_workspace.rs b/crates/project_model/src/cargo_workspace.rs index a8fee4f08da..b8ad083640c 100644 --- a/crates/project_model/src/cargo_workspace.rs +++ b/crates/project_model/src/cargo_workspace.rs @@ -346,11 +346,8 @@ pub fn from_cargo_metadata( let workspace_root = AbsPathBuf::assert(PathBuf::from(meta.workspace_root.into_os_string())); - let build_data_config = BuildDataConfig::new( - cargo_toml.to_path_buf(), - config.clone(), - Arc::new(meta.packages.clone()), - ); + let build_data_config = + BuildDataConfig::new(cargo_toml.to_path_buf(), config.clone(), Arc::new(meta.packages)); Ok(CargoWorkspace { packages, targets, workspace_root, build_data_config }) } -- 2.44.0