Skip to content

Commit 25b1d6f

Browse files
committed
Auto merge of #13435 - DropDemBits:assists-format-args-capture-pt3, r=Veykril
Migrate assists to format args captures, part 3 Continuation of rust-lang/rust-analyzer#13379 Migrates: - `inline_call` - `inline_local_variable` - `introduce_named_lifetime` - `merge_match_arms` - `move_from_mod_rs` - `move_guard` - `move_module_to_file` - `move_to_mod_rs` - `number_representation` - `qualify_method_call` - `qualify_path` - `raw_string` - `remove_dbg` - `replace_derive_with_manual_impl` - `replace_or_with_or_else` - `replace_turbofish_with_explicit_type` - `unwrap_tuple` - `wrap_return_type_in_result`
2 parents afe8f6b + b1909a8 commit 25b1d6f

18 files changed

+48
-57
lines changed

crates/ide-assists/src/handlers/inline_call.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,10 @@ pub(crate) fn inline_call(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<
192192
PathResolution::Def(hir::ModuleDef::Function(f)) => f,
193193
_ => return None,
194194
};
195-
(function, format!("Inline `{}`", path))
195+
(function, format!("Inline `{path}`"))
196196
}
197197
ast::CallableExpr::MethodCall(call) => {
198-
(ctx.sema.resolve_method_call(call)?, format!("Inline `{}`", name_ref))
198+
(ctx.sema.resolve_method_call(call)?, format!("Inline `{name_ref}`"))
199199
}
200200
};
201201

crates/ide-assists/src/handlers/inline_local_variable.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext<'_>)
113113
.collect::<Option<Vec<_>>>()?;
114114

115115
let init_str = initializer_expr.syntax().text().to_string();
116-
let init_in_paren = format!("({})", &init_str);
116+
let init_in_paren = format!("({init_str})");
117117

