Remove non-needed clones
I am not certain if this will improve performance, but it seems having a .clone() without any need should be removed. This was done with clippy, and manually reviewed: ``` cargo clippy --fix -- -A clippy::all -D clippy::redundant_clone ```
This commit is contained in:
parent
a06525517b
commit
1d59c7b667
@ -1345,7 +1345,7 @@ fn collect_macro_expansion(
|
|||||||
// Missing proc macros are non-fatal, so they are handled specially.
|
// Missing proc macros are non-fatal, so they are handled specially.
|
||||||
DefDiagnostic::unresolved_proc_macro(module_id, loc.kind.clone(), loc.def.krate)
|
DefDiagnostic::unresolved_proc_macro(module_id, loc.kind.clone(), loc.def.krate)
|
||||||
}
|
}
|
||||||
_ => DefDiagnostic::macro_error(module_id, loc.kind.clone(), err.to_string()),
|
_ => DefDiagnostic::macro_error(module_id, loc.kind, err.to_string()),
|
||||||
};
|
};
|
||||||
|
|
||||||
self.def_map.diagnostics.push(diag);
|
self.def_map.diagnostics.push(diag);
|
||||||
|
@ -577,10 +577,9 @@ pub fn callable_sig_from_fnonce(
|
|||||||
let fn_once =
|
let fn_once =
|
||||||
TyBuilder::trait_ref(db, fn_once_trait).push(self_ty.clone()).push(args.clone()).build();
|
TyBuilder::trait_ref(db, fn_once_trait).push(self_ty.clone()).push(args.clone()).build();
|
||||||
let projection =
|
let projection =
|
||||||
TyBuilder::assoc_type_projection(db, output_assoc_type, Some(fn_once.substitution.clone()))
|
TyBuilder::assoc_type_projection(db, output_assoc_type, Some(fn_once.substitution)).build();
|
||||||
.build();
|
|
||||||
|
|
||||||
let ret_ty = db.normalize_projection(projection, env);
|
let ret_ty = db.normalize_projection(projection, env);
|
||||||
|
|
||||||
Some(CallableSig::from_params_and_return(params, ret_ty.clone(), false, Safety::Safe))
|
Some(CallableSig::from_params_and_return(params, ret_ty, false, Safety::Safe))
|
||||||
}
|
}
|
||||||
|
@ -1983,7 +1983,7 @@ fn fallback_bound_vars<T: TypeFoldable<Interner> + HasInterner<Interner = Intern
|
|||||||
if bound.index_if_innermost().map_or(true, is_allowed) {
|
if bound.index_if_innermost().map_or(true, is_allowed) {
|
||||||
bound.shifted_in_from(binders).to_const(Interner, ty)
|
bound.shifted_in_from(binders).to_const(Interner, ty)
|
||||||
} else {
|
} else {
|
||||||
unknown_const(ty.clone())
|
unknown_const(ty)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -847,7 +847,7 @@ fn descend_into_macros_impl(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
process_expansion_for_token(&mut stack, file_id, None, token.as_ref())
|
process_expansion_for_token(&mut stack, file_id, None, token.as_ref())
|
||||||
} else if let Some(meta) = ast::Meta::cast(parent.clone()) {
|
} else if let Some(meta) = ast::Meta::cast(parent) {
|
||||||
// attribute we failed expansion for earlier, this might be a derive invocation
|
// attribute we failed expansion for earlier, this might be a derive invocation
|
||||||
// or derive helper attribute
|
// or derive helper attribute
|
||||||
let attr = meta.parent_attr()?;
|
let attr = meta.parent_attr()?;
|
||||||
|
@ -118,7 +118,7 @@ fn body(&self) -> Option<&Body> {
|
|||||||
fn expr_id(&self, db: &dyn HirDatabase, expr: &ast::Expr) -> Option<ExprId> {
|
fn expr_id(&self, db: &dyn HirDatabase, expr: &ast::Expr) -> Option<ExprId> {
|
||||||
let src = match expr {
|
let src = match expr {
|
||||||
ast::Expr::MacroExpr(expr) => {
|
ast::Expr::MacroExpr(expr) => {
|
||||||
self.expand_expr(db, InFile::new(self.file_id, expr.macro_call()?.clone()))?
|
self.expand_expr(db, InFile::new(self.file_id, expr.macro_call()?))?
|
||||||
}
|
}
|
||||||
_ => InFile::new(self.file_id, expr.clone()),
|
_ => InFile::new(self.file_id, expr.clone()),
|
||||||
};
|
};
|
||||||
|
@ -75,7 +75,7 @@ fn into_closure(param: &Expr) -> Expr {
|
|||||||
(|| {
|
(|| {
|
||||||
if let ast::Expr::CallExpr(call) = param {
|
if let ast::Expr::CallExpr(call) = param {
|
||||||
if call.arg_list()?.args().count() == 0 {
|
if call.arg_list()?.args().count() == 0 {
|
||||||
Some(call.expr()?.clone())
|
Some(call.expr()?)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
@ -151,7 +151,7 @@ fn into_call(param: &Expr) -> Expr {
|
|||||||
(|| {
|
(|| {
|
||||||
if let ast::Expr::ClosureExpr(closure) = param {
|
if let ast::Expr::ClosureExpr(closure) = param {
|
||||||
if closure.param_list()?.params().count() == 0 {
|
if closure.param_list()?.params().count() == 0 {
|
||||||
Some(closure.body()?.clone())
|
Some(closure.body()?)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
@ -494,7 +494,7 @@ pub(crate) fn add_variant_pat(
|
|||||||
pattern_ctx,
|
pattern_ctx,
|
||||||
path_ctx,
|
path_ctx,
|
||||||
variant,
|
variant,
|
||||||
local_name.clone(),
|
local_name,
|
||||||
None,
|
None,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
@ -224,7 +224,7 @@ fn include_references(initial_element: &ast::Expr) -> (ast::Expr, ast::Expr) {
|
|||||||
|
|
||||||
if let Some(first_ref_expr) = resulting_element.syntax().parent().and_then(ast::RefExpr::cast) {
|
if let Some(first_ref_expr) = resulting_element.syntax().parent().and_then(ast::RefExpr::cast) {
|
||||||
if let Some(expr) = first_ref_expr.expr() {
|
if let Some(expr) = first_ref_expr.expr() {
|
||||||
resulting_element = expr.clone();
|
resulting_element = expr;
|
||||||
}
|
}
|
||||||
|
|
||||||
while let Some(parent_ref_element) =
|
while let Some(parent_ref_element) =
|
||||||
@ -571,7 +571,7 @@ fn main() { ControlFlow::Break('\\\\') }
|
|||||||
);
|
);
|
||||||
|
|
||||||
check_edit_with_config(
|
check_edit_with_config(
|
||||||
config.clone(),
|
config,
|
||||||
"break",
|
"break",
|
||||||
r#"
|
r#"
|
||||||
//- minicore: try
|
//- minicore: try
|
||||||
|
@ -286,7 +286,7 @@ fn analyze(
|
|||||||
ast::NameLike::NameRef(name_ref) => {
|
ast::NameLike::NameRef(name_ref) => {
|
||||||
let parent = name_ref.syntax().parent()?;
|
let parent = name_ref.syntax().parent()?;
|
||||||
let (nameref_ctx, qualifier_ctx) =
|
let (nameref_ctx, qualifier_ctx) =
|
||||||
classify_name_ref(sema, &original_file, name_ref, parent.clone())?;
|
classify_name_ref(sema, &original_file, name_ref, parent)?;
|
||||||
qual_ctx = qualifier_ctx;
|
qual_ctx = qualifier_ctx;
|
||||||
CompletionAnalysis::NameRef(nameref_ctx)
|
CompletionAnalysis::NameRef(nameref_ctx)
|
||||||
}
|
}
|
||||||
@ -585,11 +585,7 @@ fn classify_name_ref(
|
|||||||
original_file,
|
original_file,
|
||||||
&record_field.parent_record_pat(),
|
&record_field.parent_record_pat(),
|
||||||
),
|
),
|
||||||
..pattern_context_for(
|
..pattern_context_for(sema, original_file, record_field.parent_record_pat().into())
|
||||||
sema,
|
|
||||||
original_file,
|
|
||||||
record_field.parent_record_pat().clone().into(),
|
|
||||||
)
|
|
||||||
});
|
});
|
||||||
return Some(make_res(kind));
|
return Some(make_res(kind));
|
||||||
}
|
}
|
||||||
|
@ -131,7 +131,7 @@ pub(crate) fn render_field(
|
|||||||
item.detail(ty.display(ctx.db()).to_string())
|
item.detail(ty.display(ctx.db()).to_string())
|
||||||
.set_documentation(field.docs(ctx.db()))
|
.set_documentation(field.docs(ctx.db()))
|
||||||
.set_deprecated(is_deprecated)
|
.set_deprecated(is_deprecated)
|
||||||
.lookup_by(name.clone());
|
.lookup_by(name);
|
||||||
item.insert_text(field_with_receiver(receiver.as_ref(), &escaped_name));
|
item.insert_text(field_with_receiver(receiver.as_ref(), &escaped_name));
|
||||||
if let Some(receiver) = &dot_access.receiver {
|
if let Some(receiver) = &dot_access.receiver {
|
||||||
if let Some(original) = ctx.completion.sema.original_ast_node(receiver.clone()) {
|
if let Some(original) = ctx.completion.sema.original_ast_node(receiver.clone()) {
|
||||||
|
@ -16,7 +16,7 @@ fn render(ctx: RenderContext<'_>, const_: hir::Const) -> Option<CompletionItem>
|
|||||||
let (name, escaped_name) = (name.unescaped().to_smol_str(), name.to_smol_str());
|
let (name, escaped_name) = (name.unescaped().to_smol_str(), name.to_smol_str());
|
||||||
let detail = const_.display(db).to_string();
|
let detail = const_.display(db).to_string();
|
||||||
|
|
||||||
let mut item = CompletionItem::new(SymbolKind::Const, ctx.source_range(), name.clone());
|
let mut item = CompletionItem::new(SymbolKind::Const, ctx.source_range(), name);
|
||||||
item.set_documentation(ctx.docs(const_))
|
item.set_documentation(ctx.docs(const_))
|
||||||
.set_deprecated(ctx.is_deprecated(const_) || ctx.is_deprecated_assoc_item(const_))
|
.set_deprecated(ctx.is_deprecated(const_) || ctx.is_deprecated_assoc_item(const_))
|
||||||
.detail(detail)
|
.detail(detail)
|
||||||
|
@ -84,7 +84,7 @@ fn render(
|
|||||||
}
|
}
|
||||||
_ => RenderedLiteral {
|
_ => RenderedLiteral {
|
||||||
literal: escaped_qualified_name.clone(),
|
literal: escaped_qualified_name.clone(),
|
||||||
detail: escaped_qualified_name.clone(),
|
detail: escaped_qualified_name,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ fn render(
|
|||||||
};
|
};
|
||||||
let detail = type_alias.display(db).to_string();
|
let detail = type_alias.display(db).to_string();
|
||||||
|
|
||||||
let mut item = CompletionItem::new(SymbolKind::TypeAlias, ctx.source_range(), name.clone());
|
let mut item = CompletionItem::new(SymbolKind::TypeAlias, ctx.source_range(), name);
|
||||||
item.set_documentation(ctx.docs(type_alias))
|
item.set_documentation(ctx.docs(type_alias))
|
||||||
.set_deprecated(ctx.is_deprecated(type_alias) || ctx.is_deprecated_assoc_item(type_alias))
|
.set_deprecated(ctx.is_deprecated(type_alias) || ctx.is_deprecated_assoc_item(type_alias))
|
||||||
.detail(detail)
|
.detail(detail)
|
||||||
|
@ -86,7 +86,7 @@ pub(crate) fn completion_list_no_kw(ra_fixture: &str) -> String {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn completion_list_no_kw_with_private_editable(ra_fixture: &str) -> String {
|
pub(crate) fn completion_list_no_kw_with_private_editable(ra_fixture: &str) -> String {
|
||||||
let mut config = TEST_CONFIG.clone();
|
let mut config = TEST_CONFIG;
|
||||||
config.enable_private_editable = true;
|
config.enable_private_editable = true;
|
||||||
completion_list_with_config(config, ra_fixture, false, None)
|
completion_list_with_config(config, ra_fixture, false, None)
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ pub(crate) fn json_in_items(
|
|||||||
.severity(Severity::WeakWarning)
|
.severity(Severity::WeakWarning)
|
||||||
.with_fixes(Some(vec![{
|
.with_fixes(Some(vec![{
|
||||||
let mut scb = SourceChangeBuilder::new(file_id);
|
let mut scb = SourceChangeBuilder::new(file_id);
|
||||||
let scope = match import_scope.clone() {
|
let scope = match import_scope {
|
||||||
ImportScope::File(it) => ImportScope::File(scb.make_mut(it)),
|
ImportScope::File(it) => ImportScope::File(scb.make_mut(it)),
|
||||||
ImportScope::Module(it) => ImportScope::Module(scb.make_mut(it)),
|
ImportScope::Module(it) => ImportScope::Module(scb.make_mut(it)),
|
||||||
ImportScope::Block(it) => ImportScope::Block(scb.make_mut(it)),
|
ImportScope::Block(it) => ImportScope::Block(scb.make_mut(it)),
|
||||||
|
@ -81,7 +81,7 @@ fn should_not_display_type_hint(
|
|||||||
|
|
||||||
if config.hide_closure_initialization_hints {
|
if config.hide_closure_initialization_hints {
|
||||||
if let Some(parent) = bind_pat.syntax().parent() {
|
if let Some(parent) = bind_pat.syntax().parent() {
|
||||||
if let Some(it) = ast::LetStmt::cast(parent.clone()) {
|
if let Some(it) = ast::LetStmt::cast(parent) {
|
||||||
if let Some(ast::Expr::ClosureExpr(closure)) = it.initializer() {
|
if let Some(ast::Expr::ClosureExpr(closure)) = it.initializer() {
|
||||||
if closure_has_block_body(&closure) {
|
if closure_has_block_body(&closure) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -32,7 +32,7 @@ pub(super) fn hints(
|
|||||||
|
|
||||||
let param_list = closure.param_list()?;
|
let param_list = closure.param_list()?;
|
||||||
|
|
||||||
let closure = sema.descend_node_into_attributes(closure.clone()).pop()?;
|
let closure = sema.descend_node_into_attributes(closure).pop()?;
|
||||||
let ty = sema.type_of_expr(&ast::Expr::ClosureExpr(closure))?.adjusted();
|
let ty = sema.type_of_expr(&ast::Expr::ClosureExpr(closure))?.adjusted();
|
||||||
let callable = ty.as_callable(sema.db)?;
|
let callable = ty.as_callable(sema.db)?;
|
||||||
let ty = callable.return_type();
|
let ty = callable.return_type();
|
||||||
|
@ -57,7 +57,7 @@ pub fn single_token(text: &'a str) -> Option<(SyntaxKind, Option<String>)> {
|
|||||||
let mut conv = Converter::new(text);
|
let mut conv = Converter::new(text);
|
||||||
conv.extend_token(&token.kind, text);
|
conv.extend_token(&token.kind, text);
|
||||||
match &*conv.res.kind {
|
match &*conv.res.kind {
|
||||||
[kind] => Some((*kind, conv.res.error.pop().map(|it| it.msg.clone()))),
|
[kind] => Some((*kind, conv.res.error.pop().map(|it| it.msg))),
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ pub fn from_lib(
|
|||||||
let inner = unsafe { Abi_1_63::from_lib(lib, symbol_name) }?;
|
let inner = unsafe { Abi_1_63::from_lib(lib, symbol_name) }?;
|
||||||
Ok(Abi::Abi1_63(inner))
|
Ok(Abi::Abi1_63(inner))
|
||||||
}
|
}
|
||||||
_ => Err(LoadProcMacroDylibError::UnsupportedABI(info.version_string.clone())),
|
_ => Err(LoadProcMacroDylibError::UnsupportedABI(info.version_string)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -561,10 +561,7 @@ fn handle_flycheck_msg(&mut self, message: flycheck::Message) {
|
|||||||
flycheck::Progress::DidCheckCrate(target) => (Progress::Report, Some(target)),
|
flycheck::Progress::DidCheckCrate(target) => (Progress::Report, Some(target)),
|
||||||
flycheck::Progress::DidCancel => (Progress::End, None),
|
flycheck::Progress::DidCancel => (Progress::End, None),
|
||||||
flycheck::Progress::DidFailToRestart(err) => {
|
flycheck::Progress::DidFailToRestart(err) => {
|
||||||
self.show_and_log_error(
|
self.show_and_log_error("cargo check failed".to_string(), Some(err));
|
||||||
"cargo check failed".to_string(),
|
|
||||||
Some(err.to_string()),
|
|
||||||
);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
flycheck::Progress::DidFinish(result) => {
|
flycheck::Progress::DidFinish(result) => {
|
||||||
|
@ -461,7 +461,7 @@ fn reload_flycheck(&mut self) {
|
|||||||
flycheck::InvocationStrategy::Once => vec![FlycheckHandle::spawn(
|
flycheck::InvocationStrategy::Once => vec![FlycheckHandle::spawn(
|
||||||
0,
|
0,
|
||||||
Box::new(move |msg| sender.send(msg).unwrap()),
|
Box::new(move |msg| sender.send(msg).unwrap()),
|
||||||
config.clone(),
|
config,
|
||||||
self.config.root_path().clone(),
|
self.config.root_path().clone(),
|
||||||
)],
|
)],
|
||||||
flycheck::InvocationStrategy::PerWorkspace => {
|
flycheck::InvocationStrategy::PerWorkspace => {
|
||||||
|
Loading…
Reference in New Issue
Block a user