Unnamed repository; edit this file 'description' to name the repository.
Auto merge of #12796 - mmirate:patch-1, r=Veykril
chore: change str_ref_to_string to str_ref_to_owned `ToString` is implemented by many different types than `&str`, and represents a serialization into string data. The fact that said data is returned as owned, is an implementation detail resulting from the lack of a parameter for a pre-allocated buffer. If merely copying borrowed string data to owned string data is all that is desired, `ToOwned` is a much better choice, because if the user later refactors the code such that the input is no longer an `&str`, then they will get a compiler error instead of a mysterious runtime-behavioral change.
bors 2022-07-19
parent dc05192 · parent be30c4d · commit 567a5e9
-rw-r--r--crates/ide-diagnostics/src/handlers/type_mismatch.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/ide-diagnostics/src/handlers/type_mismatch.rs b/crates/ide-diagnostics/src/handlers/type_mismatch.rs
index 2239382472..5826bed343 100644
--- a/crates/ide-diagnostics/src/handlers/type_mismatch.rs
+++ b/crates/ide-diagnostics/src/handlers/type_mismatch.rs
@@ -35,7 +35,7 @@ fn fixes(ctx: &DiagnosticsContext<'_>, d: &hir::TypeMismatch) -> Option<Vec<Assi
add_reference(ctx, d, &mut fixes);
add_missing_ok_or_some(ctx, d, &mut fixes);
remove_semicolon(ctx, d, &mut fixes);
- str_ref_to_string(ctx, d, &mut fixes);
+ str_ref_to_owned(ctx, d, &mut fixes);
if fixes.is_empty() {
None
@@ -135,7 +135,7 @@ fn remove_semicolon(
Some(())
}
-fn str_ref_to_string(
+fn str_ref_to_owned(
ctx: &DiagnosticsContext<'_>,
d: &hir::TypeMismatch,
acc: &mut Vec<Assist>,
@@ -151,12 +151,12 @@ fn str_ref_to_string(
let expr = d.expr.value.to_node(&root);
let expr_range = expr.syntax().text_range();
- let to_string = format!(".to_string()");
+ let to_owned = format!(".to_owned()");
- let edit = TextEdit::insert(expr.syntax().text_range().end(), to_string);
+ let edit = TextEdit::insert(expr.syntax().text_range().end(), to_owned);
let source_change =
SourceChange::from_text_edit(d.expr.file_id.original_file(ctx.sema.db), edit);
- acc.push(fix("str_ref_to_string", "Add .to_string() here", source_change, expr_range));
+ acc.push(fix("str_ref_to_owned", "Add .to_owned() here", source_change, expr_range));
Some(())
}
@@ -527,7 +527,7 @@ fn foo() -> SomeOtherEnum { 0$0 }
}
#[test]
- fn str_ref_to_string() {
+ fn str_ref_to_owned() {
check_fix(
r#"
struct String;
@@ -540,7 +540,7 @@ fn test() -> String {
struct String;
fn test() -> String {
- "a".to_string()
+ "a".to_owned()
}
"#,
);