118118
let target = match target {
119119
ast::NameOrNameRef::Name(it) => it.syntax().text_range(),
@@ -132,7 +132,7 @@ pub(crate) fn inline_local_variable(acc: &mut Assists, ctx: &AssistContext<'_>)
132132
let replacement = if should_wrap { &init_in_paren } else { &init_str };
133133
if ast::RecordExprField::for_field_name(&name).is_some() {
134134
cov_mark::hit!(inline_field_shorthand);
135-
builder.insert(range.end(), format!(": {}", replacement));
135+
builder.insert(range.end(), format!(": {replacement}"));
136136
} else {
137137
builder.replace(range, replacement.clone())
138138
}

crates/ide-assists/src/handlers/introduce_named_lifetime.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ fn generate_unique_lifetime_param_name(
127127
Some(type_params) => {
128128
let used_lifetime_params: FxHashSet<_> =
129129
type_params.lifetime_params().map(|p| p.syntax().text().to_string()).collect();
130-
('a'..='z').map(|it| format!("'{}", it)).find(|it| !used_lifetime_params.contains(it))
130+
('a'..='z').map(|it| format!("'{it}")).find(|it| !used_lifetime_params.contains(it))
131131
}
132132
None => Some("'a".to_string()),
133133
}

crates/ide-assists/src/handlers/merge_match_arms.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ pub(crate) fn merge_match_arms(acc: &mut Assists, ctx: &AssistContext<'_>) -> Op
7878
.join(" | ")
7979
};
8080

81-
let arm = format!("{} => {},", pats, current_expr.syntax().text());
81+
let arm = format!("{pats} => {current_expr},");
8282

8383
if let [first, .., last] = &*arms_to_merge {
8484
let start = first.syntax().text_range().start();

crates/ide-assists/src/handlers/move_from_mod_rs.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ pub(crate) fn move_from_mod_rs(acc: &mut Assists, ctx: &AssistContext<'_>) -> Op
4040

4141
let target = source_file.syntax().text_range();
4242
let module_name = module.name(ctx.db())?.to_string();
43-
let path = format!("../{}.rs", module_name);
43+
let path = format!("../{module_name}.rs");
4444
let dst = AnchoredPathBuf { anchor: ctx.file_id(), path };
4545
acc.add(
4646
AssistId("move_from_mod_rs", AssistKind::Refactor),
47-
format!("Convert {}/mod.rs to {}.rs", module_name, module_name),
47+
format!("Convert {module_name}/mod.rs to {module_name}.rs"),
4848
target,
4949
|builder| {
5050
builder.move_file(ctx.file_id(), dst);

crates/ide-assists/src/handlers/move_guard.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,16 @@ pub(crate) fn move_arm_cond_to_match_guard(
133133
};
134134
let then_arm_end = match_arm.syntax().text_range().end();
135135
let indent_level = match_arm.indent_level();
136-
let spaces = " ".repeat(indent_level.0 as _);
136+
let spaces = indent_level;
137137

138138
let mut first = true;
139139
for (cond, block) in conds_blocks {
140140
if !first {
141-
edit.insert(then_arm_end, format!("\n{}", spaces));
141+
edit.insert(then_arm_end, format!("\n{spaces}"));
142142
} else {
143143
first = false;
144144
}
145-
let guard = format!("{} if {} => ", match_pat, cond.syntax().text());
145+
let guard = format!("{match_pat} if {cond} => ");
146146
edit.insert(then_arm_end, guard);
147147
let only_expr = block.statements().next().is_none();
148148
match &block.tail_expr() {
@@ -158,7 +158,7 @@ pub(crate) fn move_arm_cond_to_match_guard(
158158
}
159159
if let Some(e) = tail {
160160
cov_mark::hit!(move_guard_ifelse_else_tail);
161-
let guard = format!("\n{}{} => ", spaces, match_pat);
161+
let guard = format!("\n{spaces}{match_pat} => ");
162162
edit.insert(then_arm_end, guard);
163163
let only_expr = e.statements().next().is_none();
164164
match &e.tail_expr() {
@@ -183,7 +183,7 @@ pub(crate) fn move_arm_cond_to_match_guard(
183183
{
184184
cov_mark::hit!(move_guard_ifelse_has_wildcard);
185185
}
186-
_ => edit.insert(then_arm_end, format!("\n{}{} => {{}}", spaces, match_pat)),
186+
_ => edit.insert(then_arm_end, format!("\n{spaces}{match_pat} => {{}}")),
187187
}
188188
}
189189
},

crates/ide-assists/src/handlers/move_module_to_file.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ pub(crate) fn move_module_to_file(acc: &mut Assists, ctx: &AssistContext<'_>) ->
5252
let mut buf = String::from("./");
5353
match parent_module.name(ctx.db()) {
5454
Some(name) if !parent_module.is_mod_rs(ctx.db()) => {
55-
format_to!(buf, "{}/", name)
55+
format_to!(buf, "{name}/")
5656
}
5757
_ => (),
5858
}
@@ -82,7 +82,7 @@ pub(crate) fn move_module_to_file(acc: &mut Assists, ctx: &AssistContext<'_>) ->
8282
items
8383
};
8484

85-
let buf = format!("mod {};", module_name);
85+
let buf = format!("mod {module_name};");
8686

8787
let replacement_start = match module_ast.mod_token() {
8888
Some(mod_token) => mod_token.text_range(),

crates/ide-assists/src/handlers/move_to_mod_rs.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@ pub(crate) fn move_to_mod_rs(acc: &mut Assists, ctx: &AssistContext<'_>) -> Opti
4040

4141
let target = source_file.syntax().text_range();
4242
let module_name = module.name(ctx.db())?.to_string();
43-
let path = format!("./{}/mod.rs", module_name);
43+
let path = format!("./{module_name}/mod.rs");
4444
let dst = AnchoredPathBuf { anchor: ctx.file_id(), path };
4545
acc.add(
4646
AssistId("move_to_mod_rs", AssistKind::Refactor),
47-
format!("Convert {}.rs to {}/mod.rs", module_name, module_name),
47+
format!("Convert {module_name}.rs to {module_name}/mod.rs"),
4848
target,
4949
|builder| {
5050
builder.move_file(ctx.file_id(), dst);

crates/ide-assists/src/handlers/number_representation.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ pub(crate) fn reformat_number_literal(acc: &mut Assists, ctx: &AssistContext<'_>
3838
converted.push_str(suffix);
3939

4040
let group_id = GroupLabel("Reformat number literal".into());
41-
let label = format!("Convert {} to {}", literal, converted);
41+
let label = format!("Convert {literal} to {converted}");
4242
let range = literal.syntax().text_range();
4343
acc.add_group(
4444
&group_id,

crates/ide-assists/src/handlers/qualify_method_call.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ pub(crate) fn qualify_method_call(acc: &mut Assists, ctx: &AssistContext<'_>) ->
5454

5555
acc.add(
5656
AssistId("qualify_method_call", AssistKind::RefactorInline),
57-
format!("Qualify `{}` method call", ident.text()),
57+
format!("Qualify `{ident}` method call"),
5858
range,
5959
|builder| {
6060
qualify_candidate.qualify(

crates/ide-assists/src/handlers/qualify_path.rs

+13-16
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,14 @@ impl QualifyCandidate<'_> {
118118
match self {
119119
QualifyCandidate::QualifierStart(segment, generics) => {
120120
let generics = generics.as_ref().map_or_else(String::new, ToString::to_string);
121-
replacer(format!("{}{}::{}", import, generics, segment));
121+
replacer(format!("{import}{generics}::{segment}"));
122122
}
123123
QualifyCandidate::UnqualifiedName(generics) => {
124124
let generics = generics.as_ref().map_or_else(String::new, ToString::to_string);
125-
replacer(format!("{}{}", import, generics));
125+
replacer(format!("{import}{generics}"));
126126
}
127127
QualifyCandidate::TraitAssocItem(qualifier, segment) => {
128-
replacer(format!("<{} as {}>::{}", qualifier, import, segment));
128+
replacer(format!("<{qualifier} as {import}>::{segment}"));
129129
}
130130
QualifyCandidate::TraitMethod(db, mcall_expr) => {
131131
Self::qualify_trait_method(db, mcall_expr, replacer, import, item);
@@ -155,16 +155,11 @@ impl QualifyCandidate<'_> {
155155
hir::Access::Exclusive => make::expr_ref(receiver, true),
156156
hir::Access::Owned => receiver,
157157
};
158-
replacer(format!(
159-
"{}::{}{}{}",
160-
import,
161-
method_name,
162-
generics,
163-
match arg_list {
164-
Some(args) => make::arg_list(iter::once(receiver).chain(args)),
165-
None => make::arg_list(iter::once(receiver)),
166-
}
167-
));
158+
let arg_list = match arg_list {
159+
Some(args) => make::arg_list(iter::once(receiver).chain(args)),
160+
None => make::arg_list(iter::once(receiver)),
161+
};
162+
replacer(format!("{import}::{method_name}{generics}{arg_list}"));
168163
}
169164
Some(())
170165
}
@@ -218,15 +213,17 @@ fn group_label(candidate: &ImportCandidate) -> GroupLabel {
218213
}
219214
}
220215
.text();
221-
GroupLabel(format!("Qualify {}", name))
216+
GroupLabel(format!("Qualify {name}"))
222217
}
223218

224219
fn label(candidate: &ImportCandidate, import: &LocatedImport) -> String {
220+
let import_path = &import.import_path;
221+
225222
match candidate {
226223
ImportCandidate::Path(candidate) if candidate.qualifier.is_none() => {
227-
format!("Qualify as `{}`", import.import_path)
224+
format!("Qualify as `{import_path}`")
228225
}
229-
_ => format!("Qualify with `{}`", import.import_path),
226+
_ => format!("Qualify with `{import_path}`"),
230227
}
231228
}
232229

crates/ide-assists/src/handlers/raw_string.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,10 @@ pub(crate) fn make_raw_string(acc: &mut Assists, ctx: &AssistContext<'_>) -> Opt
3434
let hashes = "#".repeat(required_hashes(&value).max(1));
3535
if matches!(value, Cow::Borrowed(_)) {
3636
// Avoid replacing the whole string to better position the cursor.
37-
edit.insert(token.syntax().text_range().start(), format!("r{}", hashes));
37+
edit.insert(token.syntax().text_range().start(), format!("r{hashes}"));
3838
edit.insert(token.syntax().text_range().end(), hashes);
3939
} else {
40-
edit.replace(
41-
token.syntax().text_range(),
42-
format!("r{}\"{}\"{}", hashes, value, hashes),
43-
);
40+
edit.replace(token.syntax().text_range(), format!("r{hashes}\"{value}\"{hashes}"));
4441
}
4542
},
4643
)
@@ -83,7 +80,7 @@ pub(crate) fn make_usual_string(acc: &mut Assists, ctx: &AssistContext<'_>) -> O
8380
}
8481
}
8582

86-
edit.replace(token.syntax().text_range(), format!("\"{}\"", escaped));
83+
edit.replace(token.syntax().text_range(), format!("\"{escaped}\""));
8784
},
8885
)
8986
}

crates/ide-assists/src/handlers/remove_dbg.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ pub(crate) fn remove_dbg(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option<(
102102
};
103103
(
104104
macro_call.syntax().text_range(),
105-
if wrap { format!("({})", expr) } else { expr.to_string() },
105+
if wrap { format!("({expr})") } else { expr.to_string() },
106106
)
107107
}
108108
// dbg!(expr0, expr1, ...)
@@ -127,8 +127,8 @@ mod tests {
127127
fn check(ra_fixture_before: &str, ra_fixture_after: &str) {
128128
check_assist(
129129
remove_dbg,
130-
&format!("fn main() {{\n{}\n}}", ra_fixture_before),
131-
&format!("fn main() {{\n{}\n}}", ra_fixture_after),
130+
&format!("fn main() {{\n{ra_fixture_before}\n}}"),
131+
&format!("fn main() {{\n{ra_fixture_after}\n}}"),
132132
);
133133
}
134134

crates/ide-assists/src/handlers/replace_derive_with_manual_impl.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ fn add_assist(
124124
) -> Option<()> {
125125
let target = attr.syntax().text_range();
126126
let annotated_name = adt.name()?;
127-
let label = format!("Convert to manual `impl {} for {}`", replace_trait_path, annotated_name);
127+
let label = format!("Convert to manual `impl {replace_trait_path} for {annotated_name}`");
128128

129129
acc.add(
130130
AssistId("replace_derive_with_manual_impl", AssistKind::Refactor),
@@ -158,11 +158,8 @@ fn add_assist(
158158
}
159159
}
160160

161-
builder.insert_snippet(
162-
cap,
163-
insert_pos,
164-
format!("\n\n{}", render_snippet(cap, impl_def.syntax(), cursor)),
165-
)
161+
let rendered = render_snippet(cap, impl_def.syntax(), cursor);
162+
builder.insert_snippet(cap, insert_pos, format!("\n\n{rendered}"))
166163
}
167164
};
168165
},

crates/ide-assists/src/handlers/replace_or_with_or_else.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ pub(crate) fn replace_or_with_or_else(acc: &mut Assists, ctx: &AssistContext<'_>
6262

6363
acc.add(
6464
AssistId("replace_or_with_or_else", AssistKind::RefactorRewrite),
65-
format!("Replace {} with {}", name.text(), replace),
65+
format!("Replace {name} with {replace}"),
6666
call.syntax().text_range(),
6767
|builder| {
6868
builder.replace(name.syntax().text_range(), replace);
@@ -138,7 +138,7 @@ pub(crate) fn replace_or_else_with_or(acc: &mut Assists, ctx: &AssistContext<'_>
138138

139139
acc.add(
140140
AssistId("replace_or_else_with_or", AssistKind::RefactorRewrite),
141-
format!("Replace {} with {}", name.text(), replace),
141+
format!("Replace {name} with {replace}"),
142142
call.syntax().text_range(),
143143
|builder| {
144144
builder.replace(name.syntax().text_range(), replace);

crates/ide-assists/src/handlers/replace_turbofish_with_explicit_type.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ pub(crate) fn replace_turbofish_with_explicit_type(
7979
"Replace turbofish with explicit type",
8080
TextRange::new(initializer_start, turbofish_range.end()),
8181
|builder| {
82-
builder.insert(ident_range.end(), format!(": {}", returned_type));
82+
builder.insert(ident_range.end(), format!(": {returned_type}"));
8383
builder.delete(turbofish_range);
8484
},
8585
);

crates/ide-assists/src/handlers/unwrap_tuple.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,13 @@ pub(crate) fn unwrap_tuple(acc: &mut Assists, ctx: &AssistContext<'_>) -> Option
6969
for (pat, ty, expr) in
7070
itertools::izip!(tuple_pat.fields(), tys.fields(), tuple_init.fields())
7171
{
72-
zipped_decls.push_str(&format!("{}let {pat}: {ty} = {expr};\n", indents))
72+
zipped_decls.push_str(&format!("{indents}let {pat}: {ty} = {expr};\n"))
7373
}
7474
edit.replace(parent.text_range(), zipped_decls.trim());
7575
} else {
7676
let mut zipped_decls = String::new();
7777
for (pat, expr) in itertools::izip!(tuple_pat.fields(), tuple_init.fields()) {
78-
zipped_decls.push_str(&format!("{}let {pat} = {expr};\n", indents));
78+
zipped_decls.push_str(&format!("{indents}let {pat} = {expr};\n"));
7979
}
8080
edit.replace(parent.text_range(), zipped_decls.trim());
8181
}

crates/ide-assists/src/handlers/wrap_return_type_in_result.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,11 @@ pub(crate) fn wrap_return_type_in_result(acc: &mut Assists, ctx: &AssistContext<
7676

7777
match ctx.config.snippet_cap {
7878
Some(cap) => {
79-
let snippet = format!("Result<{}, ${{0:_}}>", type_ref);
79+
let snippet = format!("Result<{type_ref}, ${{0:_}}>");
8080
builder.replace_snippet(cap, type_ref.syntax().text_range(), snippet)
8181
}
8282
None => builder
83-
.replace(type_ref.syntax().text_range(), format!("Result<{}, _>", type_ref)),
83+
.replace(type_ref.syntax().text_range(), format!("Result<{type_ref}, _>")),
8484
}
8585
},
8686
)

0 commit comments

Comments
 (0)