Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/base-db/src/fixture.rs6
-rw-r--r--crates/base-db/src/input.rs4
-rw-r--r--crates/base-db/src/lib.rs2
-rw-r--r--crates/cfg/src/cfg_expr.rs2
-rw-r--r--crates/cfg/src/lib.rs6
-rw-r--r--crates/flycheck/src/lib.rs6
-rw-r--r--crates/hir-def/src/attr.rs2
-rw-r--r--crates/hir-def/src/body/pretty.rs4
-rw-r--r--crates/hir-def/src/find_path.rs4
-rw-r--r--crates/hir-def/src/import_map.rs8
-rw-r--r--crates/hir-def/src/item_tree.rs4
-rw-r--r--crates/hir-def/src/macro_expansion_tests.rs2
-rw-r--r--crates/hir-def/src/nameres.rs2
-rw-r--r--crates/hir-def/src/nameres/collector.rs2
-rw-r--r--crates/hir-def/src/nameres/mod_resolution.rs12
-rw-r--r--crates/hir-def/src/nameres/path_resolution.rs4
-rw-r--r--crates/hir-def/src/nameres/tests/incremental.rs8
-rw-r--r--crates/hir-def/src/pretty.rs8
-rw-r--r--crates/hir-expand/src/db.rs2
-rw-r--r--crates/hir-expand/src/eager.rs2
-rw-r--r--crates/hir-expand/src/fixup.rs2
-rw-r--r--crates/hir-expand/src/quote.rs2
-rw-r--r--crates/hir-ty/src/builder.rs2
-rw-r--r--crates/hir-ty/src/consteval.rs4
-rw-r--r--crates/hir-ty/src/consteval/tests.rs4
-rw-r--r--crates/hir-ty/src/diagnostics/match_check.rs2
-rw-r--r--crates/hir-ty/src/diagnostics/match_check/deconstruct_pat.rs2
-rw-r--r--crates/hir-ty/src/display.rs32
-rw-r--r--crates/hir-ty/src/interner.rs2
-rw-r--r--crates/hir-ty/src/lib.rs2
-rw-r--r--crates/hir-ty/src/tests.rs6
-rw-r--r--crates/hir-ty/src/tests/incremental.rs4
-rw-r--r--crates/hir-ty/src/tests/macros.rs2
-rw-r--r--crates/hir-ty/src/tls.rs10
-rw-r--r--crates/hir-ty/src/traits.rs2
-rw-r--r--crates/hir/src/attrs.rs2
-rw-r--r--crates/hir/src/display.rs16
-rw-r--r--crates/hir/src/lib.rs2
-rw-r--r--crates/hir/src/semantics.rs2
-rw-r--r--crates/ide-assists/src/handlers/generate_delegate_methods.rs2
-rw-r--r--crates/ide-assists/src/handlers/generate_enum_projection_method.rs2
-rw-r--r--crates/ide-assists/src/handlers/generate_getter.rs2
-rw-r--r--crates/ide-assists/src/tests.rs2
-rw-r--r--crates/ide-assists/src/tests/sourcegen.rs6
-rw-r--r--crates/ide-completion/src/completions.rs2
-rw-r--r--crates/ide-completion/src/completions/attribute/cfg.rs4
-rw-r--r--crates/ide-completion/src/completions/attribute/lint.rs2
-rw-r--r--crates/ide-completion/src/completions/env_vars.rs6
-rw-r--r--crates/ide-completion/src/completions/fn_param.rs2
-rw-r--r--crates/ide-completion/src/completions/item_list/trait_impl.rs18
-rw-r--r--crates/ide-completion/src/completions/postfix.rs46
-rw-r--r--crates/ide-completion/src/completions/postfix/format_like.rs4
-rw-r--r--crates/ide-completion/src/completions/snippet.rs2
-rw-r--r--crates/ide-completion/src/context/tests.rs2
-rw-r--r--crates/ide-completion/src/item.rs4
-rw-r--r--crates/ide-completion/src/render.rs11
-rw-r--r--crates/ide-completion/src/render/function.rs12
-rw-r--r--crates/ide-completion/src/render/macro_.rs2
-rw-r--r--crates/ide-completion/src/render/variant.rs10
-rw-r--r--crates/ide-completion/src/snippet.rs2
-rw-r--r--crates/ide-completion/src/tests.rs4
-rw-r--r--crates/ide-completion/src/tests/expression.rs2
-rw-r--r--crates/ide-completion/src/tests/item.rs2
-rw-r--r--crates/ide-completion/src/tests/item_list.rs2
-rw-r--r--crates/ide-completion/src/tests/pattern.rs2
-rw-r--r--crates/ide-completion/src/tests/predicate.rs2
-rw-r--r--crates/ide-completion/src/tests/type_pos.rs2
-rw-r--r--crates/ide-db/src/assists.rs2
-rw-r--r--crates/ide-db/src/imports/import_assets.rs2
-rw-r--r--crates/ide-db/src/imports/insert_use/tests.rs2
-rw-r--r--crates/ide-db/src/rename.rs12
-rw-r--r--crates/ide-db/src/symbol_index.rs2
-rw-r--r--crates/ide-db/src/syntax_helpers/format_string_exprs.rs2
-rw-r--r--crates/ide-db/src/tests/sourcegen_lints.rs6
-rw-r--r--crates/ide-diagnostics/src/handlers/mismatched_arg_count.rs2
-rw-r--r--crates/ide-diagnostics/src/handlers/no_such_field.rs6
-rw-r--r--crates/ide-diagnostics/src/handlers/type_mismatch.rs4
-rw-r--r--crates/ide-diagnostics/src/handlers/unlinked_file.rs22
-rw-r--r--crates/ide-diagnostics/src/handlers/unresolved_macro_call.rs2
-rw-r--r--crates/ide-diagnostics/src/handlers/unresolved_module.rs2
-rw-r--r--crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs2
-rw-r--r--crates/ide-diagnostics/src/lib.rs2
-rw-r--r--crates/ide-diagnostics/src/tests.rs2
-rw-r--r--crates/ide-diagnostics/src/tests/sourcegen.rs2
-rw-r--r--crates/ide-ssr/src/parsing.rs2
-rw-r--r--crates/ide-ssr/src/tests.rs4
-rw-r--r--crates/ide/src/doc_links.rs4
-rw-r--r--crates/ide/src/doc_links/intra_doc_links.rs4
-rw-r--r--crates/ide/src/doc_links/tests.rs2
-rw-r--r--crates/ide/src/goto_definition.rs2
-rw-r--r--crates/ide/src/hover.rs2
-rw-r--r--crates/ide/src/hover/render.rs16
-rw-r--r--crates/ide/src/hover/tests.rs6
-rw-r--r--crates/ide/src/inlay_hints.rs2
-rw-r--r--crates/ide/src/inlay_hints/bind_pat.rs4
-rw-r--r--crates/ide/src/markup.rs2
-rw-r--r--crates/ide/src/moniker.rs2
-rw-r--r--crates/ide/src/navigation_target.rs4
-rw-r--r--crates/ide/src/rename.rs8
-rw-r--r--crates/ide/src/runnables.rs12
-rw-r--r--crates/ide/src/static_index.rs8
-rw-r--r--crates/ide/src/status.rs4
-rw-r--r--crates/ide/src/syntax_highlighting/html.rs2
-rw-r--r--crates/ide/src/syntax_tree.rs2
-rw-r--r--crates/ide/src/typing.rs2
-rw-r--r--crates/ide/src/typing/on_enter.rs11
-rw-r--r--crates/limit/src/lib.rs2
-rw-r--r--crates/mbe/src/benchmark.rs4
-rw-r--r--crates/mbe/src/syntax_bridge.rs2
-rw-r--r--crates/mbe/src/syntax_bridge/tests.rs4
-rw-r--r--crates/mbe/src/to_parser_input.rs2
-rw-r--r--crates/parser/src/parser.rs2
-rw-r--r--crates/parser/src/tests.rs26
-rw-r--r--crates/parser/src/tests/sourcegen_inline_tests.rs6
-rw-r--r--crates/proc-macro-api/src/lib.rs2
-rw-r--r--crates/proc-macro-api/src/msg/flat.rs6
-rw-r--r--crates/proc-macro-api/src/version.rs2
-rw-r--r--crates/proc-macro-srv/src/abis/abi_1_58/proc_macro/mod.rs8
-rw-r--r--crates/proc-macro-srv/src/abis/abi_1_58/ra_server.rs10
-rw-r--r--crates/proc-macro-srv/src/abis/abi_1_63/ra_server.rs10
-rw-r--r--crates/proc-macro-srv/src/lib.rs18
-rw-r--r--crates/proc-macro-test/build.rs4
-rw-r--r--crates/profile/src/hprof.rs10
-rw-r--r--crates/profile/src/memory_usage.rs2
-rw-r--r--crates/profile/src/stop_watch.rs10
-rw-r--r--crates/project-model/src/build_scripts.rs4
-rw-r--r--crates/project-model/src/cfg_flag.rs2
-rw-r--r--crates/project-model/src/lib.rs2
-rw-r--r--crates/project-model/src/project_json.rs2
-rw-r--r--crates/project-model/src/sysroot.rs2
-rw-r--r--crates/project-model/src/tests.rs2
-rw-r--r--crates/rust-analyzer/src/bin/logger.rs10
-rw-r--r--crates/rust-analyzer/src/bin/main.rs4
-rw-r--r--crates/rust-analyzer/src/cli.rs4
-rw-r--r--crates/rust-analyzer/src/cli/analysis_stats.rs18
-rw-r--r--crates/rust-analyzer/src/cli/diagnostics.rs4
-rw-r--r--crates/rust-analyzer/src/cli/flags.rs2
-rw-r--r--crates/rust-analyzer/src/cli/highlight.rs2
-rw-r--r--crates/rust-analyzer/src/cli/lsif.rs2
-rw-r--r--crates/rust-analyzer/src/cli/progress_report.rs4
-rw-r--r--crates/rust-analyzer/src/cli/scip.rs8
-rw-r--r--crates/rust-analyzer/src/cli/ssr.rs2
-rw-r--r--crates/rust-analyzer/src/cli/symbols.rs2
-rw-r--r--crates/rust-analyzer/src/config.rs12
-rw-r--r--crates/rust-analyzer/src/diagnostics/to_proto.rs6
-rw-r--r--crates/rust-analyzer/src/dispatch.rs2
-rw-r--r--crates/rust-analyzer/src/global_state.rs2
-rw-r--r--crates/rust-analyzer/src/handlers.rs16
-rw-r--r--crates/rust-analyzer/src/integrated_benchmarks.rs4
-rw-r--r--crates/rust-analyzer/src/lib.rs2
-rw-r--r--crates/rust-analyzer/src/lsp_utils.rs2
-rw-r--r--crates/rust-analyzer/src/main_loop.rs8
-rw-r--r--crates/rust-analyzer/src/to_proto.rs8
-rw-r--r--crates/rust-analyzer/tests/slow-tests/main.rs12
-rw-r--r--crates/rust-analyzer/tests/slow-tests/sourcegen.rs6
-rw-r--r--crates/rust-analyzer/tests/slow-tests/support.rs8
-rw-r--r--crates/rust-analyzer/tests/slow-tests/testdir.rs4
-rw-r--r--crates/rust-analyzer/tests/slow-tests/tidy.rs10
-rw-r--r--crates/sourcegen/src/lib.rs4
-rw-r--r--crates/stdx/src/panic_context.rs2
-rw-r--r--crates/syntax/src/algo.rs4
-rw-r--r--crates/syntax/src/ast/edit.rs4
-rw-r--r--crates/syntax/src/ast/edit_in_place.rs14
-rw-r--r--crates/syntax/src/ast/token_ext.rs6
-rw-r--r--crates/syntax/src/fuzz.rs6
-rw-r--r--crates/syntax/src/hacks.rs2
-rw-r--r--crates/syntax/src/ted.rs6
-rw-r--r--crates/syntax/src/tests.rs4
-rw-r--r--crates/syntax/src/tests/sourcegen_ast.rs8
-rw-r--r--crates/test-utils/src/assert_linear.rs2
-rw-r--r--crates/test-utils/src/fixture.rs17
-rw-r--r--crates/test-utils/src/lib.rs13
-rw-r--r--crates/tt/src/lib.rs16
-rw-r--r--crates/vfs/src/vfs_path.rs2
-rw-r--r--lib/lsp-server/examples/goto_def.rs12
-rw-r--r--lib/lsp-server/src/lib.rs8
-rw-r--r--xtask/src/dist.rs14
-rw-r--r--xtask/src/metrics.rs2
-rw-r--r--xtask/src/release.rs2
-rw-r--r--xtask/src/release/changelog.rs4
180 files changed, 487 insertions, 501 deletions
diff --git a/crates/base-db/src/fixture.rs b/crates/base-db/src/fixture.rs
index 83286cf6b7..6f83ea40e7 100644
--- a/crates/base-db/src/fixture.rs
+++ b/crates/base-db/src/fixture.rs
@@ -407,9 +407,9 @@ fn parse_crate(crate_str: String) -> (String, CrateOrigin, Option<String>) {
Some((version, url)) => {
(version, CrateOrigin::CratesIo { repo: Some(url.to_owned()), name: None })
}
- _ => panic!("Bad crates.io parameter: {}", data),
+ _ => panic!("Bad crates.io parameter: {data}"),
},
- _ => panic!("Bad string for crate origin: {}", b),
+ _ => panic!("Bad string for crate origin: {b}"),
};
(a.to_owned(), origin, Some(version.to_string()))
} else {
@@ -439,7 +439,7 @@ impl From<Fixture> for FileMeta {
introduce_new_source_root: f.introduce_new_source_root.map(|kind| match &*kind {
"local" => SourceRootKind::Local,
"library" => SourceRootKind::Library,
- invalid => panic!("invalid source root kind '{}'", invalid),
+ invalid => panic!("invalid source root kind '{invalid}'"),
}),
target_data_layout: f.target_data_layout,
}
diff --git a/crates/base-db/src/input.rs b/crates/base-db/src/input.rs
index 20bf8497cb..5fa4a80249 100644
--- a/crates/base-db/src/input.rs
+++ b/crates/base-db/src/input.rs
@@ -618,8 +618,8 @@ impl CyclicDependenciesError {
impl fmt::Display for CyclicDependenciesError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
let render = |(id, name): &(CrateId, Option<CrateDisplayName>)| match name {
- Some(it) => format!("{}({:?})", it, id),
- None => format!("{:?}", id),
+ Some(it) => format!("{it}({id:?})"),
+ None => format!("{id:?}"),
};
let path = self.path.iter().rev().map(render).collect::<Vec<String>>().join(" -> ");
write!(
diff --git a/crates/base-db/src/lib.rs b/crates/base-db/src/lib.rs
index f725064cda..55a51d3bbb 100644
--- a/crates/base-db/src/lib.rs
+++ b/crates/base-db/src/lib.rs
@@ -75,7 +75,7 @@ pub trait SourceDatabase: FileLoader + std::fmt::Debug {
}
fn parse_query(db: &dyn SourceDatabase, file_id: FileId) -> Parse<ast::SourceFile> {
- let _p = profile::span("parse_query").detail(|| format!("{:?}", file_id));
+ let _p = profile::span("parse_query").detail(|| format!("{file_id:?}"));
let text = db.file_text(file_id);
SourceFile::parse(&text)
}
diff --git a/crates/cfg/src/cfg_expr.rs b/crates/cfg/src/cfg_expr.rs
index fd9e31ed3b..5f4eefa836 100644
--- a/crates/cfg/src/cfg_expr.rs
+++ b/crates/cfg/src/cfg_expr.rs
@@ -44,7 +44,7 @@ impl fmt::Display for CfgAtom {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
CfgAtom::Flag(name) => name.fmt(f),
- CfgAtom::KeyValue { key, value } => write!(f, "{} = {:?}", key, value),
+ CfgAtom::KeyValue { key, value } => write!(f, "{key} = {value:?}"),
}
}
}
diff --git a/crates/cfg/src/lib.rs b/crates/cfg/src/lib.rs
index d78ef4fb11..30709c968d 100644
--- a/crates/cfg/src/lib.rs
+++ b/crates/cfg/src/lib.rs
@@ -37,7 +37,7 @@ impl fmt::Debug for CfgOptions {
.iter()
.map(|atom| match atom {
CfgAtom::Flag(it) => it.to_string(),
- CfgAtom::KeyValue { key, value } => format!("{}={}", key, value),
+ CfgAtom::KeyValue { key, value } => format!("{key}={value}"),
})
.collect::<Vec<_>>();
items.sort();
@@ -175,7 +175,7 @@ impl fmt::Display for InactiveReason {
atom.fmt(f)?;
}
let is_are = if self.enabled.len() == 1 { "is" } else { "are" };
- write!(f, " {} enabled", is_are)?;
+ write!(f, " {is_are} enabled")?;
if !self.disabled.is_empty() {
f.write_str(" and ")?;
@@ -194,7 +194,7 @@ impl fmt::Display for InactiveReason {
atom.fmt(f)?;
}
let is_are = if self.disabled.len() == 1 { "is" } else { "are" };
- write!(f, " {} disabled", is_are)?;
+ write!(f, " {is_are} disabled")?;
}
Ok(())
diff --git a/crates/flycheck/src/lib.rs b/crates/flycheck/src/lib.rs
index f13088cd90..b3e7443d1c 100644
--- a/crates/flycheck/src/lib.rs
+++ b/crates/flycheck/src/lib.rs
@@ -60,9 +60,9 @@ pub enum FlycheckConfig {
impl fmt::Display for FlycheckConfig {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
- FlycheckConfig::CargoCommand { command, .. } => write!(f, "cargo {}", command),
+ FlycheckConfig::CargoCommand { command, .. } => write!(f, "cargo {command}"),
FlycheckConfig::CustomCommand { command, args, .. } => {
- write!(f, "{} {}", command, args.join(" "))
+ write!(f, "{command} {}", args.join(" "))
}
}
}
@@ -474,7 +474,7 @@ impl CargoActor {
);
match output {
Ok(_) => Ok((read_at_least_one_message, error)),
- Err(e) => Err(io::Error::new(e.kind(), format!("{:?}: {}", e, error))),
+ Err(e) => Err(io::Error::new(e.kind(), format!("{e:?}: {error}"))),
}
}
}
diff --git a/crates/hir-def/src/attr.rs b/crates/hir-def/src/attr.rs
index 2b39c6f8da..ab5d180e1b 100644
--- a/crates/hir-def/src/attr.rs
+++ b/crates/hir-def/src/attr.rs
@@ -712,7 +712,7 @@ impl AttrSourceMap {
self.source
.get(ast_idx)
.map(|it| InFile::new(file_id, it))
- .unwrap_or_else(|| panic!("cannot find attr at index {:?}", id))
+ .unwrap_or_else(|| panic!("cannot find attr at index {id:?}"))
}
}
diff --git a/crates/hir-def/src/body/pretty.rs b/crates/hir-def/src/body/pretty.rs
index 162d173d52..04279751f0 100644
--- a/crates/hir-def/src/body/pretty.rs
+++ b/crates/hir-def/src/body/pretty.rs
@@ -32,7 +32,7 @@ pub(super) fn print_body_hir(db: &dyn DefDatabase, body: &Body, owner: DefWithBo
Some(name) => name.to_string(),
None => "_".to_string(),
};
- format!("const {} = ", name)
+ format!("const {name} = ")
}
DefWithBodyId::VariantId(it) => {
needs_semi = false;
@@ -42,7 +42,7 @@ pub(super) fn print_body_hir(db: &dyn DefDatabase, body: &Body, owner: DefWithBo
Some(name) => name.to_string(),
None => "_".to_string(),
};
- format!("{}", name)
+ format!("{name}")
}
};
diff --git a/crates/hir-def/src/find_path.rs b/crates/hir-def/src/find_path.rs
index c70e6fdccd..e90dc47cf3 100644
--- a/crates/hir-def/src/find_path.rs
+++ b/crates/hir-def/src/find_path.rs
@@ -512,7 +512,7 @@ mod tests {
fn check_found_path_(ra_fixture: &str, path: &str, prefix_kind: Option<PrefixKind>) {
let (db, pos) = TestDB::with_position(ra_fixture);
let module = db.module_at_position(pos);
- let parsed_path_file = syntax::SourceFile::parse(&format!("use {};", path));
+ let parsed_path_file = syntax::SourceFile::parse(&format!("use {path};"));
let ast_path =
parsed_path_file.syntax_node().descendants().find_map(syntax::ast::Path::cast).unwrap();
let mod_path = ModPath::from_src(&db, ast_path, &Hygiene::new_unhygienic()).unwrap();
@@ -531,7 +531,7 @@ mod tests {
let found_path =
find_path_inner(&db, ItemInNs::Types(resolved), module, prefix_kind, false);
- assert_eq!(found_path, Some(mod_path), "{:?}", prefix_kind);
+ assert_eq!(found_path, Some(mod_path), "{prefix_kind:?}");
}
fn check_found_path(
diff --git a/crates/hir-def/src/import_map.rs b/crates/hir-def/src/import_map.rs
index 05e0ceb05a..193c766200 100644
--- a/crates/hir-def/src/import_map.rs
+++ b/crates/hir-def/src/import_map.rs
@@ -243,7 +243,7 @@ impl fmt::Debug for ImportMap {
ItemInNs::Values(_) => "v",
ItemInNs::Macros(_) => "m",
};
- format!("- {} ({})", info.path, ns)
+ format!("- {} ({ns})", info.path)
})
.collect();
@@ -398,7 +398,7 @@ pub fn search_dependencies<'a>(
krate: CrateId,
query: Query,
) -> FxHashSet<ItemInNs> {
- let _p = profile::span("search_dependencies").detail(|| format!("{:?}", query));
+ let _p = profile::span("search_dependencies").detail(|| format!("{query:?}"));
let graph = db.crate_graph();
let import_maps: Vec<_> =
@@ -549,7 +549,7 @@ mod tests {
None
}
})?;
- return Some(format!("{}::{}", dependency_imports.path_of(trait_)?, assoc_item_name));
+ return Some(format!("{}::{assoc_item_name}", dependency_imports.path_of(trait_)?));
}
None
}
@@ -589,7 +589,7 @@ mod tests {
let map = db.import_map(krate);
- Some(format!("{}:\n{:?}\n", name, map))
+ Some(format!("{name}:\n{map:?}\n"))
})
.sorted()
.collect::<String>();
diff --git a/crates/hir-def/src/item_tree.rs b/crates/hir-def/src/item_tree.rs
index 0aa531eff7..80297f8adf 100644
--- a/crates/hir-def/src/item_tree.rs
+++ b/crates/hir-def/src/item_tree.rs
@@ -105,7 +105,7 @@ pub struct ItemTree {
impl ItemTree {
pub(crate) fn file_item_tree_query(db: &dyn DefDatabase, file_id: HirFileId) -> Arc<ItemTree> {
- let _p = profile::span("file_item_tree_query").detail(|| format!("{:?}", file_id));
+ let _p = profile::span("file_item_tree_query").detail(|| format!("{file_id:?}"));
let syntax = match db.parse_or_expand(file_id) {
Some(node) => node,
None => return Default::default(),
@@ -132,7 +132,7 @@ impl ItemTree {
ctx.lower_macro_stmts(stmts)
},
_ => {
- panic!("cannot create item tree from {:?} {}", syntax, syntax);
+ panic!("cannot create item tree from {syntax:?} {syntax}");
},
}
};
diff --git a/crates/hir-def/src/macro_expansion_tests.rs b/crates/hir-def/src/macro_expansion_tests.rs
index 81b9c5c4bf..907cc98f7b 100644
--- a/crates/hir-def/src/macro_expansion_tests.rs
+++ b/crates/hir-def/src/macro_expansion_tests.rs
@@ -179,7 +179,7 @@ pub fn identity_when_valid(_attr: TokenStream, item: TokenStream) -> TokenStream
if tree {
let tree = format!("{:#?}", parse.syntax_node())
.split_inclusive('\n')
- .map(|line| format!("// {}", line))
+ .map(|line| format!("// {line}"))
.collect::<String>();
format_to!(expn_text, "\n{}", tree)
}
diff --git a/crates/hir-def/src/nameres.rs b/crates/hir-def/src/nameres.rs
index 09732d3710..393747d304 100644
--- a/crates/hir-def/src/nameres.rs
+++ b/crates/hir-def/src/nameres.rs
@@ -461,7 +461,7 @@ impl DefMap {
for (name, child) in
map.modules[module].children.iter().sorted_by(|a, b| Ord::cmp(&a.0, &b.0))
{
- let path = format!("{}::{}", path, name);
+ let path = format!("{path}::{name}");
buf.push('\n');
go(buf, map, &path, *child);
}
diff --git a/crates/hir-def/src/nameres/collector.rs b/crates/hir-def/src/nameres/collector.rs
index 1cd42500c0..6e1f85bc08 100644
--- a/crates/hir-def/src/nameres/collector.rs
+++ b/crates/hir-def/src/nameres/collector.rs
@@ -1017,7 +1017,7 @@ impl DefCollector<'_> {
None => true,
Some(old_vis) => {
let max_vis = old_vis.max(vis, &self.def_map).unwrap_or_else(|| {
- panic!("`Tr as _` imports with unrelated visibilities {:?} and {:?} (trait {:?})", old_vis, vis, tr);
+ panic!("`Tr as _` imports with unrelated visibilities {old_vis:?} and {vis:?} (trait {tr:?})");
});
if max_vis == old_vis {
diff --git a/crates/hir-def/src/nameres/mod_resolution.rs b/crates/hir-def/src/nameres/mod_resolution.rs
index ca7bcc814e..11d20d3db3 100644
--- a/crates/hir-def/src/nameres/mod_resolution.rs
+++ b/crates/hir-def/src/nameres/mod_resolution.rs
@@ -74,12 +74,12 @@ impl ModDir {
candidate_files.push(self.dir_path.join_attr(attr_path, self.root_non_dir_owner))
}
None if file_id.is_include_macro(db.upcast()) => {
- candidate_files.push(format!("{}.rs", name));
- candidate_files.push(format!("{}/mod.rs", name));
+ candidate_files.push(format!("{name}.rs"));
+ candidate_files.push(format!("{name}/mod.rs"));
}
None => {
- candidate_files.push(format!("{}{}.rs", self.dir_path.0, name));
- candidate_files.push(format!("{}{}/mod.rs", self.dir_path.0, name));
+ candidate_files.push(format!("{}{name}.rs", self.dir_path.0));
+ candidate_files.push(format!("{}{name}/mod.rs", self.dir_path.0));
}
};
@@ -91,7 +91,7 @@ impl ModDir {
let (dir_path, root_non_dir_owner) = if is_mod_rs || attr_path.is_some() {
(DirPath::empty(), false)
} else {
- (DirPath::new(format!("{}/", name)), true)
+ (DirPath::new(format!("{name}/")), true)
};
if let Some(mod_dir) = self.child(dir_path, root_non_dir_owner) {
return Ok((file_id, is_mod_rs, mod_dir));
@@ -156,7 +156,7 @@ impl DirPath {
} else {
attr
};
- let res = format!("{}{}", base, attr);
+ let res = format!("{base}{attr}");
res
}
}
diff --git a/crates/hir-def/src/nameres/path_resolution.rs b/crates/hir-def/src/nameres/path_resolution.rs
index 20d39ec6cb..c7c50fa94a 100644
--- a/crates/hir-def/src/nameres/path_resolution.rs
+++ b/crates/hir-def/src/nameres/path_resolution.rs
@@ -170,8 +170,8 @@ impl DefMap {
) -> ResolvePathResult {
let graph = db.crate_graph();
let _cx = stdx::panic_context::enter(format!(
- "DefMap {:?} crate_name={:?} block={:?} path={}",
- self.krate, graph[self.krate].display_name, self.block, path
+ "DefMap {:?} crate_name={:?} block={:?} path={path}",
+ self.krate, graph[self.krate].display_name, self.block
));
let mut segments = path.segments().iter().enumerate();
diff --git a/crates/hir-def/src/nameres/tests/incremental.rs b/crates/hir-def/src/nameres/tests/incremental.rs
index 2e8cb3621f..f5190b76db 100644
--- a/crates/hir-def/src/nameres/tests/incremental.rs
+++ b/crates/hir-def/src/nameres/tests/incremental.rs
@@ -13,7 +13,7 @@ fn check_def_map_is_not_recomputed(ra_fixture_initial: &str, ra_fixture_change:
let events = db.log_executed(|| {
db.crate_def_map(krate);
});
- assert!(format!("{:?}", events).contains("crate_def_map"), "{:#?}", events)
+ assert!(format!("{events:?}").contains("crate_def_map"), "{events:#?}")
}
db.set_file_text(pos.file_id, Arc::new(ra_fixture_change.to_string()));
@@ -21,7 +21,7 @@ fn check_def_map_is_not_recomputed(ra_fixture_initial: &str, ra_fixture_change:
let events = db.log_executed(|| {
db.crate_def_map(krate);
});
- assert!(!format!("{:?}", events).contains("crate_def_map"), "{:#?}", events)
+ assert!(!format!("{events:?}").contains("crate_def_map"), "{events:#?}")
}
}
@@ -94,7 +94,7 @@ fn typing_inside_a_macro_should_not_invalidate_def_map() {
let (_, module_data) = crate_def_map.modules.iter().last().unwrap();
assert_eq!(module_data.scope.resolutions().count(), 1);
});
- assert!(format!("{:?}", events).contains("crate_def_map"), "{:#?}", events)
+ assert!(format!("{events:?}").contains("crate_def_map"), "{events:#?}")
}
db.set_file_text(pos.file_id, Arc::new("m!(Y);".to_string()));
@@ -104,7 +104,7 @@ fn typing_inside_a_macro_should_not_invalidate_def_map() {
let (_, module_data) = crate_def_map.modules.iter().last().unwrap();
assert_eq!(module_data.scope.resolutions().count(), 1);
});
- assert!(!format!("{:?}", events).contains("crate_def_map"), "{:#?}", events)
+ assert!(!format!("{events:?}").contains("crate_def_map"), "{events:#?}")
}
}
diff --git a/crates/hir-def/src/pretty.rs b/crates/hir-def/src/pretty.rs
index 933970d10e..befd0c5ffa 100644
--- a/crates/hir-def/src/pretty.rs
+++ b/crates/hir-def/src/pretty.rs
@@ -92,7 +92,7 @@ pub(crate) fn print_generic_args(generics: &GenericArgs, buf: &mut dyn Write) ->
pub(crate) fn print_generic_arg(arg: &GenericArg, buf: &mut dyn Write) -> fmt::Result {
match arg {
GenericArg::Type(ty) => print_type_ref(ty, buf),
- GenericArg::Const(c) => write!(buf, "{}", c),
+ GenericArg::Const(c) => write!(buf, "{c}"),
GenericArg::Lifetime(lt) => write!(buf, "{}", lt.name),
}
}
@@ -118,7 +118,7 @@ pub(crate) fn print_type_ref(type_ref: &TypeRef, buf: &mut dyn Write) -> fmt::Re
Mutability::Shared => "*const",
Mutability::Mut => "*mut",
};
- write!(buf, "{} ", mtbl)?;
+ write!(buf, "{mtbl} ")?;
print_type_ref(pointee, buf)?;
}
TypeRef::Reference(pointee, lt, mtbl) => {
@@ -130,13 +130,13 @@ pub(crate) fn print_type_ref(type_ref: &TypeRef, buf: &mut dyn Write) -> fmt::Re
if let Some(lt) = lt {
write!(buf, "{} ", lt.name)?;
}
- write!(buf, "{}", mtbl)?;
+ write!(buf, "{mtbl}")?;
print_type_ref(pointee, buf)?;
}
TypeRef::Array(elem, len) => {
write!(buf, "[")?;
print_type_ref(elem, buf)?;
- write!(buf, "; {}]", len)?;
+ write!(buf, "; {len}]")?;
}
TypeRef::Slice(elem) => {
write!(buf, "[")?;
diff --git a/crates/hir-expand/src/db.rs b/crates/hir-expand/src/db.rs
index 0096649be1..b28e60187d 100644
--- a/crates/hir-expand/src/db.rs
+++ b/crates/hir-expand/src/db.rs
@@ -444,7 +444,7 @@ fn macro_expand(db: &dyn AstDatabase, id: MacroCallId) -> ExpandResult<Option<Ar
// be reported at the definition site (when we construct a def map).
Err(err) => {
return ExpandResult::only_err(ExpandError::Other(
- format!("invalid macro definition: {}", err).into(),
+ format!("invalid macro definition: {err}").into(),
))
}
};
diff --git a/crates/hir-expand/src/eager.rs b/crates/hir-expand/src/eager.rs
index 5fd099aea7..2f55e78b76 100644
--- a/crates/hir-expand/src/eager.rs
+++ b/crates/hir-expand/src/eager.rs
@@ -161,7 +161,7 @@ pub fn expand_eager_macro(
Ok(Ok(db.intern_macro_call(loc)))
} else {
- panic!("called `expand_eager_macro` on non-eager macro def {:?}", def);
+ panic!("called `expand_eager_macro` on non-eager macro def {def:?}");
}
}
diff --git a/crates/hir-expand/src/fixup.rs b/crates/hir-expand/src/fixup.rs
index a4abe75626..75d364d5f8 100644
--- a/crates/hir-expand/src/fixup.rs
+++ b/crates/hir-expand/src/fixup.rs
@@ -366,7 +366,7 @@ mod tests {
fixups.append,
);
- let actual = format!("{}\n", tt);
+ let actual = format!("{tt}\n");
expect.indent(false);
expect.assert_eq(&actual);
diff --git a/crates/hir-expand/src/quote.rs b/crates/hir-expand/src/quote.rs
index e839e97bf0..c0a7bc7ca8 100644
--- a/crates/hir-expand/src/quote.rs
+++ b/crates/hir-expand/src/quote.rs
@@ -233,7 +233,7 @@ mod tests {
let quoted = quote!(#a);
assert_eq!(quoted.to_string(), "hello");
- let t = format!("{:?}", quoted);
+ let t = format!("{quoted:?}");
assert_eq!(t, "SUBTREE $\n IDENT hello 4294967295");
}
diff --git a/crates/hir-ty/src/builder.rs b/crates/hir-ty/src/builder.rs
index 9ae752556d..d5ef0c22de 100644
--- a/crates/hir-ty/src/builder.rs
+++ b/crates/hir-ty/src/builder.rs
@@ -142,7 +142,7 @@ impl<D> TyBuilder<D> {
match (a.data(Interner), e) {
(chalk_ir::GenericArgData::Ty(_), ParamKind::Type)
| (chalk_ir::GenericArgData::Const(_), ParamKind::Const(_)) => (),
- _ => panic!("Mismatched kinds: {:?}, {:?}, {:?}", a, self.vec, self.param_kinds),
+ _ => panic!("Mismatched kinds: {a:?}, {:?}, {:?}", self.vec, self.param_kinds),
}
}
}
diff --git a/crates/hir-ty/src/consteval.rs b/crates/hir-ty/src/consteval.rs
index 3409685257..345cf63c4f 100644
--- a/crates/hir-ty/src/consteval.rs
+++ b/crates/hir-ty/src/consteval.rs
@@ -90,14 +90,14 @@ impl Display for ComputedExpr {
ComputedExpr::Literal(l) => match l {
Literal::Int(x, _) => {
if *x >= 10 {
- write!(f, "{} ({:#X})", x, x)
+ write!(f, "{x} ({x:#X})")
} else {
x.fmt(f)
}
}
Literal::Uint(x, _) => {
if *x >= 10 {
- write!(f, "{} ({:#X})", x, x)
+ write!(f, "{x} ({x:#X})")
} else {
x.fmt(f)
}
diff --git a/crates/hir-ty/src/consteval/tests.rs b/crates/hir-ty/src/consteval/tests.rs
index b76506f6eb..6ba03737cf 100644
--- a/crates/hir-ty/src/consteval/tests.rs
+++ b/crates/hir-ty/src/consteval/tests.rs
@@ -14,7 +14,7 @@ fn check_number(ra_fixture: &str, answer: i128) {
match r {
ComputedExpr::Literal(Literal::Int(r, _)) => assert_eq!(r, answer),
ComputedExpr::Literal(Literal::Uint(r, _)) => assert_eq!(r, answer as u128),
- x => panic!("Expected number but found {:?}", x),
+ x => panic!("Expected number but found {x:?}"),
}
}
@@ -126,7 +126,7 @@ fn enums() {
assert_eq!(name, "E::A");
assert_eq!(val, 1);
}
- x => panic!("Expected enum but found {:?}", x),
+ x => panic!("Expected enum but found {x:?}"),
}
}
diff --git a/crates/hir-ty/src/diagnostics/match_check.rs b/crates/hir-ty/src/diagnostics/match_check.rs
index e0905e01b6..8b0f051b46 100644
--- a/crates/hir-ty/src/diagnostics/match_check.rs
+++ b/crates/hir-ty/src/diagnostics/match_check.rs
@@ -386,7 +386,7 @@ impl HirDisplay for Pat {
}
subpattern.hir_fmt(f)
}
- PatKind::LiteralBool { value } => write!(f, "{}", value),
+ PatKind::LiteralBool { value } => write!(f, "{value}"),
PatKind::Or { pats } => f.write_joined(pats.iter(), " | "),
}
}
diff --git a/crates/hir-ty/src/diagnostics/match_check/deconstruct_pat.rs b/crates/hir-ty/src/diagnostics/match_check/deconstruct_pat.rs
index 47d60fc41e..d130827a77 100644
--- a/crates/hir-ty/src/diagnostics/match_check/deconstruct_pat.rs
+++ b/crates/hir-ty/src/diagnostics/match_check/deconstruct_pat.rs
@@ -372,7 +372,7 @@ impl Constructor {
hir_def::AdtId::UnionId(id) => id.into(),
}
}
- _ => panic!("bad constructor {:?} for adt {:?}", self, adt),
+ _ => panic!("bad constructor {self:?} for adt {adt:?}"),
}
}
diff --git a/crates/hir-ty/src/display.rs b/crates/hir-ty/src/display.rs
index 57a15d114f..66e813eed8 100644
--- a/crates/hir-ty/src/display.rs
+++ b/crates/hir-ty/src/display.rs
@@ -176,13 +176,13 @@ impl<'a> HirFormatter<'a> {
let mut first = true;
for e in iter {
if !first {
- write!(self, "{}", sep)?;
+ write!(self, "{sep}")?;
}
first = false;
// Abbreviate multiple omitted types with a single ellipsis.
if self.should_truncate() {
- return write!(self, "{}", TYPE_HINT_TRUNCATION);
+ return write!(self, "{TYPE_HINT_TRUNCATION}");
}
e.hir_fmt(self)?;
@@ -320,7 +320,7 @@ impl<T: HirDisplay + Internable> HirDisplay for Interned<T> {
impl HirDisplay for ProjectionTy {
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError> {
if f.should_truncate() {
- return write!(f, "{}", TYPE_HINT_TRUNCATION);
+ return write!(f, "{TYPE_HINT_TRUNCATION}");
}
let trait_ref = self.trait_ref(f.db);
@@ -342,7 +342,7 @@ impl HirDisplay for ProjectionTy {
impl HirDisplay for OpaqueTy {
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError> {
if f.should_truncate() {
- return write!(f, "{}", TYPE_HINT_TRUNCATION);
+ return write!(f, "{TYPE_HINT_TRUNCATION}");
}
self.substitution.at(Interner, 0).hir_fmt(f)
@@ -385,7 +385,7 @@ impl HirDisplay for BoundVar {
impl HirDisplay for Ty {
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError> {
if f.should_truncate() {
- return write!(f, "{}", TYPE_HINT_TRUNCATION);
+ return write!(f, "{TYPE_HINT_TRUNCATION}");
}
match self.kind(Interner) {
@@ -572,7 +572,7 @@ impl HirDisplay for Ty {
hir_def::AdtId::UnionId(it) => f.db.union_data(it).name.clone(),
hir_def::AdtId::EnumId(it) => f.db.enum_data(it).name.clone(),
};
- write!(f, "{}", name)?;
+ write!(f, "{name}")?;
}
DisplayTarget::SourceCode { module_id } => {
if let Some(path) = find_path::find_path(
@@ -581,7 +581,7 @@ impl HirDisplay for Ty {
module_id,
false,
) {
- write!(f, "{}", path)?;
+ write!(f, "{path}")?;
} else {
return Err(HirDisplayError::DisplaySourceCodeError(
DisplaySourceCodeError::PathNotFound,
@@ -737,7 +737,7 @@ impl HirDisplay for Ty {
if sig.params().is_empty() {
write!(f, "||")?;
} else if f.should_truncate() {
- write!(f, "|{}|", TYPE_HINT_TRUNCATION)?;
+ write!(f, "|{TYPE_HINT_TRUNCATION}|")?;
} else {
write!(f, "|")?;
f.write_joined(sig.params(), ", ")?;
@@ -928,7 +928,7 @@ pub fn write_bounds_like_dyn_trait_with_prefix(
default_sized: SizedByDefault,
f: &mut HirFormatter<'_>,
) -> Result<(), HirDisplayError> {
- write!(f, "{}", prefix)?;
+ write!(f, "{prefix}")?;
if !predicates.is_empty()
|| predicates.is_empty() && matches!(default_sized, SizedByDefault::Sized { .. })
{
@@ -1056,7 +1056,7 @@ fn fmt_trait_ref(
use_as: bool,
) -> Result<(), HirDisplayError> {
if f.should_truncate() {
- return write!(f, "{}", TYPE_HINT_TRUNCATION);
+ return write!(f, "{TYPE_HINT_TRUNCATION}");
}
tr.self_type_parameter(Interner).hir_fmt(f)?;
@@ -1083,7 +1083,7 @@ impl HirDisplay for TraitRef {
impl HirDisplay for WhereClause {
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError> {
if f.should_truncate() {
- return write!(f, "{}", TYPE_HINT_TRUNCATION);
+ return write!(f, "{TYPE_HINT_TRUNCATION}");
}
match self {
@@ -1197,7 +1197,7 @@ impl HirDisplay for TypeRef {
hir_def::type_ref::Mutability::Shared => "*const ",
hir_def::type_ref::Mutability::Mut => "*mut ",
};
- write!(f, "{}", mutability)?;
+ write!(f, "{mutability}")?;
inner.hir_fmt(f)?;
}
TypeRef::Reference(inner, lifetime, mutability) => {
@@ -1209,13 +1209,13 @@ impl HirDisplay for TypeRef {
if let Some(lifetime) = lifetime {
write!(f, "{} ", lifetime.name)?;
}
- write!(f, "{}", mutability)?;
+ write!(f, "{mutability}")?;
inner.hir_fmt(f)?;
}
TypeRef::Array(inner, len) => {
write!(f, "[")?;
inner.hir_fmt(f)?;
- write!(f, "; {}]", len)?;
+ write!(f, "; {len}]")?;
}
TypeRef::Slice(inner) => {
write!(f, "[")?;
@@ -1232,7 +1232,7 @@ impl HirDisplay for TypeRef {
for index in 0..function_parameters.len() {
let (param_name, param_type) = &function_parameters[index];
if let Some(name) = param_name {
- write!(f, "{}: ", name)?;
+ write!(f, "{name}: ")?;
}
param_type.hir_fmt(f)?;
@@ -1408,7 +1408,7 @@ impl HirDisplay for hir_def::path::GenericArg {
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError> {
match self {
hir_def::path::GenericArg::Type(ty) => ty.hir_fmt(f),
- hir_def::path::GenericArg::Const(c) => write!(f, "{}", c),
+ hir_def::path::GenericArg::Const(c) => write!(f, "{c}"),
hir_def::path::GenericArg::Lifetime(lifetime) => write!(f, "{}", lifetime.name),
}
}
diff --git a/crates/hir-ty/src/interner.rs b/crates/hir-ty/src/interner.rs
index ca76e08fdd..01b5719be4 100644
--- a/crates/hir-ty/src/interner.rs
+++ b/crates/hir-ty/src/interner.rs
@@ -143,7 +143,7 @@ impl chalk_ir::interner::Interner for Interner {
fn debug_goal(goal: &Goal<Interner>, fmt: &mut fmt::Formatter<'_>) -> Option<fmt::Result> {
let goal_data = goal.data(Interner);
- Some(write!(fmt, "{:?}", goal_data))
+ Some(write!(fmt, "{goal_data:?}"))
}
fn debug_goals(
diff --git a/crates/hir-ty/src/lib.rs b/crates/hir-ty/src/lib.rs
index 48581d4e0a..d3b445c017 100644
--- a/crates/hir-ty/src/lib.rs
+++ b/crates/hir-ty/src/lib.rs
@@ -513,7 +513,7 @@ where
let mut error_replacer = ErrorReplacer { vars: 0 };
let value = match t.clone().try_fold_with(&mut error_replacer, DebruijnIndex::INNERMOST) {
Ok(t) => t,
- Err(_) => panic!("Encountered unbound or inference vars in {:?}", t),
+ Err(_) => panic!("Encountered unbound or inference vars in {t:?}"),
};
let kinds = (0..error_replacer.vars).map(|_| {
chalk_ir::CanonicalVarKind::new(
diff --git a/crates/hir-ty/src/tests.rs b/crates/hir-ty/src/tests.rs
index ebbc541014..7bcf89ff59 100644
--- a/crates/hir-ty/src/tests.rs
+++ b/crates/hir-ty/src/tests.rs
@@ -105,7 +105,7 @@ fn check_impl(ra_fixture: &str, allow_none: bool, only_types: bool, display_sour
.collect(),
);
} else {
- panic!("unexpected annotation: {}", expected);
+ panic!("unexpected annotation: {expected}");
}
had_annotations = true;
}
@@ -181,11 +181,11 @@ fn check_impl(ra_fixture: &str, allow_none: bool, only_types: bool, display_sour
expected,
adjustments
.iter()
- .map(|Adjustment { kind, .. }| format!("{:?}", kind))
+ .map(|Adjustment { kind, .. }| format!("{kind:?}"))
.collect::<Vec<_>>()
);
} else {
- panic!("expected {:?} adjustments, found none", expected);
+ panic!("expected {expected:?} adjustments, found none");
}
}
}
diff --git a/crates/hir-ty/src/tests/incremental.rs b/crates/hir-ty/src/tests/incremental.rs
index 3e08e83e89..073d6d9be2 100644
--- a/crates/hir-ty/src/tests/incremental.rs
+++ b/crates/hir-ty/src/tests/incremental.rs
@@ -24,7 +24,7 @@ fn typing_whitespace_inside_a_function_should_not_invalidate_types() {
db.infer(def);
});
});
- assert!(format!("{:?}", events).contains("infer"))
+ assert!(format!("{events:?}").contains("infer"))
}
let new_text = "
@@ -46,6 +46,6 @@ fn typing_whitespace_inside_a_function_should_not_invalidate_types() {
db.infer(def);
});
});
- assert!(!format!("{:?}", events).contains("infer"), "{:#?}", events)
+ assert!(!format!("{events:?}").contains("infer"), "{events:#?}")
}
}
diff --git a/crates/hir-ty/src/tests/macros.rs b/crates/hir-ty/src/tests/macros.rs
index b3adafaafd..8b75ec842a 100644
--- a/crates/hir-ty/src/tests/macros.rs
+++ b/crates/hir-ty/src/tests/macros.rs
@@ -849,7 +849,7 @@ fn main() {
//^^^^^^^^^^^^^^^^^ RegisterBlock
}
"#;
- let fixture = format!("{}\n//- /foo.rs\n{}", fixture, data);
+ let fixture = format!("{fixture}\n//- /foo.rs\n{data}");
{
let _b = bench("include macro");
diff --git a/crates/hir-ty/src/tls.rs b/crates/hir-ty/src/tls.rs
index 92711a24fe..b7e6ee6740 100644
--- a/crates/hir-ty/src/tls.rs
+++ b/crates/hir-ty/src/tls.rs
@@ -67,12 +67,12 @@ impl DebugContext<'_> {
let trait_ref = projection_ty.trait_ref(self.0);
let trait_params = trait_ref.substitution.as_slice(Interner);
let self_ty = trait_ref.self_type_parameter(Interner);
- write!(fmt, "<{:?} as {}", self_ty, trait_name)?;
+ write!(fmt, "<{self_ty:?} as {trait_name}")?;
if trait_params.len() > 1 {
write!(
fmt,
"<{}>",
- trait_params[1..].iter().format_with(", ", |x, f| f(&format_args!("{:?}", x))),
+ trait_params[1..].iter().format_with(", ", |x, f| f(&format_args!("{x:?}"))),
)?;
}
write!(fmt, ">::{}", type_alias_data.name)?;
@@ -83,7 +83,7 @@ impl DebugContext<'_> {
write!(
fmt,
"<{}>",
- proj_params.iter().format_with(", ", |x, f| f(&format_args!("{:?}", x))),
+ proj_params.iter().format_with(", ", |x, f| f(&format_args!("{x:?}"))),
)?;
}
@@ -105,9 +105,9 @@ impl DebugContext<'_> {
}
};
match def {
- CallableDefId::FunctionId(_) => write!(fmt, "{{fn {}}}", name),
+ CallableDefId::FunctionId(_) => write!(fmt, "{{fn {name}}}"),
CallableDefId::StructId(_) | CallableDefId::EnumVariantId(_) => {
- write!(fmt, "{{ctor {}}}", name)
+ write!(fmt, "{{ctor {name}}}")
}
}
}
diff --git a/crates/hir-ty/src/traits.rs b/crates/hir-ty/src/traits.rs
index da454eeb42..615fd9d94d 100644
--- a/crates/hir-ty/src/traits.rs
+++ b/crates/hir-ty/src/traits.rs
@@ -130,7 +130,7 @@ fn solve(
let mut solve = || {
let _ctx = if is_chalk_debug() || is_chalk_print() {
- Some(panic_context::enter(format!("solving {:?}", goal)))
+ Some(panic_context::enter(format!("solving {goal:?}")))
} else {
None
};
diff --git a/crates/hir/src/attrs.rs b/crates/hir/src/attrs.rs
index 0bd3793400..54425d69b6 100644
--- a/crates/hir/src/attrs.rs
+++ b/crates/hir/src/attrs.rs
@@ -148,7 +148,7 @@ fn resolve_doc_path(
let modpath = {
// FIXME: this is not how we should get a mod path here
- let ast_path = ast::SourceFile::parse(&format!("type T = {};", link))
+ let ast_path = ast::SourceFile::parse(&format!("type T = {link};"))
.syntax_node()
.descendants()
.find_map(ast::Path::cast)?;
diff --git a/crates/hir/src/display.rs b/crates/hir/src/display.rs
index 27b2f445d7..5a4b2f3344 100644
--- a/crates/hir/src/display.rs
+++ b/crates/hir/src/display.rs
@@ -79,7 +79,7 @@ impl HirDisplay for Function {
}
}
match name {
- Some(name) => write!(f, "{}: ", name)?,
+ Some(name) => write!(f, "{name}: ")?,
None => f.write_str("_: ")?,
}
// FIXME: Use resolved `param.ty` or raw `type_ref`?
@@ -327,7 +327,7 @@ fn write_generic_params(
continue;
}
delim(f)?;
- write!(f, "{}", name)?;
+ write!(f, "{name}")?;
if let Some(default) = &ty.default {
f.write_str(" = ")?;
default.hir_fmt(f)?;
@@ -335,7 +335,7 @@ fn write_generic_params(
}
TypeOrConstParamData::ConstParamData(c) => {
delim(f)?;
- write!(f, "const {}: ", name)?;
+ write!(f, "const {name}: ")?;
c.ty.hir_fmt(f)?;
}
}
@@ -372,7 +372,7 @@ fn write_where_clause(def: GenericDefId, f: &mut HirFormatter<'_>) -> Result<(),
WherePredicateTypeTarget::TypeRef(ty) => ty.hir_fmt(f),
WherePredicateTypeTarget::TypeOrConstParam(id) => {
match &params.type_or_consts[*id].name() {
- Some(name) => write!(f, "{}", name),
+ Some(name) => write!(f, "{name}"),
None => f.write_str("{unnamed}"),
}
}
@@ -424,7 +424,7 @@ fn write_where_clause(def: GenericDefId, f: &mut HirFormatter<'_>) -> Result<(),
if idx != 0 {
f.write_str(", ")?;
}
- write!(f, "{}", lifetime)?;
+ write!(f, "{lifetime}")?;
}
f.write_str("> ")?;
write_target(target, f)?;
@@ -447,7 +447,7 @@ impl HirDisplay for Const {
let data = f.db.const_data(self.id);
f.write_str("const ")?;
match &data.name {
- Some(name) => write!(f, "{}: ", name)?,
+ Some(name) => write!(f, "{name}: ")?,
None => f.write_str("_: ")?,
}
data.type_ref.hir_fmt(f)?;
@@ -511,9 +511,9 @@ impl HirDisplay for Module {
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError> {
// FIXME: Module doesn't have visibility saved in data.
match self.name(f.db) {
- Some(name) => write!(f, "mod {}", name),
+ Some(name) => write!(f, "mod {name}"),
None if self.is_crate_root(f.db) => match self.krate(f.db).display_name(f.db) {
- Some(name) => write!(f, "extern crate {}", name),
+ Some(name) => write!(f, "extern crate {name}"),
None => f.write_str("extern crate {unknown}"),
},
None => f.write_str("mod {unnamed}"),
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index aabfd17048..3f8acdfd2f 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -813,7 +813,7 @@ fn precise_macro_call_location(
.doc_comments_and_attrs()
.nth((*invoc_attr_index) as usize)
.and_then(Either::left)
- .unwrap_or_else(|| panic!("cannot find attribute #{}", invoc_attr_index));
+ .unwrap_or_else(|| panic!("cannot find attribute #{invoc_attr_index}"));
(
ast_id.with_value(SyntaxNodePtr::from(AstPtr::new(&attr))),
diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs
index 55950da9d5..a255dc1972 100644
--- a/crates/hir/src/semantics.rs
+++ b/crates/hir/src/semantics.rs
@@ -1378,7 +1378,7 @@ impl<'db> SemanticsImpl<'db> {
self.cache
.borrow()
.keys()
- .map(|it| format!("{:?}", it))
+ .map(|it| format!("{it:?}"))
.collect::<Vec<_>>()
.join(", ")
)
diff --git a/crates/ide-assists/src/handlers/generate_delegate_methods.rs b/crates/ide-assists/src/handlers/generate_delegate_methods.rs
index ceae807550..c2c5bf3aab 100644
--- a/crates/ide-assists/src/handlers/generate_delegate_methods.rs
+++ b/crates/ide-assists/src/handlers/generate_delegate_methods.rs
@@ -81,7 +81,7 @@ pub(crate) fn generate_delegate_methods(acc: &mut Assists, ctx: &AssistContext<'
acc.add_group(
&GroupLabel("Generate delegate methods…".to_owned()),
AssistId("generate_delegate_methods", AssistKind::Generate),
- format!("Generate delegate for `{}.{}()`", field_name, method.name(ctx.db())),
+ format!("Generate delegate for `{field_name}.{}()`", method.name(ctx.db())),
target,
|builder| {
// Create the function
diff --git a/crates/ide-assists/src/handlers/generate_enum_projection_method.rs b/crates/ide-assists/src/handlers/generate_enum_projection_method.rs
index c9aa41c845..ee643ce9a4 100644
--- a/crates/ide-assists/src/handlers/generate_enum_projection_method.rs
+++ b/crates/ide-assists/src/handlers/generate_enum_projection_method.rs
@@ -157,7 +157,7 @@ fn generate_enum_projection_method(
assist_description,
target,
|builder| {
- let vis = parent_enum.visibility().map_or(String::new(), |v| format!("{} ", v));
+ let vis = parent_enum.visibility().map_or(String::new(), |v| format!("{v} "));
let field_type_syntax = field_type.syntax();
diff --git a/crates/ide-assists/src/handlers/generate_getter.rs b/crates/ide-assists/src/handlers/generate_getter.rs
index 5e71914283..a82dde2333 100644
--- a/crates/ide-assists/src/handlers/generate_getter.rs
+++ b/crates/ide-assists/src/handlers/generate_getter.rs
@@ -235,7 +235,7 @@ fn generate_getter_from_info(
) -> String {
let mut buf = String::with_capacity(512);
- let vis = info.strukt.visibility().map_or(String::new(), |v| format!("{} ", v));
+ let vis = info.strukt.visibility().map_or(String::new(), |v| format!("{v} "));
let (ty, body) = if info.mutable {
(
format!("&mut {}", record_field_info.field_ty),
diff --git a/crates/ide-assists/src/tests.rs b/crates/ide-assists/src/tests.rs
index 92ced27c78..fca268a1f0 100644
--- a/crates/ide-assists/src/tests.rs
+++ b/crates/ide-assists/src/tests.rs
@@ -171,7 +171,7 @@ fn check(handler: Handler, before: &str, expected: ExpectedResult<'_>, assist_la
}
FileSystemEdit::MoveDir { src, src_id, dst } => {
// temporary placeholder for MoveDir since we are not using MoveDir in ide assists yet.
- (dst, format!("{:?}\n{:?}", src_id, src))
+ (dst, format!("{src_id:?}\n{src:?}"))
}
};
let sr = db.file_source_root(dst.anchor);
diff --git a/crates/ide-assists/src/tests/sourcegen.rs b/crates/ide-assists/src/tests/sourcegen.rs
index 070b83d3c1..c574d6bc63 100644
--- a/crates/ide-assists/src/tests/sourcegen.rs
+++ b/crates/ide-assists/src/tests/sourcegen.rs
@@ -18,7 +18,7 @@ use super::check_doc_test;
for assist in assists.iter() {
for (idx, section) in assist.sections.iter().enumerate() {
let test_id =
- if idx == 0 { assist.id.clone() } else { format!("{}_{}", &assist.id, idx) };
+ if idx == 0 { assist.id.clone() } else { format!("{}_{idx}", &assist.id) };
let test = format!(
r######"
#[test]
@@ -175,7 +175,7 @@ impl fmt::Display for Assist {
fn hide_hash_comments(text: &str) -> String {
text.split('\n') // want final newline
.filter(|&it| !(it.starts_with("# ") || it == "#"))
- .map(|it| format!("{}\n", it))
+ .map(|it| format!("{it}\n"))
.collect()
}
@@ -190,6 +190,6 @@ fn reveal_hash_comments(text: &str) -> String {
it
}
})
- .map(|it| format!("{}\n", it))
+ .map(|it| format!("{it}\n"))
.collect()
}
diff --git a/crates/ide-completion/src/completions.rs b/crates/ide-completion/src/completions.rs
index ba5afde19b..eb87d6c582 100644
--- a/crates/ide-completion/src/completions.rs
+++ b/crates/ide-completion/src/completions.rs
@@ -133,7 +133,7 @@ impl Completions {
if incomplete_let && snippet.ends_with('}') {
// complete block expression snippets with a trailing semicolon, if inside an incomplete let
cov_mark::hit!(let_semi);
- item.insert_snippet(cap, format!("{};", snippet));
+ item.insert_snippet(cap, format!("{snippet};"));
} else {
item.insert_snippet(cap, snippet);
}
diff --git a/crates/ide-completion/src/completions/attribute/cfg.rs b/crates/ide-completion/src/completions/attribute/cfg.rs
index 311060143b..7ef4ff30b5 100644
--- a/crates/ide-completion/src/completions/attribute/cfg.rs
+++ b/crates/ide-completion/src/completions/attribute/cfg.rs
@@ -11,7 +11,7 @@ use crate::{completions::Completions, context::CompletionContext, CompletionItem
pub(crate) fn complete_cfg(acc: &mut Completions, ctx: &CompletionContext<'_>) {
let add_completion = |item: &str| {
let mut completion = CompletionItem::new(SymbolKind::BuiltinAttr, ctx.source_range(), item);
- completion.insert_text(format!(r#""{}""#, item));
+ completion.insert_text(format!(r#""{item}""#));
acc.add(completion.build());
};
@@ -29,7 +29,7 @@ pub(crate) fn complete_cfg(acc: &mut Completions, ctx: &CompletionContext<'_>) {
Some("target_vendor") => KNOWN_VENDOR.iter().copied().for_each(add_completion),
Some("target_endian") => ["little", "big"].into_iter().for_each(add_completion),
Some(name) => ctx.krate.potential_cfg(ctx.db).get_cfg_values(name).cloned().for_each(|s| {
- let insert_text = format!(r#""{}""#, s);
+ let insert_text = format!(r#""{s}""#);
let mut item = CompletionItem::new(SymbolKind::BuiltinAttr, ctx.source_range(), s);
item.insert_text(insert_text);
diff --git a/crates/ide-completion/src/completions/attribute/lint.rs b/crates/ide-completion/src/completions/attribute/lint.rs
index 967f6ddd9a..818c3cfd5f 100644
--- a/crates/ide-completion/src/completions/attribute/lint.rs
+++ b/crates/ide-completion/src/completions/attribute/lint.rs
@@ -51,7 +51,7 @@ pub(super) fn complete_lint(
continue;
}
let label = match qual {
- Some(qual) if !is_qualified => format!("{}::{}", qual, name),
+ Some(qual) if !is_qualified => format!("{qual}::{name}"),
_ => name.to_owned(),
};
let mut item = CompletionItem::new(SymbolKind::Attribute, ctx.source_range(), label);
diff --git a/crates/ide-completion/src/completions/env_vars.rs b/crates/ide-completion/src/completions/env_vars.rs
index 09e95e53de..a094e857bb 100644
--- a/crates/ide-completion/src/completions/env_vars.rs
+++ b/crates/ide-completion/src/completions/env_vars.rs
@@ -112,7 +112,7 @@ mod tests {
"#;
let completions = completion_list(fixture);
- assert!(completions.is_empty(), "Completions weren't empty: {}", completions);
+ assert!(completions.is_empty(), "Completions weren't empty: {completions}");
}
#[test]
@@ -129,7 +129,7 @@ mod tests {
"#;
let completions = completion_list(fixture);
- assert!(completions.is_empty(), "Completions weren't empty: {}", completions);
+ assert!(completions.is_empty(), "Completions weren't empty: {completions}");
}
#[test]
@@ -145,6 +145,6 @@ mod tests {
"#;
let completions = completion_list(fixture);
- assert!(completions.is_empty(), "Completions weren't empty: {}", completions)
+ assert!(completions.is_empty(), "Completions weren't empty: {completions}")
}
}
diff --git a/crates/ide-completion/src/completions/fn_param.rs b/crates/ide-completion/src/completions/fn_param.rs
index f0ecc595af..d8b8a190eb 100644
--- a/crates/ide-completion/src/completions/fn_param.rs
+++ b/crates/ide-completion/src/completions/fn_param.rs
@@ -192,5 +192,5 @@ fn comma_wrapper(ctx: &CompletionContext<'_>) -> Option<(impl Fn(&str) -> String
matches!(prev_token_kind, SyntaxKind::COMMA | SyntaxKind::L_PAREN | SyntaxKind::PIPE);
let leading = if has_leading_comma { "" } else { ", " };
- Some((move |label: &_| (format!("{}{}{}", leading, label, trailing)), param.text_range()))
+ Some((move |label: &_| (format!("{leading}{label}{trailing}")), param.text_range()))
}
diff --git a/crates/ide-completion/src/completions/item_list/trait_impl.rs b/crates/ide-completion/src/completions/item_list/trait_impl.rs
index 4a1bacfa9d..21ec13bba0 100644
--- a/crates/ide-completion/src/completions/item_list/trait_impl.rs
+++ b/crates/ide-completion/src/completions/item_list/trait_impl.rs
@@ -190,7 +190,7 @@ fn add_function_impl(
};
let mut item = CompletionItem::new(completion_kind, replacement_range, label);
- item.lookup_by(format!("fn {}", fn_name))
+ item.lookup_by(format!("fn {fn_name}"))
.set_documentation(func.docs(ctx.db))
.set_relevance(CompletionRelevance { is_item_from_trait: true, ..Default::default() });
@@ -205,11 +205,11 @@ fn add_function_impl(
let function_decl = function_declaration(&transformed_fn, source.file_id.is_macro());
match ctx.config.snippet_cap {
Some(cap) => {
- let snippet = format!("{} {{\n $0\n}}", function_decl);
+ let snippet = format!("{function_decl} {{\n $0\n}}");
item.snippet_edit(cap, TextEdit::replace(replacement_range, snippet));
}
None => {
- let header = format!("{} {{", function_decl);
+ let header = format!("{function_decl} {{");
item.text_edit(TextEdit::replace(replacement_range, header));
}
};
@@ -249,10 +249,10 @@ fn add_type_alias_impl(
) {
let alias_name = type_alias.name(ctx.db).unescaped().to_smol_str();
- let label = format!("type {} =", alias_name);
+ let label = format!("type {alias_name} =");
let mut item = CompletionItem::new(SymbolKind::TypeAlias, replacement_range, label);
- item.lookup_by(format!("type {}", alias_name))
+ item.lookup_by(format!("type {alias_name}"))
.set_documentation(type_alias.docs(ctx.db))
.set_relevance(CompletionRelevance { is_item_from_trait: true, ..Default::default() });
@@ -290,7 +290,7 @@ fn add_type_alias_impl(
match ctx.config.snippet_cap {
Some(cap) => {
- let snippet = format!("{}$0;", decl);
+ let snippet = format!("{decl}$0;");
item.snippet_edit(cap, TextEdit::replace(replacement_range, snippet));
}
None => {
@@ -321,10 +321,10 @@ fn add_const_impl(
};
let label = make_const_compl_syntax(&transformed_const, source.file_id.is_macro());
- let replacement = format!("{} ", label);
+ let replacement = format!("{label} ");
let mut item = CompletionItem::new(SymbolKind::Const, replacement_range, label);
- item.lookup_by(format!("const {}", const_name))
+ item.lookup_by(format!("const {const_name}"))
.set_documentation(const_.docs(ctx.db))
.set_relevance(CompletionRelevance {
is_item_from_trait: true,
@@ -333,7 +333,7 @@ fn add_const_impl(
match ctx.config.snippet_cap {
Some(cap) => item.snippet_edit(
cap,
- TextEdit::replace(replacement_range, format!("{}$0;", replacement)),
+ TextEdit::replace(replacement_range, format!("{replacement}$0;")),
),
None => item.text_edit(TextEdit::replace(replacement_range, replacement)),
};
diff --git a/crates/ide-completion/src/completions/postfix.rs b/crates/ide-completion/src/completions/postfix.rs
index 31ec9d9f63..2404491c1f 100644
--- a/crates/ide-completion/src/completions/postfix.rs
+++ b/crates/ide-completion/src/completions/postfix.rs
@@ -61,7 +61,7 @@ pub(crate) fn complete_postfix(
let mut item = postfix_snippet(
"drop",
"fn drop(&mut self)",
- &format!("drop($0{})", receiver_text),
+ &format!("drop($0{receiver_text})"),
);
item.set_documentation(drop_fn.docs(ctx.db));
item.add_to(acc);
@@ -76,14 +76,14 @@ pub(crate) fn complete_postfix(
postfix_snippet(
"ifl",
"if let Ok {}",
- &format!("if let Ok($1) = {} {{\n $0\n}}", receiver_text),
+ &format!("if let Ok($1) = {receiver_text} {{\n $0\n}}"),
)
.add_to(acc);
postfix_snippet(
"while",
"while let Ok {}",
- &format!("while let Ok($1) = {} {{\n $0\n}}", receiver_text),
+ &format!("while let Ok($1) = {receiver_text} {{\n $0\n}}"),
)
.add_to(acc);
}
@@ -91,41 +91,37 @@ pub(crate) fn complete_postfix(
postfix_snippet(
"ifl",
"if let Some {}",
- &format!("if let Some($1) = {} {{\n $0\n}}", receiver_text),
+ &format!("if let Some($1) = {receiver_text} {{\n $0\n}}"),
)
.add_to(acc);
postfix_snippet(
"while",
"while let Some {}",
- &format!("while let Some($1) = {} {{\n $0\n}}", receiver_text),
+ &format!("while let Some($1) = {receiver_text} {{\n $0\n}}"),
)
.add_to(acc);
}
}
} else if receiver_ty.is_bool() || receiver_ty.is_unknown() {
- postfix_snippet("if", "if expr {}", &format!("if {} {{\n $0\n}}", receiver_text))
+ postfix_snippet("if", "if expr {}", &format!("if {receiver_text} {{\n $0\n}}"))
.add_to(acc);
- postfix_snippet(
- "while",
- "while expr {}",
- &format!("while {} {{\n $0\n}}", receiver_text),
- )
- .add_to(acc);
- postfix_snippet("not", "!expr", &format!("!{}", receiver_text)).add_to(acc);
+ postfix_snippet("while", "while expr {}", &format!("while {receiver_text} {{\n $0\n}}"))
+ .add_to(acc);
+ postfix_snippet("not", "!expr", &format!("!{receiver_text}")).add_to(acc);
} else if let Some(trait_) = ctx.famous_defs().core_iter_IntoIterator() {
if receiver_ty.impls_trait(ctx.db, trait_, &[]) {
postfix_snippet(
"for",
"for ele in expr {}",
- &format!("for ele in {} {{\n $0\n}}", receiver_text),
+ &format!("for ele in {receiver_text} {{\n $0\n}}"),
)
.add_to(acc);
}
}
- postfix_snippet("ref", "&expr", &format!("&{}", receiver_text)).add_to(acc);
- postfix_snippet("refm", "&mut expr", &format!("&mut {}", receiver_text)).add_to(acc);
+ postfix_snippet("ref", "&expr", &format!("&{receiver_text}")).add_to(acc);
+ postfix_snippet("refm", "&mut expr", &format!("&mut {receiver_text}")).add_to(acc);
// The rest of the postfix completions create an expression that moves an argument,
// so it's better to consider references now to avoid breaking the compilation
@@ -148,7 +144,7 @@ pub(crate) fn complete_postfix(
postfix_snippet(
"match",
"match expr {}",
- &format!("match {} {{\n Ok(${{1:_}}) => {{$2}},\n Err(${{3:_}}) => {{$0}},\n}}", receiver_text),
+ &format!("match {receiver_text} {{\n Ok(${{1:_}}) => {{$2}},\n Err(${{3:_}}) => {{$0}},\n}}"),
)
.add_to(acc);
}
@@ -168,21 +164,21 @@ pub(crate) fn complete_postfix(
postfix_snippet(
"match",
"match expr {}",
- &format!("match {} {{\n ${{1:_}} => {{$0}},\n}}", receiver_text),
+ &format!("match {receiver_text} {{\n ${{1:_}} => {{$0}},\n}}"),
)
.add_to(acc);
}
}
- postfix_snippet("box", "Box::new(expr)", &format!("Box::new({})", receiver_text)).add_to(acc);
- postfix_snippet("dbg", "dbg!(expr)", &format!("dbg!({})", receiver_text)).add_to(acc); // fixme
- postfix_snippet("dbgr", "dbg!(&expr)", &format!("dbg!(&{})", receiver_text)).add_to(acc);
- postfix_snippet("call", "function(expr)", &format!("${{1}}({})", receiver_text)).add_to(acc);
+ postfix_snippet("box", "Box::new(expr)", &format!("Box::new({receiver_text})")).add_to(acc);
+ postfix_snippet("dbg", "dbg!(expr)", &format!("dbg!({receiver_text})")).add_to(acc); // fixme
+ postfix_snippet("dbgr", "dbg!(&expr)", &format!("dbg!(&{receiver_text})")).add_to(acc);
+ postfix_snippet("call", "function(expr)", &format!("${{1}}({receiver_text})")).add_to(acc);
if let Some(parent) = dot_receiver.syntax().parent().and_then(|p| p.parent()) {
if matches!(parent.kind(), STMT_LIST | EXPR_STMT) {
- postfix_snippet("let", "let", &format!("let $0 = {};", receiver_text)).add_to(acc);
- postfix_snippet("letm", "let mut", &format!("let mut $0 = {};", receiver_text))
+ postfix_snippet("let", "let", &format!("let $0 = {receiver_text};")).add_to(acc);
+ postfix_snippet("letm", "let mut", &format!("let mut $0 = {receiver_text};"))
.add_to(acc);
}
}
@@ -300,7 +296,7 @@ fn add_custom_postfix_completions(
let body = snippet.postfix_snippet(receiver_text);
let mut builder =
postfix_snippet(trigger, snippet.description.as_deref().unwrap_or_default(), &body);
- builder.documentation(Documentation::new(format!("```rust\n{}\n```", body)));
+ builder.documentation(Documentation::new(format!("```rust\n{body}\n```")));
for import in imports.into_iter() {
builder.add_import(import);
}
diff --git a/crates/ide-completion/src/completions/postfix/format_like.rs b/crates/ide-completion/src/completions/postfix/format_like.rs
index b43bdb9ab9..d64d6379a9 100644
--- a/crates/ide-completion/src/completions/postfix/format_like.rs
+++ b/crates/ide-completion/src/completions/postfix/format_like.rs
@@ -54,7 +54,7 @@ pub(crate) fn add_format_like_completions(
if let Ok((out, exprs)) = parse_format_exprs(receiver_text.text()) {
let exprs = with_placeholders(exprs);
for (label, macro_name) in KINDS {
- let snippet = format!(r#"{}({}, {})"#, macro_name, out, exprs.join(", "));
+ let snippet = format!(r#"{macro_name}({out}, {})"#, exprs.join(", "));
postfix_snippet(label, macro_name, &snippet).add_to(acc);
}
@@ -81,7 +81,7 @@ mod tests {
for (kind, input, output) in test_vector {
let (parsed_string, exprs) = parse_format_exprs(input).unwrap();
let exprs = with_placeholders(exprs);
- let snippet = format!(r#"{}("{}", {})"#, kind, parsed_string, exprs.join(", "));
+ let snippet = format!(r#"{kind}("{parsed_string}", {})"#, exprs.join(", "));
assert_eq!(&snippet, output);
}
}
diff --git a/crates/ide-completion/src/completions/snippet.rs b/crates/ide-completion/src/completions/snippet.rs
index 66adb42863..da1f0542d2 100644
--- a/crates/ide-completion/src/completions/snippet.rs
+++ b/crates/ide-completion/src/completions/snippet.rs
@@ -141,7 +141,7 @@ fn add_custom_completions(
};
let body = snip.snippet();
let mut builder = snippet(ctx, cap, trigger, &body);
- builder.documentation(Documentation::new(format!("```rust\n{}\n```", body)));
+ builder.documentation(Documentation::new(format!("```rust\n{body}\n```")));
for import in imports.into_iter() {
builder.add_import(import);
}
diff --git a/crates/ide-completion/src/context/tests.rs b/crates/ide-completion/src/context/tests.rs
index 50845b3881..a654a5db57 100644
--- a/crates/ide-completion/src/context/tests.rs
+++ b/crates/ide-completion/src/context/tests.rs
@@ -19,7 +19,7 @@ fn check_expected_type_and_name(ra_fixture: &str, expect: Expect) {
let name =
completion_context.expected_name.map_or_else(|| "?".to_owned(), |name| name.to_string());
- expect.assert_eq(&format!("ty: {}, name: {}", ty, name));
+ expect.assert_eq(&format!("ty: {ty}, name: {name}"));
}
#[test]
diff --git a/crates/ide-completion/src/item.rs b/crates/ide-completion/src/item.rs
index 27c3ccb35a..657eab5b1b 100644
--- a/crates/ide-completion/src/item.rs
+++ b/crates/ide-completion/src/item.rs
@@ -453,10 +453,10 @@ impl Builder {
// snippets can have multiple imports, but normal completions only have up to one
if let Some(original_path) = import_edit.original_path.as_ref() {
lookup = lookup.or_else(|| Some(label.clone()));
- label = SmolStr::from(format!("{} (use {})", label, original_path));
+ label = SmolStr::from(format!("{label} (use {original_path})"));
}
} else if let Some(trait_name) = self.trait_name {
- label = SmolStr::from(format!("{} (as {})", label, trait_name));
+ label = SmolStr::from(format!("{label} (as {trait_name})"));
}
let text_edit = match self.text_edit {
diff --git a/crates/ide-completion/src/render.rs b/crates/ide-completion/src/render.rs
index c3ffc6d507..e48d1aecd0 100644
--- a/crates/ide-completion/src/render.rs
+++ b/crates/ide-completion/src/render.rs
@@ -144,8 +144,7 @@ pub(crate) fn render_field(
}
fn field_with_receiver(receiver: Option<&hir::Name>, field_name: &str) -> SmolStr {
- receiver
- .map_or_else(|| field_name.into(), |receiver| format!("{}.{}", receiver, field_name).into())
+ receiver.map_or_else(|| field_name.into(), |receiver| format!("{receiver}.{field_name}").into())
}
pub(crate) fn render_tuple_field(
@@ -306,7 +305,7 @@ fn render_resolution_path(
item.lookup_by(name.clone())
.label(SmolStr::from_iter([&name, "<…>"]))
.trigger_call_info()
- .insert_snippet(cap, format!("{}<$0>", local_name));
+ .insert_snippet(cap, format!("{local_name}<$0>"));
}
}
}
@@ -528,13 +527,13 @@ mod tests {
let tag = it.kind().tag();
let relevance = display_relevance(it.relevance());
- items.push(format!("{} {} {}\n", tag, it.label(), relevance));
+ items.push(format!("{tag} {} {relevance}\n", it.label()));
if let Some((mutability, _offset, relevance)) = it.ref_match() {
let label = format!("&{}{}", mutability.as_keyword_for_ref(), it.label());
let relevance = display_relevance(relevance);
- items.push(format!("{} {} {}\n", tag, label, relevance));
+ items.push(format!("{tag} {label} {relevance}\n"));
}
items
@@ -563,7 +562,7 @@ mod tests {
.filter_map(|(cond, desc)| if cond { Some(desc) } else { None })
.join("+");
- format!("[{}]", relevance_factors)
+ format!("[{relevance_factors}]")
}
}
diff --git a/crates/ide-completion/src/render/function.rs b/crates/ide-completion/src/render/function.rs
index 3761208460..197592e78c 100644
--- a/crates/ide-completion/src/render/function.rs
+++ b/crates/ide-completion/src/render/function.rs
@@ -53,7 +53,7 @@ fn render(
let (call, escaped_call) = match &func_kind {
FuncKind::Method(_, Some(receiver)) => (
format!("{}.{}", receiver.unescaped(), name.unescaped()).into(),
- format!("{}.{}", receiver, name).into(),
+ format!("{receiver}.{name}").into(),
),
_ => (name.unescaped().to_smol_str(), name.to_smol_str()),
};
@@ -162,7 +162,7 @@ pub(super) fn add_call_parens<'b>(
cov_mark::hit!(inserts_parens_for_function_calls);
let (snippet, label_suffix) = if self_param.is_none() && params.is_empty() {
- (format!("{}()$0", escaped_name), "()")
+ (format!("{escaped_name}()$0"), "()")
} else {
builder.trigger_call_info();
let snippet = if let Some(CallableSnippets::FillArguments) = ctx.config.callable {
@@ -174,7 +174,7 @@ pub(super) fn add_call_parens<'b>(
let smol_str = n.to_smol_str();
let text = smol_str.as_str().trim_start_matches('_');
let ref_ = ref_of_param(ctx, text, param.ty());
- f(&format_args!("${{{}:{}{}}}", index + offset, ref_, text))
+ f(&format_args!("${{{}:{ref_}{text}}}", index + offset))
}
None => {
let name = match param.ty().as_adt() {
@@ -185,7 +185,7 @@ pub(super) fn add_call_parens<'b>(
.map(|s| to_lower_snake_case(s.as_str()))
.unwrap_or_else(|| "_".to_string()),
};
- f(&format_args!("${{{}:{}}}", index + offset, name))
+ f(&format_args!("${{{}:{name}}}", index + offset))
}
}
});
@@ -200,12 +200,12 @@ pub(super) fn add_call_parens<'b>(
)
}
None => {
- format!("{}({})$0", escaped_name, function_params_snippet)
+ format!("{escaped_name}({function_params_snippet})$0")
}
}
} else {
cov_mark::hit!(suppress_arg_snippets);
- format!("{}($0)", escaped_name)
+ format!("{escaped_name}($0)")
};
(snippet, "(…)")
diff --git a/crates/ide-completion/src/render/macro_.rs b/crates/ide-completion/src/render/macro_.rs
index eabd0bd17d..ffcad1185a 100644
--- a/crates/ide-completion/src/render/macro_.rs
+++ b/crates/ide-completion/src/render/macro_.rs
@@ -66,7 +66,7 @@ fn render(
match ctx.snippet_cap() {
Some(cap) if needs_bang && !has_call_parens => {
- let snippet = format!("{}!{}$0{}", escaped_name, bra, ket);
+ let snippet = format!("{escaped_name}!{bra}$0{ket}");
let lookup = banged_name(&name);
item.insert_snippet(cap, snippet).lookup_by(lookup);
}
diff --git a/crates/ide-completion/src/render/variant.rs b/crates/ide-completion/src/render/variant.rs
index d69906a706..5995da68a1 100644
--- a/crates/ide-completion/src/render/variant.rs
+++ b/crates/ide-completion/src/render/variant.rs
@@ -35,8 +35,8 @@ pub(crate) fn render_record_lit(
});
RenderedLiteral {
- literal: format!("{} {{ {} }}", path, completions),
- detail: format!("{} {{ {} }}", path, types),
+ literal: format!("{path} {{ {completions} }}"),
+ detail: format!("{path} {{ {types} }}"),
}
}
@@ -49,7 +49,7 @@ pub(crate) fn render_tuple_lit(
path: &str,
) -> RenderedLiteral {
if snippet_cap.is_none() {
- return RenderedLiteral { literal: format!("{}", path), detail: format!("{}", path) };
+ return RenderedLiteral { literal: format!("{path}"), detail: format!("{path}") };
}
let completions = fields.iter().enumerate().format_with(", ", |(idx, _), f| {
if snippet_cap.is_some() {
@@ -62,8 +62,8 @@ pub(crate) fn render_tuple_lit(
let types = fields.iter().format_with(", ", |field, f| f(&field.ty(db).display(db)));
RenderedLiteral {
- literal: format!("{}({})", path, completions),
- detail: format!("{}({})", path, types),
+ literal: format!("{path}({completions})"),
+ detail: format!("{path}({types})"),
}
}
diff --git a/crates/ide-completion/src/snippet.rs b/crates/ide-completion/src/snippet.rs
index f3b8eae4fe..343719c536 100644
--- a/crates/ide-completion/src/snippet.rs
+++ b/crates/ide-completion/src/snippet.rs
@@ -199,7 +199,7 @@ fn validate_snippet(
) -> Option<(Box<[GreenNode]>, String, Option<Box<str>>)> {
let mut imports = Vec::with_capacity(requires.len());
for path in requires.iter() {
- let use_path = ast::SourceFile::parse(&format!("use {};", path))
+ let use_path = ast::SourceFile::parse(&format!("use {path};"))
.syntax_node()
.descendants()
.find_map(ast::Path::cast)?;
diff --git a/crates/ide-completion/src/tests.rs b/crates/ide-completion/src/tests.rs
index 5e9011f9e8..d206377e17 100644
--- a/crates/ide-completion/src/tests.rs
+++ b/crates/ide-completion/src/tests.rs
@@ -153,7 +153,7 @@ fn render_completion_list(completions: Vec<CompletionItem>) -> String {
.into_iter()
.map(|it| {
let tag = it.kind().tag();
- let var_name = format!("{} {}", tag, it.label());
+ let var_name = format!("{tag} {}", it.label());
let mut buf = var_name;
if let Some(detail) = it.detail() {
let width = label_width.saturating_sub(monospace_width(it.label()));
@@ -188,7 +188,7 @@ pub(crate) fn check_edit_with_config(
.iter()
.filter(|it| it.lookup() == what)
.collect_tuple()
- .unwrap_or_else(|| panic!("can't find {:?} completion in {:#?}", what, completions));
+ .unwrap_or_else(|| panic!("can't find {what:?} completion in {completions:#?}"));
let mut actual = db.file_text(position.file_id).to_string();
let mut combined_edit = completion.text_edit().to_owned();
diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs
index 8e26d889f9..043f552bd8 100644
--- a/crates/ide-completion/src/tests/expression.rs
+++ b/crates/ide-completion/src/tests/expression.rs
@@ -4,7 +4,7 @@ use expect_test::{expect, Expect};
use crate::tests::{check_edit, completion_list, BASE_ITEMS_FIXTURE};
fn check(ra_fixture: &str, expect: Expect) {
- let actual = completion_list(&format!("{}{}", BASE_ITEMS_FIXTURE, ra_fixture));
+ let actual = completion_list(&format!("{BASE_ITEMS_FIXTURE}{ra_fixture}"));
expect.assert_eq(&actual)
}
diff --git a/crates/ide-completion/src/tests/item.rs b/crates/ide-completion/src/tests/item.rs
index 409413c1dc..3ef2a7c942 100644
--- a/crates/ide-completion/src/tests/item.rs
+++ b/crates/ide-completion/src/tests/item.rs
@@ -7,7 +7,7 @@ use expect_test::{expect, Expect};
use crate::tests::{completion_list, BASE_ITEMS_FIXTURE};
fn check(ra_fixture: &str, expect: Expect) {
- let actual = completion_list(&format!("{}{}", BASE_ITEMS_FIXTURE, ra_fixture));
+ let actual = completion_list(&format!("{BASE_ITEMS_FIXTURE}{ra_fixture}"));
expect.assert_eq(&actual)
}
diff --git a/crates/ide-completion/src/tests/item_list.rs b/crates/ide-completion/src/tests/item_list.rs
index 2b10294cc5..b62b988885 100644
--- a/crates/ide-completion/src/tests/item_list.rs
+++ b/crates/ide-completion/src/tests/item_list.rs
@@ -4,7 +4,7 @@ use expect_test::{expect, Expect};
use crate::tests::{check_edit, completion_list, BASE_ITEMS_FIXTURE};
fn check(ra_fixture: &str, expect: Expect) {
- let actual = completion_list(&format!("{}{}", BASE_ITEMS_FIXTURE, ra_fixture));
+ let actual = completion_list(&format!("{BASE_ITEMS_FIXTURE}{ra_fixture}"));
expect.assert_eq(&actual)
}
diff --git a/crates/ide-completion/src/tests/pattern.rs b/crates/ide-completion/src/tests/pattern.rs
index db8bef6640..ad9254e7f2 100644
--- a/crates/ide-completion/src/tests/pattern.rs
+++ b/crates/ide-completion/src/tests/pattern.rs
@@ -9,7 +9,7 @@ fn check_empty(ra_fixture: &str, expect: Expect) {
}
fn check(ra_fixture: &str, expect: Expect) {
- let actual = completion_list(&format!("{}\n{}", BASE_ITEMS_FIXTURE, ra_fixture));
+ let actual = completion_list(&format!("{BASE_ITEMS_FIXTURE}\n{ra_fixture}"));
expect.assert_eq(&actual)
}
diff --git a/crates/ide-completion/src/tests/predicate.rs b/crates/ide-completion/src/tests/predicate.rs
index a8676e2f24..2656a4d545 100644
--- a/crates/ide-completion/src/tests/predicate.rs
+++ b/crates/ide-completion/src/tests/predicate.rs
@@ -4,7 +4,7 @@ use expect_test::{expect, Expect};
use crate::tests::{completion_list, BASE_ITEMS_FIXTURE};
fn check(ra_fixture: &str, expect: Expect) {
- let actual = completion_list(&format!("{}\n{}", BASE_ITEMS_FIXTURE, ra_fixture));
+ let actual = completion_list(&format!("{BASE_ITEMS_FIXTURE}\n{ra_fixture}"));
expect.assert_eq(&actual)
}
diff --git a/crates/ide-completion/src/tests/type_pos.rs b/crates/ide-completion/src/tests/type_pos.rs
index f0b7726c51..c3f4fb4d18 100644
--- a/crates/ide-completion/src/tests/type_pos.rs
+++ b/crates/ide-completion/src/tests/type_pos.rs
@@ -4,7 +4,7 @@ use expect_test::{expect, Expect};
use crate::tests::{completion_list, BASE_ITEMS_FIXTURE};
fn check(ra_fixture: &str, expect: Expect) {
- let actual = completion_list(&format!("{}\n{}", BASE_ITEMS_FIXTURE, ra_fixture));
+ let actual = completion_list(&format!("{BASE_ITEMS_FIXTURE}\n{ra_fixture}"));
expect.assert_eq(&actual)
}
diff --git a/crates/ide-db/src/assists.rs b/crates/ide-db/src/assists.rs
index da23763dc2..8c6c1c44aa 100644
--- a/crates/ide-db/src/assists.rs
+++ b/crates/ide-db/src/assists.rs
@@ -88,7 +88,7 @@ impl FromStr for AssistKind {
"RefactorExtract" => Ok(AssistKind::RefactorExtract),
"RefactorInline" => Ok(AssistKind::RefactorInline),
"RefactorRewrite" => Ok(AssistKind::RefactorRewrite),
- unknown => Err(format!("Unknown AssistKind: '{}'", unknown)),
+ unknown => Err(format!("Unknown AssistKind: '{unknown}'")),
}
}
}
diff --git a/crates/ide-db/src/imports/import_assets.rs b/crates/ide-db/src/imports/import_assets.rs
index 40a6a3e897..994d48385a 100644
--- a/crates/ide-db/src/imports/import_assets.rs
+++ b/crates/ide-db/src/imports/import_assets.rs
@@ -367,7 +367,7 @@ fn import_for_item(
let expected_import_end = if item_as_assoc(db, original_item).is_some() {
unresolved_qualifier.to_string()
} else {
- format!("{}::{}", unresolved_qualifier, item_name(db, original_item)?)
+ format!("{unresolved_qualifier}::{}", item_name(db, original_item)?)
};
if !import_path_string.contains(unresolved_first_segment)
|| !import_path_string.ends_with(&expected_import_end)
diff --git a/crates/ide-db/src/imports/insert_use/tests.rs b/crates/ide-db/src/imports/insert_use/tests.rs
index 59673af320..b92e367f7e 100644
--- a/crates/ide-db/src/imports/insert_use/tests.rs
+++ b/crates/ide-db/src/imports/insert_use/tests.rs
@@ -1014,7 +1014,7 @@ fn check_with_config(
.and_then(|it| ImportScope::find_insert_use_container(&it, sema))
.or_else(|| ImportScope::from(syntax))
.unwrap();
- let path = ast::SourceFile::parse(&format!("use {};", path))
+ let path = ast::SourceFile::parse(&format!("use {path};"))
.tree()
.syntax()
.descendants()
diff --git a/crates/ide-db/src/rename.rs b/crates/ide-db/src/rename.rs
index 49b81265ea..cd4a7e1554 100644
--- a/crates/ide-db/src/rename.rs
+++ b/crates/ide-db/src/rename.rs
@@ -197,7 +197,7 @@ fn rename_mod(
// Module exists in a named file
if !is_mod_rs {
- let path = format!("{}.rs", new_name);
+ let path = format!("{new_name}.rs");
let dst = AnchoredPathBuf { anchor, path };
source_change.push_file_system_edit(FileSystemEdit::MoveFile { src: anchor, dst })
}
@@ -207,9 +207,7 @@ fn rename_mod(
// - Module has submodules defined in separate files
let dir_paths = match (is_mod_rs, has_detached_child, module.name(sema.db)) {
// Go up one level since the anchor is inside the dir we're trying to rename
- (true, _, Some(mod_name)) => {
- Some((format!("../{}", mod_name), format!("../{}", new_name)))
- }
+ (true, _, Some(mod_name)) => Some((format!("../{mod_name}"), format!("../{new_name}"))),
// The anchor is on the same level as target dir
(false, true, Some(mod_name)) => Some((mod_name.to_string(), new_name.to_string())),
_ => None,
@@ -356,7 +354,7 @@ fn source_edit_from_name(edit: &mut TextEditBuilder, name: &ast::Name, new_name:
// FIXME: instead of splitting the shorthand, recursively trigger a rename of the
// other name https://github.com/rust-lang/rust-analyzer/issues/6547
- edit.insert(ident_pat.syntax().text_range().start(), format!("{}: ", new_name));
+ edit.insert(ident_pat.syntax().text_range().start(), format!("{new_name}: "));
return true;
}
}
@@ -414,7 +412,7 @@ fn source_edit_from_name_ref(
// Foo { field } -> Foo { new_name: field }
// ^ insert `new_name: `
let offset = name_ref.syntax().text_range().start();
- edit.insert(offset, format!("{}: ", new_name));
+ edit.insert(offset, format!("{new_name}: "));
return true;
}
(None, Some(_)) if matches!(def, Definition::Local(_)) => {
@@ -422,7 +420,7 @@ fn source_edit_from_name_ref(
// Foo { field } -> Foo { field: new_name }
// ^ insert `: new_name`
let offset = name_ref.syntax().text_range().end();
- edit.insert(offset, format!(": {}", new_name));
+ edit.insert(offset, format!(": {new_name}"));
return true;
}
_ => (),
diff --git a/crates/ide-db/src/symbol_index.rs b/crates/ide-db/src/symbol_index.rs
index bfb0031277..c054cc1597 100644
--- a/crates/ide-db/src/symbol_index.rs
+++ b/crates/ide-db/src/symbol_index.rs
@@ -206,7 +206,7 @@ pub fn world_symbols(db: &RootDatabase, query: Query) -> Vec<FileSymbol> {
}
pub fn crate_symbols(db: &RootDatabase, krate: Crate, query: Query) -> Vec<FileSymbol> {
- let _p = profile::span("crate_symbols").detail(|| format!("{:?}", query));
+ let _p = profile::span("crate_symbols").detail(|| format!("{query:?}"));
let modules = krate.modules(db);
let indices: Vec<_> = modules
diff --git a/crates/ide-db/src/syntax_helpers/format_string_exprs.rs b/crates/ide-db/src/syntax_helpers/format_string_exprs.rs
index 313346ee13..f5f03d70b0 100644
--- a/crates/ide-db/src/syntax_helpers/format_string_exprs.rs
+++ b/crates/ide-db/src/syntax_helpers/format_string_exprs.rs
@@ -205,7 +205,7 @@ mod tests {
fn check(input: &str, expect: &Expect) {
let (output, exprs) = parse_format_exprs(input).unwrap_or(("-".to_string(), vec![]));
let outcome_repr = if !exprs.is_empty() {
- format!("{}; {}", output, with_placeholders(exprs).join(", "))
+ format!("{output}; {}", with_placeholders(exprs).join(", "))
} else {
output
};
diff --git a/crates/ide-db/src/tests/sourcegen_lints.rs b/crates/ide-db/src/tests/sourcegen_lints.rs
index 5042f6d815..c7d5f3613d 100644
--- a/crates/ide-db/src/tests/sourcegen_lints.rs
+++ b/crates/ide-db/src/tests/sourcegen_lints.rs
@@ -241,9 +241,9 @@ fn generate_descriptor_clippy(buf: &mut String, path: &Path) {
buf.push_str(r#"pub const CLIPPY_LINT_GROUPS: &[LintGroup] = &["#);
for (id, children) in clippy_groups {
- let children = children.iter().map(|id| format!("clippy::{}", id)).collect::<Vec<_>>();
+ let children = children.iter().map(|id| format!("clippy::{id}")).collect::<Vec<_>>();
if !children.is_empty() {
- let lint_ident = format!("clippy::{}", id);
+ let lint_ident = format!("clippy::{id}");
let description = format!("lint group for: {}", children.iter().join(", "));
push_lint_group(buf, &lint_ident, &description, &children);
}
@@ -273,7 +273,7 @@ fn push_lint_group(buf: &mut String, label: &str, description: &str, children: &
push_lint_completion(buf, label, description);
- let children = format!("&[{}]", children.iter().map(|it| format!("\"{}\"", it)).join(", "));
+ let children = format!("&[{}]", children.iter().map(|it| format!("\"{it}\"")).join(", "));
format_to!(
buf,
r###"
diff --git a/crates/ide-diagnostics/src/handlers/mismatched_arg_count.rs b/crates/ide-diagnostics/src/handlers/mismatched_arg_count.rs
index 5f8b3e543b..c5db8c3741 100644
--- a/crates/ide-diagnostics/src/handlers/mismatched_arg_count.rs
+++ b/crates/ide-diagnostics/src/handlers/mismatched_arg_count.rs
@@ -13,7 +13,7 @@ pub(crate) fn mismatched_arg_count(
d: &hir::MismatchedArgCount,
) -> Diagnostic {
let s = if d.expected == 1 { "" } else { "s" };
- let message = format!("expected {} argument{}, found {}", d.expected, s, d.found);
+ let message = format!("expected {} argument{s}, found {}", d.expected, d.found);
Diagnostic::new("mismatched-arg-count", message, invalid_args_range(ctx, d))
}
diff --git a/crates/ide-diagnostics/src/handlers/no_such_field.rs b/crates/ide-diagnostics/src/handlers/no_such_field.rs
index d8f2a9de98..8673524c10 100644
--- a/crates/ide-diagnostics/src/handlers/no_such_field.rs
+++ b/crates/ide-diagnostics/src/handlers/no_such_field.rs
@@ -78,13 +78,13 @@ fn missing_record_expr_field_fixes(
let mut new_field = new_field.to_string();
if usage_file_id != def_file_id {
- new_field = format!("pub(crate) {}", new_field);
+ new_field = format!("pub(crate) {new_field}");
}
- new_field = format!("\n{}{}", indent, new_field);
+ new_field = format!("\n{indent}{new_field}");
let needs_comma = !last_field_syntax.to_string().ends_with(',');
if needs_comma {
- new_field = format!(",{}", new_field);
+ new_field = format!(",{new_field}");
}
let source_change = SourceChange::from_text_edit(
diff --git a/crates/ide-diagnostics/src/handlers/type_mismatch.rs b/crates/ide-diagnostics/src/handlers/type_mismatch.rs
index 62c69f90ba..2adae165e4 100644
--- a/crates/ide-diagnostics/src/handlers/type_mismatch.rs
+++ b/crates/ide-diagnostics/src/handlers/type_mismatch.rs
@@ -106,11 +106,11 @@ fn add_missing_ok_or_some(
}
let mut builder = TextEdit::builder();
- builder.insert(expr.syntax().text_range().start(), format!("{}(", variant_name));
+ builder.insert(expr.syntax().text_range().start(), format!("{variant_name}("));
builder.insert(expr.syntax().text_range().end(), ")".to_string());
let source_change =
SourceChange::from_text_edit(d.expr.file_id.original_file(ctx.sema.db), builder.finish());
- let name = format!("Wrap in {}", variant_name);
+ let name = format!("Wrap in {variant_name}");
acc.push(fix("wrap_in_constructor", &name, source_change, expr_range));
Some(())
}
diff --git a/crates/ide-diagnostics/src/handlers/unlinked_file.rs b/crates/ide-diagnostics/src/handlers/unlinked_file.rs
index c626932f19..be70f0ac4f 100644
--- a/crates/ide-diagnostics/src/handlers/unlinked_file.rs
+++ b/crates/ide-diagnostics/src/handlers/unlinked_file.rs
@@ -64,7 +64,7 @@ fn fixes(ctx: &DiagnosticsContext<'_>, file_id: FileId) -> Option<Vec<Assist>> {
// `submod/bla.rs` -> `submod.rs`
let parent_mod = (|| {
let (name, _) = parent.name_and_extension()?;
- parent.parent()?.join(&format!("{}.rs", name))
+ parent.parent()?.join(&format!("{name}.rs"))
})();
paths.extend(parent_mod);
paths
@@ -99,8 +99,8 @@ fn make_fixes(
matches!(item, ast::Item::Module(m) if m.item_list().is_none())
}
- let mod_decl = format!("mod {};", new_mod_name);
- let pub_mod_decl = format!("pub mod {};", new_mod_name);
+ let mod_decl = format!("mod {new_mod_name};");
+ let pub_mod_decl = format!("pub mod {new_mod_name};");
let ast: ast::SourceFile = db.parse(parent_file_id).tree();
@@ -125,8 +125,8 @@ fn make_fixes(
Some(last) => {
cov_mark::hit!(unlinked_file_append_to_existing_mods);
let offset = last.syntax().text_range().end();
- mod_decl_builder.insert(offset, format!("\n{}", mod_decl));
- pub_mod_decl_builder.insert(offset, format!("\n{}", pub_mod_decl));
+ mod_decl_builder.insert(offset, format!("\n{mod_decl}"));
+ pub_mod_decl_builder.insert(offset, format!("\n{pub_mod_decl}"));
}
None => {
// Prepend before the first item in the file.
@@ -134,15 +134,15 @@ fn make_fixes(
Some(item) => {
cov_mark::hit!(unlinked_file_prepend_before_first_item);
let offset = item.syntax().text_range().start();
- mod_decl_builder.insert(offset, format!("{}\n\n", mod_decl));
- pub_mod_decl_builder.insert(offset, format!("{}\n\n", pub_mod_decl));
+ mod_decl_builder.insert(offset, format!("{mod_decl}\n\n"));
+ pub_mod_decl_builder.insert(offset, format!("{pub_mod_decl}\n\n"));
}
None => {
// No items in the file, so just append at the end.
cov_mark::hit!(unlinked_file_empty_file);
let offset = ast.syntax().text_range().end();
- mod_decl_builder.insert(offset, format!("{}\n", mod_decl));
- pub_mod_decl_builder.insert(offset, format!("{}\n", pub_mod_decl));
+ mod_decl_builder.insert(offset, format!("{mod_decl}\n"));
+ pub_mod_decl_builder.insert(offset, format!("{pub_mod_decl}\n"));
}
}
}
@@ -152,13 +152,13 @@ fn make_fixes(
Some(vec![
fix(
"add_mod_declaration",
- &format!("Insert `{}`", mod_decl),
+ &format!("Insert `{mod_decl}`"),
SourceChange::from_text_edit(parent_file_id, mod_decl_builder.finish()),
trigger_range,
),
fix(
"add_pub_mod_declaration",
- &format!("Insert `{}`", pub_mod_decl),
+ &format!("Insert `{pub_mod_decl}`"),
SourceChange::from_text_edit(parent_file_id, pub_mod_decl_builder.finish()),
trigger_range,
),
diff --git a/crates/ide-diagnostics/src/handlers/unresolved_macro_call.rs b/crates/ide-diagnostics/src/handlers/unresolved_macro_call.rs
index 87531f4acf..1a5efff2c0 100644
--- a/crates/ide-diagnostics/src/handlers/unresolved_macro_call.rs
+++ b/crates/ide-diagnostics/src/handlers/unresolved_macro_call.rs
@@ -13,7 +13,7 @@ pub(crate) fn unresolved_macro_call(
let bang = if d.is_bang { "!" } else { "" };
Diagnostic::new(
"unresolved-macro-call",
- format!("unresolved macro `{}{}`", d.path, bang),
+ format!("unresolved macro `{}{bang}`", d.path),
display_range,
)
.experimental()
diff --git a/crates/ide-diagnostics/src/handlers/unresolved_module.rs b/crates/ide-diagnostics/src/handlers/unresolved_module.rs
index b8f2a9e94a..91395f1d84 100644
--- a/crates/ide-diagnostics/src/handlers/unresolved_module.rs
+++ b/crates/ide-diagnostics/src/handlers/unresolved_module.rs
@@ -16,7 +16,7 @@ pub(crate) fn unresolved_module(
"unresolved-module",
match &*d.candidates {
[] => "unresolved module".to_string(),
- [candidate] => format!("unresolved module, can't find module file: {}", candidate),
+ [candidate] => format!("unresolved module, can't find module file: {candidate}"),
[candidates @ .., last] => {
format!(
"unresolved module, can't find module file: {}, or {}",
diff --git a/crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs b/crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs
index 23818d883f..b2ed19104e 100644
--- a/crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs
+++ b/crates/ide-diagnostics/src/handlers/unresolved_proc_macro.rs
@@ -26,7 +26,7 @@ pub(crate) fn unresolved_proc_macro(
};
let message = match &d.macro_name {
- Some(name) => format!("proc macro `{}` not expanded", name),
+ Some(name) => format!("proc macro `{name}` not expanded"),
None => "proc macro not expanded".to_string(),
};
let severity = if config_enabled { Severity::Error } else { Severity::WeakWarning };
diff --git a/crates/ide-diagnostics/src/lib.rs b/crates/ide-diagnostics/src/lib.rs
index d81e36a1f8..b244666d1c 100644
--- a/crates/ide-diagnostics/src/lib.rs
+++ b/crates/ide-diagnostics/src/lib.rs
@@ -218,7 +218,7 @@ pub fn diagnostics(
// [#34344] Only take first 128 errors to prevent slowing down editor/ide, the number 128 is chosen arbitrarily.
res.extend(
parse.errors().iter().take(128).map(|err| {
- Diagnostic::new("syntax-error", format!("Syntax Error: {}", err), err.range())
+ Diagnostic::new("syntax-error", format!("Syntax Error: {err}"), err.range())
}),
);
diff --git a/crates/ide-diagnostics/src/tests.rs b/crates/ide-diagnostics/src/tests.rs
index 8296788317..afa641c733 100644
--- a/crates/ide-diagnostics/src/tests.rs
+++ b/crates/ide-diagnostics/src/tests.rs
@@ -75,7 +75,7 @@ pub(crate) fn check_no_fix(ra_fixture: &str) {
)
.pop()
.unwrap();
- assert!(diagnostic.fixes.is_none(), "got a fix when none was expected: {:?}", diagnostic);
+ assert!(diagnostic.fixes.is_none(), "got a fix when none was expected: {diagnostic:?}");
}
pub(crate) fn check_expect(ra_fixture: &str, expect: Expect) {
diff --git a/crates/ide-diagnostics/src/tests/sourcegen.rs b/crates/ide-diagnostics/src/tests/sourcegen.rs
index ec6558a46e..71d27e6d21 100644
--- a/crates/ide-diagnostics/src/tests/sourcegen.rs
+++ b/crates/ide-diagnostics/src/tests/sourcegen.rs
@@ -39,7 +39,7 @@ impl Diagnostic {
for block in comment_blocks {
let id = block.id;
if let Err(msg) = is_valid_diagnostic_name(&id) {
- panic!("invalid diagnostic name: {:?}:\n {}", id, msg)
+ panic!("invalid diagnostic name: {id:?}:\n {msg}")
}
let doc = block.contents.join("\n");
let location = sourcegen::Location { file: path.clone(), line: block.line };
diff --git a/crates/ide-ssr/src/parsing.rs b/crates/ide-ssr/src/parsing.rs
index f6220b928a..d78d009681 100644
--- a/crates/ide-ssr/src/parsing.rs
+++ b/crates/ide-ssr/src/parsing.rs
@@ -352,7 +352,7 @@ impl NodeKind {
impl Placeholder {
fn new(name: SmolStr, constraints: Vec<Constraint>) -> Self {
Self {
- stand_in_name: format!("__placeholder_{}", name),
+ stand_in_name: format!("__placeholder_{name}"),
constraints,
ident: Var(name.to_string()),
}
diff --git a/crates/ide-ssr/src/tests.rs b/crates/ide-ssr/src/tests.rs
index 1ecb7aa9aa..61698fca80 100644
--- a/crates/ide-ssr/src/tests.rs
+++ b/crates/ide-ssr/src/tests.rs
@@ -121,7 +121,7 @@ fn print_match_debug_info(match_finder: &MatchFinder<'_>, file_id: FileId, snipp
snippet
);
for (index, d) in debug_info.iter().enumerate() {
- println!("Node #{}\n{:#?}\n", index, d);
+ println!("Node #{index}\n{d:#?}\n");
}
}
@@ -144,7 +144,7 @@ fn assert_no_match(pattern: &str, code: &str) {
let matches = match_finder.matches().flattened().matches;
if !matches.is_empty() {
print_match_debug_info(&match_finder, position.file_id, &matches[0].matched_text());
- panic!("Got {} matches when we expected none: {:#?}", matches.len(), matches);
+ panic!("Got {} matches when we expected none: {matches:#?}", matches.len());
}
}
diff --git a/crates/ide/src/doc_links.rs b/crates/ide/src/doc_links.rs
index d96827326c..8569701346 100644
--- a/crates/ide/src/doc_links.rs
+++ b/crates/ide/src/doc_links.rs
@@ -453,7 +453,7 @@ fn get_doc_base_url(db: &RootDatabase, def: Definition) -> Option<Url> {
})?
}
};
- Url::parse(&base).ok()?.join(&format!("{}/", display_name)).ok()
+ Url::parse(&base).ok()?.join(&format!("{display_name}/")).ok()
}
/// Get the filename and extension generated for a symbol by rustdoc.
@@ -488,7 +488,7 @@ fn filename_and_frag_for_def(
Some(kw) => {
format!("keyword.{}.html", kw.trim_matches('"'))
}
- None => format!("{}/index.html", name),
+ None => format!("{name}/index.html"),
},
None => String::from("index.html"),
},
diff --git a/crates/ide/src/doc_links/intra_doc_links.rs b/crates/ide/src/doc_links/intra_doc_links.rs
index 1df9aaae28..13088bdc3b 100644
--- a/crates/ide/src/doc_links/intra_doc_links.rs
+++ b/crates/ide/src/doc_links/intra_doc_links.rs
@@ -63,8 +63,8 @@ mod tests {
fn check(link: &str, expected: Expect) {
let (l, a) = parse_intra_doc_link(link);
- let a = a.map_or_else(String::new, |a| format!(" ({:?})", a));
- expected.assert_eq(&format!("{}{}", l, a));
+ let a = a.map_or_else(String::new, |a| format!(" ({a:?})"));
+ expected.assert_eq(&format!("{l}{a}"));
}
#[test]
diff --git a/crates/ide/src/doc_links/tests.rs b/crates/ide/src/doc_links/tests.rs
index c6bfb6b9d0..104181a33e 100644
--- a/crates/ide/src/doc_links/tests.rs
+++ b/crates/ide/src/doc_links/tests.rs
@@ -40,7 +40,7 @@ fn check_doc_links(ra_fixture: &str) {
.into_iter()
.map(|(_, link, ns)| {
let def = resolve_doc_path_for_def(sema.db, cursor_def, &link, ns)
- .unwrap_or_else(|| panic!("Failed to resolve {}", link));
+ .unwrap_or_else(|| panic!("Failed to resolve {link}"));
let nav_target = def.try_to_nav(sema.db).unwrap();
let range =
FileRange { file_id: nav_target.file_id, range: nav_target.focus_or_full_range() };
diff --git a/crates/ide/src/goto_definition.rs b/crates/ide/src/goto_definition.rs
index 43f7a529bc..73fd518a9e 100644
--- a/crates/ide/src/goto_definition.rs
+++ b/crates/ide/src/goto_definition.rs
@@ -187,7 +187,7 @@ mod tests {
let (analysis, position) = fixture::position(ra_fixture);
let navs = analysis.goto_definition(position).unwrap().expect("no definition found").info;
- assert!(navs.is_empty(), "didn't expect this to resolve anywhere: {:?}", navs)
+ assert!(navs.is_empty(), "didn't expect this to resolve anywhere: {navs:?}")
}
#[test]
diff --git a/crates/ide/src/hover.rs b/crates/ide/src/hover.rs
index 9cbfed4763..bfb19a40bd 100644
--- a/crates/ide/src/hover.rs
+++ b/crates/ide/src/hover.rs
@@ -163,7 +163,7 @@ pub(crate) fn hover(
.filter_map(|(def, node)| hover_for_definition(sema, file_id, def, &node, config))
.reduce(|mut acc: HoverResult, HoverResult { markup, actions }| {
acc.actions.extend(actions);
- acc.markup = Markup::from(format!("{}\n---\n{}", acc.markup, markup));
+ acc.markup = Markup::from(format!("{}\n---\n{markup}", acc.markup));
acc
})
})
diff --git a/crates/ide/src/hover/render.rs b/crates/ide/src/hover/render.rs
index ef434e51c1..4015a411c5 100644
--- a/crates/ide/src/hover/render.rs
+++ b/crates/ide/src/hover/render.rs
@@ -417,8 +417,8 @@ pub(super) fn definition(
Definition::Variant(it) => label_value_and_docs(db, it, |&it| {
if !it.parent_enum(db).is_data_carrying(db) {
match it.eval(db) {
- Ok(x) => Some(format!("{}", x)),
- Err(_) => it.value(db).map(|x| format!("{:?}", x)),
+ Ok(x) => Some(format!("{x}")),
+ Err(_) => it.value(db).map(|x| format!("{x:?}")),
}
} else {
None
@@ -427,7 +427,7 @@ pub(super) fn definition(
Definition::Const(it) => label_value_and_docs(db, it, |it| {
let body = it.eval(db);
match body {
- Ok(x) => Some(format!("{}", x)),
+ Ok(x) => Some(format!("{x}")),
Err(_) => {
let source = it.source(db)?;
let mut body = source.value.body()?.syntax().clone();
@@ -483,7 +483,7 @@ pub(super) fn definition(
fn render_builtin_attr(db: &RootDatabase, attr: hir::BuiltinAttr) -> Option<Markup> {
let name = attr.name(db);
- let desc = format!("#[{}]", name);
+ let desc = format!("#[{name}]");
let AttributeTemplate { word, list, name_value_str } = match attr.template(db) {
Some(template) => template,
@@ -522,7 +522,7 @@ where
V: Display,
{
let label = if let Some(value) = value_extractor(&def) {
- format!("{} // {}", def.display(db), value)
+ format!("{} // {value}", def.display(db))
} else {
def.display(db).to_string()
};
@@ -541,7 +541,7 @@ where
V: Display,
{
let label = if let Some(value) = value_extractor(&def) {
- format!("{} = {}", def.display(db), value)
+ format!("{} = {value}", def.display(db))
} else {
def.display(db).to_string()
};
@@ -605,9 +605,9 @@ fn local(db: &RootDatabase, it: hir::Local) -> Option<Markup> {
} else {
""
};
- format!("{}{}{}: {}", let_kw, is_mut, name, ty)
+ format!("{let_kw}{is_mut}{name}: {ty}")
}
- Either::Right(_) => format!("{}self: {}", is_mut, ty),
+ Either::Right(_) => format!("{is_mut}self: {ty}"),
};
markup(None, desc, None)
}
diff --git a/crates/ide/src/hover/tests.rs b/crates/ide/src/hover/tests.rs
index 3580c45702..c7f241f2fe 100644
--- a/crates/ide/src/hover/tests.rs
+++ b/crates/ide/src/hover/tests.rs
@@ -37,7 +37,7 @@ fn check(ra_fixture: &str, expect: Expect) {
let content = analysis.db.file_text(position.file_id);
let hovered_element = &content[hover.range];
- let actual = format!("*{}*\n{}\n", hovered_element, hover.info.markup);
+ let actual = format!("*{hovered_element}*\n{}\n", hover.info.markup);
expect.assert_eq(&actual)
}
@@ -58,7 +58,7 @@ fn check_hover_no_links(ra_fixture: &str, expect: Expect) {
let content = analysis.db.file_text(position.file_id);
let hovered_element = &content[hover.range];
- let actual = format!("*{}*\n{}\n", hovered_element, hover.info.markup);
+ let actual = format!("*{hovered_element}*\n{}\n", hover.info.markup);
expect.assert_eq(&actual)
}
@@ -79,7 +79,7 @@ fn check_hover_no_markdown(ra_fixture: &str, expect: Expect) {
let content = analysis.db.file_text(position.file_id);
let hovered_element = &content[hover.range];
- let actual = format!("*{}*\n{}\n", hovered_element, hover.info.markup);
+ let actual = format!("*{hovered_element}*\n{}\n", hover.info.markup);
expect.assert_eq(&actual)
}
diff --git a/crates/ide/src/inlay_hints.rs b/crates/ide/src/inlay_hints.rs
index 6b3c15fba7..9fabc6bc4f 100644
--- a/crates/ide/src/inlay_hints.rs
+++ b/crates/ide/src/inlay_hints.rs
@@ -468,7 +468,7 @@ mod tests {
.collect::<Vec<_>>();
expected.sort_by_key(|(range, _)| range.start());
- assert_eq!(expected, actual, "\nExpected:\n{:#?}\n\nActual:\n{:#?}", expected, actual);
+ assert_eq!(expected, actual, "\nExpected:\n{expected:#?}\n\nActual:\n{actual:#?}");
}
#[track_caller]
diff --git a/crates/ide/src/inlay_hints/bind_pat.rs b/crates/ide/src/inlay_hints/bind_pat.rs
index 4e63740098..7127c433c6 100644
--- a/crates/ide/src/inlay_hints/bind_pat.rs
+++ b/crates/ide/src/inlay_hints/bind_pat.rs
@@ -160,7 +160,7 @@ fn is_named_constructor(
let ctor_name = match qual_seg.kind()? {
ast::PathSegmentKind::Name(name_ref) => {
match qual_seg.generic_arg_list().map(|it| it.generic_args()) {
- Some(generics) => format!("{}<{}>", name_ref, generics.format(", ")),
+ Some(generics) => format!("{name_ref}<{}>", generics.format(", ")),
None => name_ref.to_string(),
}
}
@@ -473,7 +473,7 @@ fn main() {
.unwrap();
let actual =
inlay_hints.into_iter().map(|it| (it.range, it.label.to_string())).collect::<Vec<_>>();
- assert_eq!(expected, actual, "\nExpected:\n{:#?}\n\nActual:\n{:#?}", expected, actual);
+ assert_eq!(expected, actual, "\nExpected:\n{expected:#?}\n\nActual:\n{actual:#?}");
}
#[test]
diff --git a/crates/ide/src/markup.rs b/crates/ide/src/markup.rs
index 60c193c40a..de9fef61a7 100644
--- a/crates/ide/src/markup.rs
+++ b/crates/ide/src/markup.rs
@@ -33,6 +33,6 @@ impl Markup {
self.text.as_str()
}
pub fn fenced_block(contents: &impl fmt::Display) -> Markup {
- format!("```rust\n{}\n```", contents).into()
+ format!("```rust\n{contents}\n```").into()
}
}
diff --git a/crates/ide/src/moniker.rs b/crates/ide/src/moniker.rs
index fcbf6d8e58..af5e96d238 100644
--- a/crates/ide/src/moniker.rs
+++ b/crates/ide/src/moniker.rs
@@ -273,7 +273,7 @@ mod tests {
fn no_moniker(ra_fixture: &str) {
let (analysis, position) = fixture::position(ra_fixture);
if let Some(x) = analysis.moniker(position).unwrap() {
- assert_eq!(x.info.len(), 0, "Moniker founded but no moniker expected: {:?}", x);
+ assert_eq!(x.info.len(), 0, "Moniker founded but no moniker expected: {x:?}");
}
}
diff --git a/crates/ide/src/navigation_target.rs b/crates/ide/src/navigation_target.rs
index 9f049e298a..3aa799d43a 100644
--- a/crates/ide/src/navigation_target.rs
+++ b/crates/ide/src/navigation_target.rs
@@ -117,10 +117,10 @@ impl NavigationTarget {
self.full_range
);
if let Some(focus_range) = self.focus_range {
- buf.push_str(&format!(" {:?}", focus_range))
+ buf.push_str(&format!(" {focus_range:?}"))
}
if let Some(container_name) = &self.container_name {
- buf.push_str(&format!(" {}", container_name))
+ buf.push_str(&format!(" {container_name}"))
}
buf
}
diff --git a/crates/ide/src/rename.rs b/crates/ide/src/rename.rs
index b4df043705..595a3b8ac4 100644
--- a/crates/ide/src/rename.rs
+++ b/crates/ide/src/rename.rs
@@ -345,7 +345,7 @@ mod tests {
let (analysis, position) = fixture::position(ra_fixture_before);
let rename_result = analysis
.rename(position, new_name)
- .unwrap_or_else(|err| panic!("Rename to '{}' was cancelled: {}", new_name, err));
+ .unwrap_or_else(|err| panic!("Rename to '{new_name}' was cancelled: {err}"));
match rename_result {
Ok(source_change) => {
let mut text_edit_builder = TextEdit::builder();
@@ -371,7 +371,7 @@ mod tests {
.collect::<String>();
assert_eq!(error_message.trim(), err.to_string());
} else {
- panic!("Rename to '{}' failed unexpectedly: {}", new_name, err)
+ panic!("Rename to '{new_name}' failed unexpectedly: {err}")
}
}
};
@@ -397,11 +397,11 @@ mod tests {
let (analysis, position) = fixture::position(ra_fixture);
let result = analysis
.prepare_rename(position)
- .unwrap_or_else(|err| panic!("PrepareRename was cancelled: {}", err));
+ .unwrap_or_else(|err| panic!("PrepareRename was cancelled: {err}"));
match result {
Ok(RangeInfo { range, info: () }) => {
let source = analysis.file_text(position.file_id).unwrap();
- expect.assert_eq(&format!("{:?}: {}", range, &source[range]))
+ expect.assert_eq(&format!("{range:?}: {}", &source[range]))
}
Err(RenameError(err)) => expect.assert_eq(&err),
};
diff --git a/crates/ide/src/runnables.rs b/crates/ide/src/runnables.rs
index 0181c6b8e4..5b35262aab 100644
--- a/crates/ide/src/runnables.rs
+++ b/crates/ide/src/runnables.rs
@@ -66,12 +66,12 @@ impl Runnable {
// test package::module::testname
pub fn label(&self, target: Option<String>) -> String {
match &self.kind {
- RunnableKind::Test { test_id, .. } => format!("test {}", test_id),
- RunnableKind::TestMod { path } => format!("test-mod {}", path),
- RunnableKind::Bench { test_id } => format!("bench {}", test_id),
- RunnableKind::DocTest { test_id, .. } => format!("doctest {}", test_id),
+ RunnableKind::Test { test_id, .. } => format!("test {test_id}"),
+ RunnableKind::TestMod { path } => format!("test-mod {path}"),
+ RunnableKind::Bench { test_id } => format!("bench {test_id}"),
+ RunnableKind::DocTest { test_id, .. } => format!("doctest {test_id}"),
RunnableKind::Bin => {
- target.map_or_else(|| "run binary".to_string(), |t| format!("run {}", t))
+ target.map_or_else(|| "run binary".to_string(), |t| format!("run {t}"))
}
}
}
@@ -377,7 +377,7 @@ pub(crate) fn runnable_impl(
} else {
String::new()
};
- let mut test_id = format!("{}{}", adt_name, params);
+ let mut test_id = format!("{adt_name}{params}");
test_id.retain(|c| c != ' ');
let test_id = TestId::Path(test_id);
diff --git a/crates/ide/src/static_index.rs b/crates/ide/src/static_index.rs
index a8ffc38708..b6a58f5ef5 100644
--- a/crates/ide/src/static_index.rs
+++ b/crates/ide/src/static_index.rs
@@ -233,13 +233,13 @@ mod tests {
for (range, _) in f.tokens {
let x = FileRange { file_id: f.file_id, range };
if !range_set.contains(&x) {
- panic!("additional range {:?}", x);
+ panic!("additional range {x:?}");
}
range_set.remove(&x);
}
}
if !range_set.is_empty() {
- panic!("unfound ranges {:?}", range_set);
+ panic!("unfound ranges {range_set:?}");
}
}
@@ -254,13 +254,13 @@ mod tests {
continue;
}
if !range_set.contains(&x) {
- panic!("additional definition {:?}", x);
+ panic!("additional definition {x:?}");
}
range_set.remove(&x);
}
}
if !range_set.is_empty() {
- panic!("unfound definitions {:?}", range_set);
+ panic!("unfound definitions {range_set:?}");
}
}
diff --git a/crates/ide/src/status.rs b/crates/ide/src/status.rs
index 20810c25b3..7ce782f93b 100644
--- a/crates/ide/src/status.rs
+++ b/crates/ide/src/status.rs
@@ -52,8 +52,8 @@ pub(crate) fn status(db: &RootDatabase, file_id: Option<FileId>) -> String {
let crate_graph = db.crate_graph();
for krate in crates {
let display_crate = |krate: CrateId| match &crate_graph[krate].display_name {
- Some(it) => format!("{}({:?})", it, krate),
- None => format!("{:?}", krate),
+ Some(it) => format!("{it}({krate:?})"),
+ None => format!("{krate:?}"),
};
format_to!(buf, "Crate: {}\n", display_crate(krate));
let deps = crate_graph[krate]
diff --git a/crates/ide/src/syntax_highlighting/html.rs b/crates/ide/src/syntax_highlighting/html.rs
index e91fd7f125..2c7823069b 100644
--- a/crates/ide/src/syntax_highlighting/html.rs
+++ b/crates/ide/src/syntax_highlighting/html.rs
@@ -52,7 +52,7 @@ pub(crate) fn highlight_as_html(db: &RootDatabase, file_id: FileId, rainbow: boo
let class = r.highlight.to_string().replace('.', " ");
let color = match (rainbow, r.binding_hash) {
(true, Some(hash)) => {
- format!(" data-binding-hash=\"{}\" style=\"color: {};\"", hash, rainbowify(hash))
+ format!(" data-binding-hash=\"{hash}\" style=\"color: {};\"", rainbowify(hash))
}
_ => "".into(),
};
diff --git a/crates/ide/src/syntax_tree.rs b/crates/ide/src/syntax_tree.rs
index 4256fea0f8..bb6827e8a4 100644
--- a/crates/ide/src/syntax_tree.rs
+++ b/crates/ide/src/syntax_tree.rs
@@ -32,7 +32,7 @@ pub(crate) fn syntax_tree(
}
};
- format!("{:#?}", node)
+ format!("{node:#?}")
} else {
format!("{:#?}", parse.tree().syntax())
}
diff --git a/crates/ide/src/typing.rs b/crates/ide/src/typing.rs
index 9118f3c699..eba5a48563 100644
--- a/crates/ide/src/typing.rs
+++ b/crates/ide/src/typing.rs
@@ -397,7 +397,7 @@ mod tests {
fn type_char(char_typed: char, ra_fixture_before: &str, ra_fixture_after: &str) {
let actual = do_type_char(char_typed, ra_fixture_before)
- .unwrap_or_else(|| panic!("typing `{}` did nothing", char_typed));
+ .unwrap_or_else(|| panic!("typing `{char_typed}` did nothing"));
assert_eq_text!(ra_fixture_after, &actual);
}
diff --git a/crates/ide/src/typing/on_enter.rs b/crates/ide/src/typing/on_enter.rs
index 48c1713270..298482f2ab 100644
--- a/crates/ide/src/typing/on_enter.rs
+++ b/crates/ide/src/typing/on_enter.rs
@@ -108,7 +108,7 @@ fn on_enter_in_comment(
}
let indent = node_indent(file, comment.syntax())?;
- let inserted = format!("\n{}{} $0", indent, prefix);
+ let inserted = format!("\n{indent}{prefix} $0");
let delete = if remove_trailing_whitespace {
let trimmed_len = comment.text().trim_end().len() as u32;
let trailing_whitespace_len = comment.text().len() as u32 - trimmed_len;
@@ -129,7 +129,7 @@ fn on_enter_in_block(block: ast::BlockExpr, position: FilePosition) -> Option<Te
let indent = IndentLevel::from_node(block.syntax());
let mut edit = TextEdit::insert(position.offset, format!("\n{}$0", indent + 1));
- edit.union(TextEdit::insert(contents.text_range().end(), format!("\n{}", indent))).ok()?;
+ edit.union(TextEdit::insert(contents.text_range().end(), format!("\n{indent}"))).ok()?;
Some(edit)
}
@@ -140,11 +140,8 @@ fn on_enter_in_use_tree_list(list: ast::UseTreeList, position: FilePosition) ->
let indent = IndentLevel::from_node(list.syntax());
let mut edit = TextEdit::insert(position.offset, format!("\n{}$0", indent + 1));
- edit.union(TextEdit::insert(
- list.r_curly_token()?.text_range().start(),
- format!("\n{}", indent),
- ))
- .ok()?;
+ edit.union(TextEdit::insert(list.r_curly_token()?.text_range().start(), format!("\n{indent}")))
+ .ok()?;
Some(edit)
}
diff --git a/crates/limit/src/lib.rs b/crates/limit/src/lib.rs
index d6a706a7cd..6b2534aa46 100644
--- a/crates/limit/src/lib.rs
+++ b/crates/limit/src/lib.rs
@@ -59,7 +59,7 @@ impl Limit {
.compare_exchange_weak(old_max, other, Ordering::Relaxed, Ordering::Relaxed)
.is_ok()
{
- eprintln!("new max: {}", other);
+ eprintln!("new max: {other}");
}
}
diff --git a/crates/mbe/src/benchmark.rs b/crates/mbe/src/benchmark.rs
index 9c92bae6a1..1915c0b661 100644
--- a/crates/mbe/src/benchmark.rs
+++ b/crates/mbe/src/benchmark.rs
@@ -101,7 +101,7 @@ fn invocation_fixtures(rules: &FxHashMap<String, DeclarativeMacro>) -> Vec<(Stri
}
try_cnt += 1;
if try_cnt > 100 {
- panic!("invocaton fixture {} cannot be generated.\n", name);
+ panic!("invocaton fixture {name} cannot be generated.\n");
}
}
}
@@ -139,7 +139,7 @@ fn invocation_fixtures(rules: &FxHashMap<String, DeclarativeMacro>) -> Vec<(Stri
}
None => (),
- Some(kind) => panic!("Unhandled kind {:?}", kind),
+ Some(kind) => panic!("Unhandled kind {kind:?}"),
},
Op::Leaf(leaf) => parent.token_trees.push(leaf.clone().into()),
Op::Repeat { tokens, kind, separator } => {
diff --git a/crates/mbe/src/syntax_bridge.rs b/crates/mbe/src/syntax_bridge.rs
index cf53c16726..4ca3ba74ae 100644
--- a/crates/mbe/src/syntax_bridge.rs
+++ b/crates/mbe/src/syntax_bridge.rs
@@ -237,7 +237,7 @@ fn convert_tokens<C: TokenConverter>(conv: &mut C) -> tt::Subtree {
let char = match token.to_char(conv) {
Some(c) => c,
None => {
- panic!("Token from lexer must be single char: token = {:#?}", token);
+ panic!("Token from lexer must be single char: token = {token:#?}");
}
};
tt::Leaf::from(tt::Punct { char, spacing, id: conv.id_alloc().alloc(range, synth_id) })
diff --git a/crates/mbe/src/syntax_bridge/tests.rs b/crates/mbe/src/syntax_bridge/tests.rs
index 4e04d2bc1c..606c259e51 100644
--- a/crates/mbe/src/syntax_bridge/tests.rs
+++ b/crates/mbe/src/syntax_bridge/tests.rs
@@ -19,7 +19,7 @@ fn check_punct_spacing(fixture: &str) {
let spacing = match annotation.as_str() {
"Alone" => Spacing::Alone,
"Joint" => Spacing::Joint,
- a => panic!("unknown annotation: {}", a),
+ a => panic!("unknown annotation: {a}"),
};
(token, spacing)
})
@@ -39,7 +39,7 @@ fn check_punct_spacing(fixture: &str) {
cursor = cursor.bump();
}
- assert!(annotations.is_empty(), "unchecked annotations: {:?}", annotations);
+ assert!(annotations.is_empty(), "unchecked annotations: {annotations:?}");
}
#[test]
diff --git a/crates/mbe/src/to_parser_input.rs b/crates/mbe/src/to_parser_input.rs
index 783c3ca4a8..7013aa58b5 100644
--- a/crates/mbe/src/to_parser_input.rs
+++ b/crates/mbe/src/to_parser_input.rs
@@ -60,7 +60,7 @@ pub(crate) fn to_parser_input(buffer: &TokenBuffer<'_>) -> parser::Input {
},
tt::Leaf::Punct(punct) => {
let kind = SyntaxKind::from_char(punct.char)
- .unwrap_or_else(|| panic!("{:#?} is not a valid punct", punct));
+ .unwrap_or_else(|| panic!("{punct:#?} is not a valid punct"));
res.push(kind);
if punct.spacing == tt::Spacing::Joint {
res.was_joint();
diff --git a/crates/parser/src/parser.rs b/crates/parser/src/parser.rs
index b621ebc37c..30bd0b3b16 100644
--- a/crates/parser/src/parser.rs
+++ b/crates/parser/src/parser.rs
@@ -205,7 +205,7 @@ impl<'t> Parser<'t> {
if self.eat(kind) {
return true;
}
- self.error(format!("expected {:?}", kind));
+ self.error(format!("expected {kind:?}"));
false
}
diff --git a/crates/parser/src/tests.rs b/crates/parser/src/tests.rs
index 735c0b3e40..caf1a3e83c 100644
--- a/crates/parser/src/tests.rs
+++ b/crates/parser/src/tests.rs
@@ -37,8 +37,8 @@ fn lex(text: &str) -> String {
let text = lexed.text(i);
let error = lexed.error(i);
- let error = error.map(|err| format!(" error: {}", err)).unwrap_or_default();
- writeln!(res, "{:?} {:?}{}", kind, text, error).unwrap();
+ let error = error.map(|err| format!(" error: {err}")).unwrap_or_default();
+ writeln!(res, "{kind:?} {text:?}{error}").unwrap();
}
res
}
@@ -47,7 +47,7 @@ fn lex(text: &str) -> String {
fn parse_ok() {
for case in TestCase::list("parser/ok") {
let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text);
- assert!(!errors, "errors in an OK file {}:\n{}", case.rs.display(), actual);
+ assert!(!errors, "errors in an OK file {}:\n{actual}", case.rs.display());
expect_file![case.rast].assert_eq(&actual);
}
}
@@ -56,7 +56,7 @@ fn parse_ok() {
fn parse_inline_ok() {
for case in TestCase::list("parser/inline/ok") {
let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text);
- assert!(!errors, "errors in an OK file {}:\n{}", case.rs.display(), actual);
+ assert!(!errors, "errors in an OK file {}:\n{actual}", case.rs.display());
expect_file![case.rast].assert_eq(&actual);
}
}
@@ -65,7 +65,7 @@ fn parse_inline_ok() {
fn parse_err() {
for case in TestCase::list("parser/err") {
let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text);
- assert!(errors, "no errors in an ERR file {}:\n{}", case.rs.display(), actual);
+ assert!(errors, "no errors in an ERR file {}:\n{actual}", case.rs.display());
expect_file![case.rast].assert_eq(&actual)
}
}
@@ -74,7 +74,7 @@ fn parse_err() {
fn parse_inline_err() {
for case in TestCase::list("parser/inline/err") {
let (actual, errors) = parse(TopEntryPoint::SourceFile, &case.text);
- assert!(errors, "no errors in an ERR file {}:\n{}", case.rs.display(), actual);
+ assert!(errors, "no errors in an ERR file {}:\n{actual}", case.rs.display());
expect_file![case.rast].assert_eq(&actual)
}
}
@@ -93,14 +93,14 @@ fn parse(entry: TopEntryPoint, text: &str) -> (String, bool) {
crate::StrStep::Token { kind, text } => {
assert!(depth > 0);
len += text.len();
- write!(buf, "{}", indent).unwrap();
- write!(buf, "{:?} {:?}\n", kind, text).unwrap();
+ write!(buf, "{indent}").unwrap();
+ write!(buf, "{kind:?} {text:?}\n").unwrap();
}
crate::StrStep::Enter { kind } => {
assert!(depth > 0 || len == 0);
depth += 1;
- write!(buf, "{}", indent).unwrap();
- write!(buf, "{:?}\n", kind).unwrap();
+ write!(buf, "{indent}").unwrap();
+ write!(buf, "{kind:?}\n").unwrap();
indent.push_str(" ");
}
crate::StrStep::Exit => {
@@ -111,7 +111,7 @@ fn parse(entry: TopEntryPoint, text: &str) -> (String, bool) {
}
crate::StrStep::Error { msg, pos } => {
assert!(depth > 0);
- errors.push(format!("error {}: {}\n", pos, msg))
+ errors.push(format!("error {pos}: {msg}\n"))
}
});
assert_eq!(
@@ -124,7 +124,7 @@ fn parse(entry: TopEntryPoint, text: &str) -> (String, bool) {
for (token, msg) in lexed.errors() {
let pos = lexed.text_start(token);
- errors.push(format!("error {}: {}\n", pos, msg));
+ errors.push(format!("error {pos}: {msg}\n"));
}
let has_errors = !errors.is_empty();
@@ -149,7 +149,7 @@ impl TestCase {
let mut res = Vec::new();
let read_dir = fs::read_dir(&dir)
- .unwrap_or_else(|err| panic!("can't `read_dir` {}: {}", dir.display(), err));
+ .unwrap_or_else(|err| panic!("can't `read_dir` {}: {err}", dir.display()));
for file in read_dir {
let file = file.unwrap();
let path = file.path();
diff --git a/crates/parser/src/tests/sourcegen_inline_tests.rs b/crates/parser/src/tests/sourcegen_inline_tests.rs
index 7b2b703deb..54e85c0734 100644
--- a/crates/parser/src/tests/sourcegen_inline_tests.rs
+++ b/crates/parser/src/tests/sourcegen_inline_tests.rs
@@ -23,7 +23,7 @@ fn sourcegen_parser_tests() {
// ok is never actually read, but it needs to be specified to create a Test in existing_tests
let existing = existing_tests(&tests_dir, true);
for t in existing.keys().filter(|&t| !tests.contains_key(t)) {
- panic!("Test is deleted: {}", t);
+ panic!("Test is deleted: {t}");
}
let mut new_idx = existing.len() + 1;
@@ -31,7 +31,7 @@ fn sourcegen_parser_tests() {
let path = match existing.get(name) {
Some((path, _test)) => path.clone(),
None => {
- let file_name = format!("{:04}_{}.rs", new_idx, name);
+ let file_name = format!("{new_idx:04}_{name}.rs");
new_idx += 1;
tests_dir.join(file_name)
}
@@ -116,7 +116,7 @@ fn existing_tests(dir: &Path, ok: bool) -> HashMap<String, (PathBuf, Test)> {
let text = fs::read_to_string(&path).unwrap();
let test = Test { name: name.clone(), text, ok };
if let Some(old) = res.insert(name, (path, test)) {
- println!("Duplicate test: {:?}", old);
+ println!("Duplicate test: {old:?}");
}
}
res
diff --git a/crates/proc-macro-api/src/lib.rs b/crates/proc-macro-api/src/lib.rs
index a3ea05f4af..7921fda331 100644
--- a/crates/proc-macro-api/src/lib.rs
+++ b/crates/proc-macro-api/src/lib.rs
@@ -60,7 +60,7 @@ impl MacroDylib {
let info = version::read_dylib_info(&path)?;
if info.version.0 < 1 || info.version.1 < 47 {
- let msg = format!("proc-macro {} built by {:#?} is not supported by rust-analyzer, please update your Rust version.", path.display(), info);
+ let msg = format!("proc-macro {} built by {info:#?} is not supported by rust-analyzer, please update your Rust version.", path.display());
return Err(io::Error::new(io::ErrorKind::InvalidData, msg));
}
diff --git a/crates/proc-macro-api/src/msg/flat.rs b/crates/proc-macro-api/src/msg/flat.rs
index 268a03bb53..f50ecccf1e 100644
--- a/crates/proc-macro-api/src/msg/flat.rs
+++ b/crates/proc-macro-api/src/msg/flat.rs
@@ -137,7 +137,7 @@ impl SubtreeRepr {
1 => Some(tt::DelimiterKind::Parenthesis),
2 => Some(tt::DelimiterKind::Brace),
3 => Some(tt::DelimiterKind::Bracket),
- other => panic!("bad kind {}", other),
+ other => panic!("bad kind {other}"),
};
SubtreeRepr { id: TokenId(id), kind, tt: [lo, len] }
}
@@ -164,7 +164,7 @@ impl PunctRepr {
let spacing = match spacing {
0 => tt::Spacing::Alone,
1 => tt::Spacing::Joint,
- other => panic!("bad spacing {}", other),
+ other => panic!("bad spacing {other}"),
};
PunctRepr { id: TokenId(id), char: char.try_into().unwrap(), spacing }
}
@@ -312,7 +312,7 @@ impl Reader {
})
.into()
}
- other => panic!("bad tag: {}", other),
+ other => panic!("bad tag: {other}"),
}
})
.collect(),
diff --git a/crates/proc-macro-api/src/version.rs b/crates/proc-macro-api/src/version.rs
index 030531b80d..40125c2a51 100644
--- a/crates/proc-macro-api/src/version.rs
+++ b/crates/proc-macro-api/src/version.rs
@@ -125,7 +125,7 @@ pub fn read_version(dylib_path: &AbsPath) -> io::Result<String> {
_ => {
return Err(io::Error::new(
io::ErrorKind::InvalidData,
- format!("unsupported metadata version {}", version),
+ format!("unsupported metadata version {version}"),
));
}
}
diff --git a/crates/proc-macro-srv/src/abis/abi_1_58/proc_macro/mod.rs b/crates/proc-macro-srv/src/abis/abi_1_58/proc_macro/mod.rs
index a405497f3c..c5145d00e3 100644
--- a/crates/proc-macro-srv/src/abis/abi_1_58/proc_macro/mod.rs
+++ b/crates/proc-macro-srv/src/abis/abi_1_58/proc_macro/mod.rs
@@ -877,7 +877,7 @@ impl Literal {
/// example if it is infinity or NaN this function will panic.
pub fn f32_unsuffixed(n: f32) -> Literal {
if !n.is_finite() {
- panic!("Invalid float literal {}", n);
+ panic!("Invalid float literal {n}");
}
let mut repr = n.to_string();
if !repr.contains('.') {
@@ -901,7 +901,7 @@ impl Literal {
/// example if it is infinity or NaN this function will panic.
pub fn f32_suffixed(n: f32) -> Literal {
if !n.is_finite() {
- panic!("Invalid float literal {}", n);
+ panic!("Invalid float literal {n}");
}
Literal(bridge::client::Literal::f32(&n.to_string()))
}
@@ -920,7 +920,7 @@ impl Literal {
/// example if it is infinity or NaN this function will panic.
pub fn f64_unsuffixed(n: f64) -> Literal {
if !n.is_finite() {
- panic!("Invalid float literal {}", n);
+ panic!("Invalid float literal {n}");
}
let mut repr = n.to_string();
if !repr.contains('.') {
@@ -944,7 +944,7 @@ impl Literal {
/// example if it is infinity or NaN this function will panic.
pub fn f64_suffixed(n: f64) -> Literal {
if !n.is_finite() {
- panic!("Invalid float literal {}", n);
+ panic!("Invalid float literal {n}");
}
Literal(bridge::client::Literal::f64(&n.to_string()))
}
diff --git a/crates/proc-macro-srv/src/abis/abi_1_58/ra_server.rs b/crates/proc-macro-srv/src/abis/abi_1_58/ra_server.rs
index c19684850f..22d4ad94f7 100644
--- a/crates/proc-macro-srv/src/abis/abi_1_58/ra_server.rs
+++ b/crates/proc-macro-srv/src/abis/abi_1_58/ra_server.rs
@@ -548,13 +548,13 @@ impl server::Literal for RustAnalyzer {
fn f32(&mut self, n: &str) -> Self::Literal {
let n: f32 = n.parse().unwrap();
- let text = format!("{}f32", n);
+ let text = format!("{n}f32");
Literal { text: text.into(), id: tt::TokenId::unspecified() }
}
fn f64(&mut self, n: &str) -> Self::Literal {
let n: f64 = n.parse().unwrap();
- let text = format!("{}f64", n);
+ let text = format!("{n}f64");
Literal { text: text.into(), id: tt::TokenId::unspecified() }
}
@@ -563,11 +563,11 @@ impl server::Literal for RustAnalyzer {
for ch in string.chars() {
escaped.extend(ch.escape_debug());
}
- Literal { text: format!("\"{}\"", escaped).into(), id: tt::TokenId::unspecified() }
+ Literal { text: format!("\"{escaped}\"").into(), id: tt::TokenId::unspecified() }
}
fn character(&mut self, ch: char) -> Self::Literal {
- Literal { text: format!("'{}'", ch).into(), id: tt::TokenId::unspecified() }
+ Literal { text: format!("'{ch}'").into(), id: tt::TokenId::unspecified() }
}
fn byte_string(&mut self, bytes: &[u8]) -> Self::Literal {
@@ -578,7 +578,7 @@ impl server::Literal for RustAnalyzer {
.map(Into::<char>::into)
.collect::<String>();
- Literal { text: format!("b\"{}\"", string).into(), id: tt::TokenId::unspecified() }
+ Literal { text: format!("b\"{string}\"").into(), id: tt::TokenId::unspecified() }
}
fn span(&mut self, literal: &Self::Literal) -> Self::Span {
diff --git a/crates/proc-macro-srv/src/abis/abi_1_63/ra_server.rs b/crates/proc-macro-srv/src/abis/abi_1_63/ra_server.rs
index eb9d7a94b5..f82f20c37b 100644
--- a/crates/proc-macro-srv/src/abis/abi_1_63/ra_server.rs
+++ b/crates/proc-macro-srv/src/abis/abi_1_63/ra_server.rs
@@ -563,13 +563,13 @@ impl server::Literal for RustAnalyzer {
fn f32(&mut self, n: &str) -> Self::Literal {
let n: f32 = n.parse().unwrap();
- let text = format!("{}f32", n);
+ let text = format!("{n}f32");
Literal { text: text.into(), id: tt::TokenId::unspecified() }
}
fn f64(&mut self, n: &str) -> Self::Literal {
let n: f64 = n.parse().unwrap();
- let text = format!("{}f64", n);
+ let text = format!("{n}f64");
Literal { text: text.into(), id: tt::TokenId::unspecified() }
}
@@ -578,11 +578,11 @@ impl server::Literal for RustAnalyzer {
for ch in string.chars() {
escaped.extend(ch.escape_debug());
}
- Literal { text: format!("\"{}\"", escaped).into(), id: tt::TokenId::unspecified() }
+ Literal { text: format!("\"{escaped}\"").into(), id: tt::TokenId::unspecified() }
}
fn character(&mut self, ch: char) -> Self::Literal {
- Literal { text: format!("'{}'", ch).into(), id: tt::TokenId::unspecified() }
+ Literal { text: format!("'{ch}'").into(), id: tt::TokenId::unspecified() }
}
fn byte_string(&mut self, bytes: &[u8]) -> Self::Literal {
@@ -593,7 +593,7 @@ impl server::Literal for RustAnalyzer {
.map(Into::<char>::into)
.collect::<String>();
- Literal { text: format!("b\"{}\"", string).into(), id: tt::TokenId::unspecified() }
+ Literal { text: format!("b\"{string}\"").into(), id: tt::TokenId::unspecified() }
}
fn span(&mut self, literal: &Self::Literal) -> Self::Span {
diff --git a/crates/proc-macro-srv/src/lib.rs b/crates/proc-macro-srv/src/lib.rs
index b4f5ebd157..2eb939a7ce 100644
--- a/crates/proc-macro-srv/src/lib.rs
+++ b/crates/proc-macro-srv/src/lib.rs
@@ -48,7 +48,7 @@ impl ProcMacroSrv {
pub fn expand(&mut self, task: ExpandMacro) -> Result<FlatTree, PanicMessage> {
let expander = self.expander(task.lib.as_ref()).map_err(|err| {
debug_assert!(false, "should list macros before asking to expand");
- PanicMessage(format!("failed to load macro: {}", err))
+ PanicMessage(format!("failed to load macro: {err}"))
})?;
let prev_env = EnvSnapshot::new();
@@ -59,7 +59,7 @@ impl ProcMacroSrv {
Some(dir) => {
let prev_working_dir = std::env::current_dir().ok();
if let Err(err) = std::env::set_current_dir(&dir) {
- eprintln!("Failed to set the current working dir to {}. Error: {:?}", dir, err)
+ eprintln!("Failed to set the current working dir to {dir}. Error: {err:?}")
}
prev_working_dir
}
@@ -112,14 +112,16 @@ impl ProcMacroSrv {
}
fn expander(&mut self, path: &Path) -> Result<&dylib::Expander, String> {
- let time = fs::metadata(path).and_then(|it| it.modified()).map_err(|err| {
- format!("Failed to get file metadata for {}: {}", path.display(), err)
- })?;
+ let time = fs::metadata(path)
+ .and_then(|it| it.modified())
+ .map_err(|err| format!("Failed to get file metadata for {}: {err}", path.display()))?;
Ok(match self.expanders.entry((path.to_path_buf(), time)) {
- Entry::Vacant(v) => v.insert(dylib::Expander::new(path).map_err(|err| {
- format!("Cannot create expander for {}: {}", path.display(), err)
- })?),
+ Entry::Vacant(v) => {
+ v.insert(dylib::Expander::new(path).map_err(|err| {
+ format!("Cannot create expander for {}: {err}", path.display())
+ })?)
+ }
Entry::Occupied(e) => e.into_mut(),
})
}
diff --git a/crates/proc-macro-test/build.rs b/crates/proc-macro-test/build.rs
index dd6203e2ee..340e9f93ed 100644
--- a/crates/proc-macro-test/build.rs
+++ b/crates/proc-macro-test/build.rs
@@ -71,7 +71,7 @@ fn main() {
.arg("--target-dir")
.arg(&target_dir);
- println!("Running {:?}", cmd);
+ println!("Running {cmd:?}");
let output = cmd.output().unwrap();
if !output.status.success() {
@@ -87,7 +87,7 @@ fn main() {
for message in Message::parse_stream(output.stdout.as_slice()) {
if let Message::CompilerArtifact(artifact) = message.unwrap() {
if artifact.target.kind.contains(&"proc-macro".to_string()) {
- let repr = format!("{} {}", name, version);
+ let repr = format!("{name} {version}");
if artifact.package_id.repr.starts_with(&repr) {
artifact_path = Some(PathBuf::from(&artifact.filenames[0]));
}
diff --git a/crates/profile/src/hprof.rs b/crates/profile/src/hprof.rs
index deea0b0dd8..ea89a89c5c 100644
--- a/crates/profile/src/hprof.rs
+++ b/crates/profile/src/hprof.rs
@@ -238,7 +238,7 @@ impl ProfileStack {
self.heartbeat(frame.heartbeats);
let avg_span = duration / (frame.heartbeats + 1);
if avg_span > self.filter.heartbeat_longer_than {
- eprintln!("Too few heartbeats {} ({}/{:?})?", label, frame.heartbeats, duration);
+ eprintln!("Too few heartbeats {label} ({}/{duration:?})?", frame.heartbeats);
}
}
@@ -275,7 +275,7 @@ fn print(
out: &mut impl Write,
) {
let current_indent = " ".repeat(level as usize);
- let detail = tree[curr].detail.as_ref().map(|it| format!(" @ {}", it)).unwrap_or_default();
+ let detail = tree[curr].detail.as_ref().map(|it| format!(" @ {it}")).unwrap_or_default();
writeln!(
out,
"{}{} - {}{}",
@@ -302,13 +302,13 @@ fn print(
}
for (child_msg, (duration, count)) in &short_children {
- writeln!(out, " {}{} - {} ({} calls)", current_indent, ms(*duration), child_msg, count)
+ writeln!(out, " {current_indent}{} - {child_msg} ({count} calls)", ms(*duration))
.expect("printing profiling info");
}
let unaccounted = tree[curr].duration - accounted_for;
if tree.children(curr).next().is_some() && unaccounted > longer_than {
- writeln!(out, " {}{} - ???", current_indent, ms(unaccounted))
+ writeln!(out, " {current_indent}{} - ???", ms(unaccounted))
.expect("printing profiling info");
}
}
@@ -320,7 +320,7 @@ impl fmt::Display for ms {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.0.as_millis() {
0 => f.write_str(" 0 "),
- n => write!(f, "{:5}ms", n),
+ n => write!(f, "{n:5}ms"),
}
}
}
diff --git a/crates/profile/src/memory_usage.rs b/crates/profile/src/memory_usage.rs
index ee882b4cb4..8017f86579 100644
--- a/crates/profile/src/memory_usage.rs
+++ b/crates/profile/src/memory_usage.rs
@@ -109,7 +109,7 @@ impl fmt::Display for Bytes {
suffix = "mb";
}
}
- f.pad(&format!("{}{}", value, suffix))
+ f.pad(&format!("{value}{suffix}"))
}
}
diff --git a/crates/profile/src/stop_watch.rs b/crates/profile/src/stop_watch.rs
index 6258328482..71303d5a63 100644
--- a/crates/profile/src/stop_watch.rs
+++ b/crates/profile/src/stop_watch.rs
@@ -33,11 +33,11 @@ impl StopWatch {
if *PERF_ENABLED {
let mut counter = perf_event::Builder::new()
.build()
- .map_err(|err| eprintln!("Failed to create perf counter: {}", err))
+ .map_err(|err| eprintln!("Failed to create perf counter: {err}"))
.ok();
if let Some(counter) = &mut counter {
if let Err(err) = counter.enable() {
- eprintln!("Failed to start perf counter: {}", err)
+ eprintln!("Failed to start perf counter: {err}")
}
}
counter
@@ -64,7 +64,7 @@ impl StopWatch {
#[cfg(target_os = "linux")]
let instructions = self.counter.as_mut().and_then(|it| {
- it.read().map_err(|err| eprintln!("Failed to read perf counter: {}", err)).ok()
+ it.read().map_err(|err| eprintln!("Failed to read perf counter: {err}")).ok()
});
#[cfg(not(target_os = "linux"))]
let instructions = None;
@@ -91,10 +91,10 @@ impl fmt::Display for StopWatchSpan {
instructions /= 1000;
prefix = "g";
}
- write!(f, ", {}{}instr", instructions, prefix)?;
+ write!(f, ", {instructions}{prefix}instr")?;
}
if let Some(memory) = self.memory {
- write!(f, ", {}", memory)?;
+ write!(f, ", {memory}")?;
}
Ok(())
}
diff --git a/crates/project-model/src/build_scripts.rs b/crates/project-model/src/build_scripts.rs
index ae2b41f27d..ae9cba52de 100644
--- a/crates/project-model/src/build_scripts.rs
+++ b/crates/project-model/src/build_scripts.rs
@@ -295,7 +295,7 @@ impl WorkspaceBuildScripts {
match message {
Message::BuildScriptExecuted(mut message) => {
with_output_for(&message.package_id.repr, &mut |name, data| {
- progress(format!("running build-script: {}", name));
+ progress(format!("running build-script: {name}"));
let cfgs = {
let mut acc = Vec::new();
for cfg in &message.cfgs {
@@ -334,7 +334,7 @@ impl WorkspaceBuildScripts {
}
Message::CompilerArtifact(message) => {
with_output_for(&message.package_id.repr, &mut |name, data| {
- progress(format!("building proc-macros: {}", name));
+ progress(format!("building proc-macros: {name}"));
if message.target.kind.iter().any(|k| k == "proc-macro") {
// Skip rmeta file
if let Some(filename) =
diff --git a/crates/project-model/src/cfg_flag.rs b/crates/project-model/src/cfg_flag.rs
index f3dd8f5133..c134b78ab3 100644
--- a/crates/project-model/src/cfg_flag.rs
+++ b/crates/project-model/src/cfg_flag.rs
@@ -17,7 +17,7 @@ impl FromStr for CfgFlag {
let res = match s.split_once('=') {
Some((key, value)) => {
if !(value.starts_with('"') && value.ends_with('"')) {
- return Err(format!("Invalid cfg ({:?}), value should be in quotes", s));
+ return Err(format!("Invalid cfg ({s:?}), value should be in quotes"));
}
let key = key.to_string();
let value = value[1..value.len() - 1].to_string();
diff --git a/crates/project-model/src/lib.rs b/crates/project-model/src/lib.rs
index 835f2b3dd0..e2f09bad2d 100644
--- a/crates/project-model/src/lib.rs
+++ b/crates/project-model/src/lib.rs
@@ -146,7 +146,7 @@ impl ProjectManifest {
}
fn utf8_stdout(mut cmd: Command) -> Result<String> {
- let output = cmd.output().with_context(|| format!("{:?} failed", cmd))?;
+ let output = cmd.output().with_context(|| format!("{cmd:?} failed"))?;
if !output.status.success() {
match String::from_utf8(output.stderr) {
Ok(stderr) if !stderr.is_empty() => {
diff --git a/crates/project-model/src/project_json.rs b/crates/project-model/src/project_json.rs
index 5133a14d53..9af0eafe9f 100644
--- a/crates/project-model/src/project_json.rs
+++ b/crates/project-model/src/project_json.rs
@@ -197,5 +197,5 @@ where
D: de::Deserializer<'de>,
{
let name = String::deserialize(de)?;
- CrateName::new(&name).map_err(|err| de::Error::custom(format!("invalid crate name: {:?}", err)))
+ CrateName::new(&name).map_err(|err| de::Error::custom(format!("invalid crate name: {err:?}")))
}
diff --git a/crates/project-model/src/sysroot.rs b/crates/project-model/src/sysroot.rs
index f6c09a27c9..b62b2026b6 100644
--- a/crates/project-model/src/sysroot.rs
+++ b/crates/project-model/src/sysroot.rs
@@ -104,7 +104,7 @@ impl Sysroot {
for path in SYSROOT_CRATES.trim().lines() {
let name = path.split('/').last().unwrap();
- let root = [format!("{}/src/lib.rs", path), format!("lib{}/lib.rs", path)]
+ let root = [format!("{path}/src/lib.rs"), format!("lib{path}/lib.rs")]
.into_iter()
.map(|it| sysroot.src_root.join(it))
.filter_map(|it| ManifestPath::try_from(it).ok())
diff --git a/crates/project-model/src/tests.rs b/crates/project-model/src/tests.rs
index adb106e979..2bb9ebf998 100644
--- a/crates/project-model/src/tests.rs
+++ b/crates/project-model/src/tests.rs
@@ -107,7 +107,7 @@ fn to_crate_graph(project_workspace: ProjectWorkspace) -> CrateGraph {
}
fn check_crate_graph(crate_graph: CrateGraph, expect: Expect) {
- let mut crate_graph = format!("{:#?}", crate_graph);
+ let mut crate_graph = format!("{crate_graph:#?}");
replace_root(&mut crate_graph, false);
expect.assert_eq(&crate_graph);
}
diff --git a/crates/rust-analyzer/src/bin/logger.rs b/crates/rust-analyzer/src/bin/logger.rs
index ac10721d95..8caadecd85 100644
--- a/crates/rust-analyzer/src/bin/logger.rs
+++ b/crates/rust-analyzer/src/bin/logger.rs
@@ -81,9 +81,9 @@ impl Logger {
Registry::default()
.with(
self.filter
- .add_directive(format!("chalk_solve={}", val).parse()?)
- .add_directive(format!("chalk_ir={}", val).parse()?)
- .add_directive(format!("chalk_recursive={}", val).parse()?),
+ .add_directive(format!("chalk_solve={val}").parse()?)
+ .add_directive(format!("chalk_ir={val}").parse()?)
+ .add_directive(format!("chalk_recursive={val}").parse()?),
)
.with(ra_fmt_layer)
.with(chalk_layer)
@@ -124,7 +124,7 @@ where
Some(log) => log.target(),
None => event.metadata().target(),
};
- write!(writer, "[{} {}] ", level, target)?;
+ write!(writer, "[{level} {target}] ")?;
// Write spans and fields of each span
ctx.visit_spans(|span| {
@@ -140,7 +140,7 @@ where
let fields = &ext.get::<FormattedFields<N>>().expect("will never be `None`");
if !fields.is_empty() {
- write!(writer, "{{{}}}", fields)?;
+ write!(writer, "{{{fields}}}")?;
}
write!(writer, ": ")?;
diff --git a/crates/rust-analyzer/src/bin/main.rs b/crates/rust-analyzer/src/bin/main.rs
index ec5053e991..53710749de 100644
--- a/crates/rust-analyzer/src/bin/main.rs
+++ b/crates/rust-analyzer/src/bin/main.rs
@@ -30,7 +30,7 @@ fn main() {
let code = match rustc_wrapper::run_rustc_skipping_cargo_checking(rustc, args.collect()) {
Ok(rustc_wrapper::ExitCode(code)) => code.unwrap_or(102),
Err(err) => {
- eprintln!("{}", err);
+ eprintln!("{err}");
101
}
};
@@ -40,7 +40,7 @@ fn main() {
let flags = flags::RustAnalyzer::from_env_or_exit();
if let Err(err) = try_main(flags) {
tracing::error!("Unexpected error: {}", err);
- eprintln!("{}", err);
+ eprintln!("{err}");
process::exit(101);
}
}
diff --git a/crates/rust-analyzer/src/cli.rs b/crates/rust-analyzer/src/cli.rs
index 60ba67e25f..d5d877680a 100644
--- a/crates/rust-analyzer/src/cli.rs
+++ b/crates/rust-analyzer/src/cli.rs
@@ -46,7 +46,7 @@ fn report_metric(metric: &str, value: u64, unit: &str) {
if std::env::var("RA_METRICS").is_err() {
return;
}
- println!("METRIC:{}:{}:{}", metric, value, unit)
+ println!("METRIC:{metric}:{value}:{unit}")
}
fn print_memory_usage(mut host: AnalysisHost, vfs: Vfs) {
@@ -65,6 +65,6 @@ fn print_memory_usage(mut host: AnalysisHost, vfs: Vfs) {
for (name, bytes) in mem {
// NOTE: Not a debug print, so avoid going through the `eprintln` defined above.
- eprintln!("{:>8} {}", bytes, name);
+ eprintln!("{bytes:>8} {name}");
}
}
diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs
index 01fccc83e8..053db5fc53 100644
--- a/crates/rust-analyzer/src/cli/analysis_stats.rs
+++ b/crates/rust-analyzer/src/cli/analysis_stats.rs
@@ -87,9 +87,9 @@ impl flags::AnalysisStats {
load_workspace(workspace, &cargo_config.extra_env, &load_cargo_config)?;
let db = host.raw_database();
eprint!("{:<20} {}", "Database loaded:", db_load_sw.elapsed());
- eprint!(" (metadata {}", metadata_time);
+ eprint!(" (metadata {metadata_time}");
if let Some(build_scripts_time) = build_scripts_time {
- eprint!("; build {}", build_scripts_time);
+ eprint!("; build {build_scripts_time}");
}
eprintln!(")");
@@ -118,7 +118,7 @@ impl flags::AnalysisStats {
shuffle(&mut rng, &mut visit_queue);
}
- eprint!(" crates: {}", num_crates);
+ eprint!(" crates: {num_crates}");
let mut num_decls = 0;
let mut funcs = Vec::new();
while let Some(module) = visit_queue.pop() {
@@ -142,7 +142,7 @@ impl flags::AnalysisStats {
}
}
}
- eprintln!(", mods: {}, decls: {}, fns: {}", visited_modules.len(), num_decls, funcs.len());
+ eprintln!(", mods: {}, decls: {num_decls}, fns: {}", visited_modules.len(), funcs.len());
eprintln!("{:<20} {}", "Item Collection:", analysis_sw.elapsed());
if self.randomize {
@@ -154,7 +154,7 @@ impl flags::AnalysisStats {
}
let total_span = analysis_sw.elapsed();
- eprintln!("{:<20} {}", "Total:", total_span);
+ eprintln!("{:<20} {total_span}", "Total:");
report_metric("total time", total_span.time.as_millis() as u64, "ms");
if let Some(instructions) = total_span.instructions {
report_metric("total instructions", instructions, "#instr");
@@ -179,7 +179,7 @@ impl flags::AnalysisStats {
total_macro_file_size += syntax_len(val.syntax_node())
}
}
- eprintln!("source files: {}, macro files: {}", total_file_size, total_macro_file_size);
+ eprintln!("source files: {total_file_size}, macro files: {total_macro_file_size}");
}
if self.memory_usage && verbosity.is_verbose() {
@@ -239,7 +239,7 @@ impl flags::AnalysisStats {
continue;
}
}
- let mut msg = format!("processing: {}", full_name);
+ let mut msg = format!("processing: {full_name}");
if verbosity.is_verbose() {
if let Some(src) = f.source(db) {
let original_file = src.file_id.original_file(db);
@@ -275,7 +275,7 @@ impl flags::AnalysisStats {
end.col,
));
} else {
- bar.println(format!("{}: Unknown type", name,));
+ bar.println(format!("{name}: Unknown type",));
}
}
true
@@ -402,7 +402,7 @@ fn location_csv(
let text_range = original_range.range;
let (start, end) =
(line_index.line_col(text_range.start()), line_index.line_col(text_range.end()));
- format!("{},{}:{},{}:{}", path, start.line + 1, start.col, end.line + 1, end.col)
+ format!("{path},{}:{},{}:{}", start.line + 1, start.col, end.line + 1, end.col)
}
fn expr_syntax_range(
diff --git a/crates/rust-analyzer/src/cli/diagnostics.rs b/crates/rust-analyzer/src/cli/diagnostics.rs
index 247007db0a..fd5b3ce61f 100644
--- a/crates/rust-analyzer/src/cli/diagnostics.rs
+++ b/crates/rust-analyzer/src/cli/diagnostics.rs
@@ -40,7 +40,7 @@ impl flags::Diagnostics {
if !visited_files.contains(&file_id) {
let crate_name =
module.krate().display_name(db).as_deref().unwrap_or("unknown").to_string();
- println!("processing crate: {}, module: {}", crate_name, _vfs.file_path(file_id));
+ println!("processing crate: {crate_name}, module: {}", _vfs.file_path(file_id));
for diagnostic in analysis
.diagnostics(
&DiagnosticsConfig::test_sample(),
@@ -53,7 +53,7 @@ impl flags::Diagnostics {
found_error = true;
}
- println!("{:?}", diagnostic);
+ println!("{diagnostic:?}");
}
visited_files.insert(file_id);
diff --git a/crates/rust-analyzer/src/cli/flags.rs b/crates/rust-analyzer/src/cli/flags.rs
index 5bcc97e226..770612cc94 100644
--- a/crates/rust-analyzer/src/cli/flags.rs
+++ b/crates/rust-analyzer/src/cli/flags.rs
@@ -255,7 +255,7 @@ impl FromStr for OutputFormat {
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"csv" => Ok(Self::Csv),
- _ => Err(format!("unknown output format `{}`", s)),
+ _ => Err(format!("unknown output format `{s}`")),
}
}
}
diff --git a/crates/rust-analyzer/src/cli/highlight.rs b/crates/rust-analyzer/src/cli/highlight.rs
index 4f9b362f1b..84607b9fd5 100644
--- a/crates/rust-analyzer/src/cli/highlight.rs
+++ b/crates/rust-analyzer/src/cli/highlight.rs
@@ -8,7 +8,7 @@ impl flags::Highlight {
pub fn run(self) -> anyhow::Result<()> {
let (analysis, file_id) = Analysis::from_single_file(read_stdin()?);
let html = analysis.highlight_as_html(file_id, self.rainbow).unwrap();
- println!("{}", html);
+ println!("{html}");
Ok(())
}
}
diff --git a/crates/rust-analyzer/src/cli/lsif.rs b/crates/rust-analyzer/src/cli/lsif.rs
index 4316177841..af8356d041 100644
--- a/crates/rust-analyzer/src/cli/lsif.rs
+++ b/crates/rust-analyzer/src/cli/lsif.rs
@@ -83,7 +83,7 @@ impl LsifManager<'_> {
// FIXME: support file in addition to stdout here
fn emit(&self, data: &str) {
- println!("{}", data);
+ println!("{data}");
}
fn get_token_id(&mut self, id: TokenId) -> Id {
diff --git a/crates/rust-analyzer/src/cli/progress_report.rs b/crates/rust-analyzer/src/cli/progress_report.rs
index 5a2dc39d52..d459dd115c 100644
--- a/crates/rust-analyzer/src/cli/progress_report.rs
+++ b/crates/rust-analyzer/src/cli/progress_report.rs
@@ -67,7 +67,7 @@ impl ProgressReport {
return;
}
let percent = (self.curr * 100.0) as u32;
- let text = format!("{}/{} {:3>}% {}", self.pos, self.len, percent, self.msg);
+ let text = format!("{}/{} {percent:3>}% {}", self.pos, self.len, self.msg);
self.update_text(&text);
}
@@ -114,7 +114,7 @@ impl ProgressReport {
// Fill all last text to space and return the cursor
let spaces = " ".repeat(self.text.len());
let backspaces = "\x08".repeat(self.text.len());
- print!("{}{}{}", backspaces, spaces, backspaces);
+ print!("{backspaces}{spaces}{backspaces}");
let _ = io::stdout().flush();
self.text = String::new();
diff --git a/crates/rust-analyzer/src/cli/scip.rs b/crates/rust-analyzer/src/cli/scip.rs
index 9edd045ab0..b1a803d28c 100644
--- a/crates/rust-analyzer/src/cli/scip.rs
+++ b/crates/rust-analyzer/src/cli/scip.rs
@@ -28,7 +28,7 @@ impl flags::Scip {
let now = Instant::now();
let cargo_config = CargoConfig::default();
- let no_progress = &|s| (eprintln!("rust-analyzer: Loading {}", s));
+ let no_progress = &|s| (eprintln!("rust-analyzer: Loading {s}"));
let load_cargo_config = LoadCargoConfig {
load_out_dirs_from_check: true,
with_proc_macro: true,
@@ -209,7 +209,7 @@ fn new_descriptor_str(
fn new_descriptor(name: Name, suffix: scip_types::descriptor::Suffix) -> scip_types::Descriptor {
let mut name = name.to_string();
if name.contains("'") {
- name = format!("`{}`", name);
+ name = format!("`{name}`");
}
new_descriptor_str(name.as_str(), suffix)
@@ -303,11 +303,11 @@ mod test {
}
if expected == "" {
- assert!(found_symbol.is_none(), "must have no symbols {:?}", found_symbol);
+ assert!(found_symbol.is_none(), "must have no symbols {found_symbol:?}");
return;
}
- assert!(found_symbol.is_some(), "must have one symbol {:?}", found_symbol);
+ assert!(found_symbol.is_some(), "must have one symbol {found_symbol:?}");
let res = found_symbol.unwrap();
let formatted = format_symbol(res);
assert_eq!(formatted, expected);
diff --git a/crates/rust-analyzer/src/cli/ssr.rs b/crates/rust-analyzer/src/cli/ssr.rs
index e8291782b7..84c4891716 100644
--- a/crates/rust-analyzer/src/cli/ssr.rs
+++ b/crates/rust-analyzer/src/cli/ssr.rs
@@ -70,7 +70,7 @@ impl flags::Search {
let sr = db.source_root(root);
for file_id in sr.iter() {
for debug_info in match_finder.debug_where_text_equal(file_id, debug_snippet) {
- println!("{:#?}", debug_info);
+ println!("{debug_info:#?}");
}
}
}
diff --git a/crates/rust-analyzer/src/cli/symbols.rs b/crates/rust-analyzer/src/cli/symbols.rs
index 84659b5ea9..9fad6723af 100644
--- a/crates/rust-analyzer/src/cli/symbols.rs
+++ b/crates/rust-analyzer/src/cli/symbols.rs
@@ -9,7 +9,7 @@ impl flags::Symbols {
let (analysis, file_id) = Analysis::from_single_file(text);
let structure = analysis.file_structure(file_id).unwrap();
for s in structure {
- println!("{:?}", s);
+ println!("{s:?}");
}
Ok(())
}
diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs
index 76ff2d5859..ac496a7a9f 100644
--- a/crates/rust-analyzer/src/config.rs
+++ b/crates/rust-analyzer/src/config.rs
@@ -1869,14 +1869,14 @@ fn schema(fields: &[(&'static str, &'static str, &[&str], &str)]) -> serde_json:
fn key(f: &str) -> &str {
f.splitn(2, '_').next().unwrap()
}
- assert!(key(f1) <= key(f2), "wrong field order: {:?} {:?}", f1, f2);
+ assert!(key(f1) <= key(f2), "wrong field order: {f1:?} {f2:?}");
}
let map = fields
.iter()
.map(|(field, ty, doc, default)| {
let name = field.replace('_', ".");
- let name = format!("rust-analyzer.{}", name);
+ let name = format!("rust-analyzer.{name}");
let props = field_props(field, ty, doc, default);
(name, props)
})
@@ -2166,7 +2166,7 @@ fn field_props(field: &str, ty: &str, doc: &[&str], default: &str) -> serde_json
},
],
},
- _ => panic!("missing entry for {}: {}", ty, default),
+ _ => panic!("missing entry for {ty}: {default}"),
}
map.into()
@@ -2194,14 +2194,14 @@ Default:
name, name, default, doc
)
} else {
- format!("[[{}]]{} (default: `{}`)::\n+\n--\n{}--\n", name, name, default, doc)
+ format!("[[{name}]]{name} (default: `{default}`)::\n+\n--\n{doc}--\n")
}
})
.collect::<String>()
}
fn doc_comment_to_string(doc: &[&str]) -> String {
- doc.iter().map(|it| it.strip_prefix(' ').unwrap_or(it)).map(|it| format!("{}\n", it)).collect()
+ doc.iter().map(|it| it.strip_prefix(' ').unwrap_or(it)).map(|it| format!("{it}\n")).collect()
}
#[cfg(test)]
@@ -2215,7 +2215,7 @@ mod tests {
#[test]
fn generate_package_json_config() {
let s = Config::json_schema();
- let schema = format!("{:#}", s);
+ let schema = format!("{s:#}");
let mut schema = schema
.trim_start_matches('{')
.trim_end_matches('}')
diff --git a/crates/rust-analyzer/src/diagnostics/to_proto.rs b/crates/rust-analyzer/src/diagnostics/to_proto.rs
index beb23c54c9..d1ee99af3e 100644
--- a/crates/rust-analyzer/src/diagnostics/to_proto.rs
+++ b/crates/rust-analyzer/src/diagnostics/to_proto.rs
@@ -161,7 +161,7 @@ fn resolve_path(
.iter()
.find_map(|(from, to)| file_name.strip_prefix(from).map(|file_name| (to, file_name)))
{
- Some((to, file_name)) => workspace_root.join(format!("{}{}", to, file_name)),
+ Some((to, file_name)) => workspace_root.join(format!("{to}{file_name}")),
None => workspace_root.join(file_name),
}
}
@@ -218,7 +218,7 @@ fn map_rust_child_diagnostic(
if !suggested_replacements.is_empty() {
message.push_str(": ");
let suggestions =
- suggested_replacements.iter().map(|suggestion| format!("`{}`", suggestion)).join(", ");
+ suggested_replacements.iter().map(|suggestion| format!("`{suggestion}`")).join(", ");
message.push_str(&suggestions);
}
@@ -493,7 +493,7 @@ fn rustc_code_description(code: Option<&str>) -> Option<lsp_types::CodeDescripti
&& chars.next().is_none()
})
.and_then(|code| {
- lsp_types::Url::parse(&format!("https://doc.rust-lang.org/error-index.html#{}", code))
+ lsp_types::Url::parse(&format!("https://doc.rust-lang.org/error-index.html#{code}"))
.ok()
.map(|href| lsp_types::CodeDescription { href })
})
diff --git a/crates/rust-analyzer/src/dispatch.rs b/crates/rust-analyzer/src/dispatch.rs
index 57899b5991..715804449a 100644
--- a/crates/rust-analyzer/src/dispatch.rs
+++ b/crates/rust-analyzer/src/dispatch.rs
@@ -145,7 +145,7 @@ impl<'a> RequestDispatcher<'a> {
match res {
Ok(params) => {
let panic_context =
- format!("\nversion: {}\nrequest: {} {:#?}", version(), R::METHOD, params);
+ format!("\nversion: {}\nrequest: {} {params:#?}", version(), R::METHOD);
Some((req, params, panic_context))
}
Err(err) => {
diff --git a/crates/rust-analyzer/src/global_state.rs b/crates/rust-analyzer/src/global_state.rs
index 4e8bc8d646..7f6ced26ce 100644
--- a/crates/rust-analyzer/src/global_state.rs
+++ b/crates/rust-analyzer/src/global_state.rs
@@ -429,6 +429,6 @@ pub(crate) fn file_id_to_url(vfs: &vfs::Vfs, id: FileId) -> Url {
pub(crate) fn url_to_file_id(vfs: &vfs::Vfs, url: &Url) -> Result<FileId> {
let path = from_proto::vfs_path(url)?;
- let res = vfs.file_id(&path).ok_or_else(|| format!("file not found: {}", path))?;
+ let res = vfs.file_id(&path).ok_or_else(|| format!("file not found: {path}"))?;
Ok(res)
}
diff --git a/crates/rust-analyzer/src/handlers.rs b/crates/rust-analyzer/src/handlers.rs
index 7a4d372a28..33f5b8a4ef 100644
--- a/crates/rust-analyzer/src/handlers.rs
+++ b/crates/rust-analyzer/src/handlers.rs
@@ -730,7 +730,7 @@ pub(crate) fn handle_runnables(
Some(spec) => {
for cmd in ["check", "test"] {
res.push(lsp_ext::Runnable {
- label: format!("cargo {} -p {} --all-targets", cmd, spec.package),
+ label: format!("cargo {cmd} -p {} --all-targets", spec.package),
location: None,
kind: lsp_ext::RunnableKind::Cargo,
args: lsp_ext::CargoRunnable {
@@ -1146,8 +1146,8 @@ pub(crate) fn handle_code_action_resolve(
Ok(parsed_data) => parsed_data,
Err(e) => {
return Err(invalid_params_error(format!(
- "Failed to parse action id string '{}': {}",
- params.id, e
+ "Failed to parse action id string '{}': {e}",
+ params.id
))
.into())
}
@@ -1191,7 +1191,7 @@ fn parse_action_id(action_id: &str) -> Result<(usize, SingleResolve), String> {
let assist_kind: AssistKind = assist_kind_string.parse()?;
let index: usize = match index_string.parse() {
Ok(index) => index,
- Err(e) => return Err(format!("Incorrect index string: {}", e)),
+ Err(e) => return Err(format!("Incorrect index string: {e}")),
};
Ok((index, SingleResolve { assist_id: assist_id_string.to_string(), assist_kind }))
}
@@ -1870,7 +1870,7 @@ fn run_rustfmt(
.stdout(Stdio::piped())
.stderr(Stdio::piped())
.spawn()
- .context(format!("Failed to spawn {:?}", command))?;
+ .context(format!("Failed to spawn {command:?}"))?;
rustfmt.stdin.as_mut().unwrap().write_all(file.as_bytes())?;
@@ -1903,9 +1903,9 @@ fn run_rustfmt(
format!(
r#"rustfmt exited with:
Status: {}
- stdout: {}
- stderr: {}"#,
- output.status, captured_stdout, captured_stderr,
+ stdout: {captured_stdout}
+ stderr: {captured_stderr}"#,
+ output.status,
),
)
.into())
diff --git a/crates/rust-analyzer/src/integrated_benchmarks.rs b/crates/rust-analyzer/src/integrated_benchmarks.rs
index 96b1cb6b12..405d261db6 100644
--- a/crates/rust-analyzer/src/integrated_benchmarks.rs
+++ b/crates/rust-analyzer/src/integrated_benchmarks.rs
@@ -48,7 +48,7 @@ fn integrated_highlighting_benchmark() {
let file_id = {
let file = workspace_to_load.join(file);
let path = VfsPath::from(AbsPathBuf::assert(file));
- vfs.file_id(&path).unwrap_or_else(|| panic!("can't find virtual file for {}", path))
+ vfs.file_id(&path).unwrap_or_else(|| panic!("can't find virtual file for {path}"))
};
{
@@ -102,7 +102,7 @@ fn integrated_completion_benchmark() {
let file_id = {
let file = workspace_to_load.join(file);
let path = VfsPath::from(AbsPathBuf::assert(file));
- vfs.file_id(&path).unwrap_or_else(|| panic!("can't find virtual file for {}", path))
+ vfs.file_id(&path).unwrap_or_else(|| panic!("can't find virtual file for {path}"))
};
{
diff --git a/crates/rust-analyzer/src/lib.rs b/crates/rust-analyzer/src/lib.rs
index 552379752f..32dc3750fd 100644
--- a/crates/rust-analyzer/src/lib.rs
+++ b/crates/rust-analyzer/src/lib.rs
@@ -55,7 +55,7 @@ pub type Result<T, E = Error> = std::result::Result<T, E>;
pub fn from_json<T: DeserializeOwned>(what: &'static str, json: &serde_json::Value) -> Result<T> {
let res = serde_json::from_value(json.clone())
- .map_err(|e| format!("Failed to deserialize {}: {}; {}", what, e, json))?;
+ .map_err(|e| format!("Failed to deserialize {what}: {e}; {json}"))?;
Ok(res)
}
diff --git a/crates/rust-analyzer/src/lsp_utils.rs b/crates/rust-analyzer/src/lsp_utils.rs
index 0971dc36f3..dcaee92857 100644
--- a/crates/rust-analyzer/src/lsp_utils.rs
+++ b/crates/rust-analyzer/src/lsp_utils.rs
@@ -98,7 +98,7 @@ impl GlobalState {
});
let cancellable = Some(cancel_token.is_some());
let token = lsp_types::ProgressToken::String(
- cancel_token.unwrap_or_else(|| format!("rustAnalyzer/{}", title)),
+ cancel_token.unwrap_or_else(|| format!("rustAnalyzer/{title}")),
);
let work_done_progress = match state {
Progress::Begin => {
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs
index 2d443231b4..9cedcf1bec 100644
--- a/crates/rust-analyzer/src/main_loop.rs
+++ b/crates/rust-analyzer/src/main_loop.rs
@@ -229,8 +229,8 @@ impl GlobalState {
message = match &report.crates_currently_indexing[..] {
[crate_name] => Some(format!(
- "{}/{} ({})",
- report.crates_done, report.crates_total, crate_name
+ "{}/{} ({crate_name})",
+ report.crates_done, report.crates_total
)),
[crate_name, rest @ ..] => Some(format!(
"{}/{} ({} + {} more)",
@@ -516,7 +516,7 @@ impl GlobalState {
self.report_progress(
"Roots Scanned",
state,
- Some(format!("{}/{}", n_done, n_total)),
+ Some(format!("{n_done}/{n_total}")),
Some(Progress::fraction(n_done, n_total)),
None,
)
@@ -587,7 +587,7 @@ impl GlobalState {
state,
message,
None,
- Some(format!("rust-analyzer/flycheck/{}", id)),
+ Some(format!("rust-analyzer/flycheck/{id}")),
);
}
}
diff --git a/crates/rust-analyzer/src/to_proto.rs b/crates/rust-analyzer/src/to_proto.rs
index a7106acc78..35ced15de5 100644
--- a/crates/rust-analyzer/src/to_proto.rs
+++ b/crates/rust-analyzer/src/to_proto.rs
@@ -342,7 +342,7 @@ fn completion_item(
// by the client. Hex format is used because it is easier to
// visually compare very large values, which the sort text
// tends to be since it is the opposite of the score.
- res.sort_text = Some(format!("{:08x}", sort_score));
+ res.sort_text = Some(format!("{sort_score:08x}"));
}
}
@@ -1113,7 +1113,7 @@ pub(crate) fn code_action(
(Some(it), _) => res.edit = Some(snippet_workspace_edit(snap, it)?),
(None, Some((index, code_action_params))) => {
res.data = Some(lsp_ext::CodeActionData {
- id: format!("{}:{}:{}", assist.id.0, assist.id.1.name(), index),
+ id: format!("{}:{}:{index}", assist.id.0, assist.id.1.name()),
code_action_params,
});
}
@@ -1352,7 +1352,7 @@ pub(crate) fn implementation_title(count: usize) -> String {
if count == 1 {
"1 implementation".into()
} else {
- format!("{} implementations", count)
+ format!("{count} implementations")
}
}
@@ -1360,7 +1360,7 @@ pub(crate) fn reference_title(count: usize) -> String {
if count == 1 {
"1 reference".into()
} else {
- format!("{} references", count)
+ format!("{count} references")
}
}
diff --git a/crates/rust-analyzer/tests/slow-tests/main.rs b/crates/rust-analyzer/tests/slow-tests/main.rs
index fa55f7d90c..76eb60ac7c 100644
--- a/crates/rust-analyzer/tests/slow-tests/main.rs
+++ b/crates/rust-analyzer/tests/slow-tests/main.rs
@@ -263,7 +263,7 @@ mod tests {
for runnable in ["consumer", "dependency", "devdependency"] {
server.request::<Runnables>(
RunnablesParams {
- text_document: server.doc_id(&format!("{}/src/lib.rs", runnable)),
+ text_document: server.doc_id(&format!("{runnable}/src/lib.rs")),
position: None,
},
json!([
@@ -595,8 +595,8 @@ fn diagnostics_dont_block_typing() {
return;
}
- let librs: String = (0..10).map(|i| format!("mod m{};", i)).collect();
- let libs: String = (0..10).map(|i| format!("//- /src/m{}.rs\nfn foo() {{}}\n\n", i)).collect();
+ let librs: String = (0..10).map(|i| format!("mod m{i};")).collect();
+ let libs: String = (0..10).map(|i| format!("//- /src/m{i}.rs\nfn foo() {{}}\n\n")).collect();
let server = Project::with_fixture(&format!(
r#"
//- /Cargo.toml
@@ -622,7 +622,7 @@ fn main() {{}}
for i in 0..10 {
server.notification::<DidOpenTextDocument>(DidOpenTextDocumentParams {
text_document: TextDocumentItem {
- uri: server.doc_id(&format!("src/m{}.rs", i)).uri,
+ uri: server.doc_id(&format!("src/m{i}.rs")).uri,
language_id: "rust".to_string(),
version: 0,
text: "/// Docs\nfn foo() {}".to_string(),
@@ -645,7 +645,7 @@ fn main() {{}}
}]),
);
let elapsed = start.elapsed();
- assert!(elapsed.as_millis() < 2000, "typing enter took {:?}", elapsed);
+ assert!(elapsed.as_millis() < 2000, "typing enter took {elapsed:?}");
}
#[test]
@@ -942,7 +942,7 @@ fn test_will_rename_files_same_level() {
let tmp_dir = TestDir::new();
let tmp_dir_path = tmp_dir.path().to_owned();
let tmp_dir_str = tmp_dir_path.to_str().unwrap();
- let base_path = PathBuf::from(format!("file://{}", tmp_dir_str));
+ let base_path = PathBuf::from(format!("file://{tmp_dir_str}"));
let code = r#"
//- /Cargo.toml
diff --git a/crates/rust-analyzer/tests/slow-tests/sourcegen.rs b/crates/rust-analyzer/tests/slow-tests/sourcegen.rs
index e6ac018a05..7465ca9ab5 100644
--- a/crates/rust-analyzer/tests/slow-tests/sourcegen.rs
+++ b/crates/rust-analyzer/tests/slow-tests/sourcegen.rs
@@ -42,7 +42,7 @@ impl Feature {
for block in comment_blocks {
let id = block.id;
if let Err(msg) = is_valid_feature_name(&id) {
- panic!("invalid feature name: {:?}:\n {}", id, msg)
+ panic!("invalid feature name: {id:?}:\n {msg}")
}
let doc = block.contents.join("\n");
let location = sourcegen::Location { file: path.clone(), line: block.line };
@@ -63,11 +63,11 @@ fn is_valid_feature_name(feature: &str) -> Result<(), String> {
}
for short in ["To", "And"] {
if word == short {
- return Err(format!("Don't capitalize {:?}", word));
+ return Err(format!("Don't capitalize {word:?}"));
}
}
if !word.starts_with(char::is_uppercase) {
- return Err(format!("Capitalize {:?}", word));
+ return Err(format!("Capitalize {word:?}"));
}
}
Ok(())
diff --git a/crates/rust-analyzer/tests/slow-tests/support.rs b/crates/rust-analyzer/tests/slow-tests/support.rs
index 7257445dab..269212ebb9 100644
--- a/crates/rust-analyzer/tests/slow-tests/support.rs
+++ b/crates/rust-analyzer/tests/slow-tests/support.rs
@@ -216,7 +216,7 @@ impl Server {
fn send_request_(&self, r: Request) -> Value {
let id = r.id.clone();
self.client.sender.send(r.clone().into()).unwrap();
- while let Some(msg) = self.recv().unwrap_or_else(|Timeout| panic!("timeout: {:?}", r)) {
+ while let Some(msg) = self.recv().unwrap_or_else(|Timeout| panic!("timeout: {r:?}")) {
match msg {
Message::Request(req) => {
if req.method == "client/registerCapability" {
@@ -228,19 +228,19 @@ impl Server {
continue;
}
}
- panic!("unexpected request: {:?}", req)
+ panic!("unexpected request: {req:?}")
}
Message::Notification(_) => (),
Message::Response(res) => {
assert_eq!(res.id, id);
if let Some(err) = res.error {
- panic!("error response: {:#?}", err);
+ panic!("error response: {err:#?}");
}
return res.result.unwrap();
}
}
}
- panic!("no response for {:?}", r);
+ panic!("no response for {r:?}");
}
pub(crate) fn wait_until_workspace_is_loaded(self) -> Server {
self.wait_for_message_cond(1, &|msg: &Message| match msg {
diff --git a/crates/rust-analyzer/tests/slow-tests/testdir.rs b/crates/rust-analyzer/tests/slow-tests/testdir.rs
index 3bec23a911..f7fceb5888 100644
--- a/crates/rust-analyzer/tests/slow-tests/testdir.rs
+++ b/crates/rust-analyzer/tests/slow-tests/testdir.rs
@@ -28,7 +28,7 @@ impl TestDir {
static CNT: AtomicUsize = AtomicUsize::new(0);
for _ in 0..100 {
let cnt = CNT.fetch_add(1, Ordering::Relaxed);
- let path = base.join(format!("{}_{}", pid, cnt));
+ let path = base.join(format!("{pid}_{cnt}"));
if path.is_dir() {
continue;
}
@@ -53,7 +53,7 @@ impl Drop for TestDir {
return;
}
remove_dir_all(&self.path).unwrap_or_else(|err| {
- panic!("failed to remove temporary directory {}: {}", self.path.display(), err)
+ panic!("failed to remove temporary directory {}: {err}", self.path.display())
})
}
}
diff --git a/crates/rust-analyzer/tests/slow-tests/tidy.rs b/crates/rust-analyzer/tests/slow-tests/tidy.rs
index 24e68eca67..745faf4249 100644
--- a/crates/rust-analyzer/tests/slow-tests/tidy.rs
+++ b/crates/rust-analyzer/tests/slow-tests/tidy.rs
@@ -216,18 +216,18 @@ Zlib OR Apache-2.0 OR MIT
diff.push_str("New Licenses:\n");
for &l in licenses.iter() {
if !expected.contains(&l) {
- diff += &format!(" {}\n", l)
+ diff += &format!(" {l}\n")
}
}
diff.push_str("\nMissing Licenses:\n");
for &l in expected.iter() {
if !licenses.contains(&l) {
- diff += &format!(" {}\n", l)
+ diff += &format!(" {l}\n")
}
}
- panic!("different set of licenses!\n{}", diff);
+ panic!("different set of licenses!\n{diff}");
}
assert_eq!(licenses, expected);
}
@@ -316,7 +316,7 @@ fn check_test_attrs(path: &Path, text: &str) {
"ide-assists/src/tests/generated.rs",
];
if text.contains("#[ignore") && !need_ignore.iter().any(|p| path.ends_with(p)) {
- panic!("\ndon't `#[ignore]` tests, see:\n\n {}\n\n {}\n", ignore_rule, path.display(),)
+ panic!("\ndon't `#[ignore]` tests, see:\n\n {ignore_rule}\n\n {}\n", path.display(),)
}
let panic_rule =
@@ -438,7 +438,7 @@ impl TidyMarks {
self.hits.symmetric_difference(&self.checks).map(|it| it.as_str()).collect();
if !diff.is_empty() {
- panic!("unpaired marks: {:?}", diff)
+ panic!("unpaired marks: {diff:?}")
}
}
}
diff --git a/crates/sourcegen/src/lib.rs b/crates/sourcegen/src/lib.rs
index 4e0ee63f32..9d7a0c480b 100644
--- a/crates/sourcegen/src/lib.rs
+++ b/crates/sourcegen/src/lib.rs
@@ -57,7 +57,7 @@ impl CommentBlock {
pub fn extract(tag: &str, text: &str) -> Vec<CommentBlock> {
assert!(tag.starts_with(char::is_uppercase));
- let tag = format!("{}:", tag);
+ let tag = format!("{tag}:");
// Would be nice if we had `.retain_mut` here!
CommentBlock::extract_untagged(text)
.into_iter()
@@ -163,7 +163,7 @@ pub fn reformat(text: String) -> String {
}
pub fn add_preamble(generator: &'static str, mut text: String) -> String {
- let preamble = format!("//! Generated by `{}`, do not edit by hand.\n\n", generator);
+ let preamble = format!("//! Generated by `{generator}`, do not edit by hand.\n\n");
text.insert_str(0, &preamble);
text
}
diff --git a/crates/stdx/src/panic_context.rs b/crates/stdx/src/panic_context.rs
index a64f9a6f3f..c3e8813b0e 100644
--- a/crates/stdx/src/panic_context.rs
+++ b/crates/stdx/src/panic_context.rs
@@ -25,7 +25,7 @@ impl PanicContext {
if !ctx.is_empty() {
eprintln!("Panic context:");
for frame in ctx.iter() {
- eprintln!("> {}\n", frame);
+ eprintln!("> {frame}\n");
}
}
default_hook(panic_info);
diff --git a/crates/syntax/src/algo.rs b/crates/syntax/src/algo.rs
index 8b14789dd9..bcfece4503 100644
--- a/crates/syntax/src/algo.rs
+++ b/crates/syntax/src/algo.rs
@@ -616,7 +616,7 @@ fn main() {
let fmt_syntax = |syn: &SyntaxElement| match syn.kind() {
SyntaxKind::WHITESPACE => format!("{:?}", syn.to_string()),
- _ => format!("{}", syn),
+ _ => format!("{syn}"),
};
let insertions =
@@ -637,7 +637,7 @@ fn main() {
.iter()
.sorted_by_key(|(syntax, _)| syntax.text_range().start())
.format_with("\n", |(k, v), f| {
- f(&format!("Line {}: {:?} -> {}", line_number(k), k, fmt_syntax(v)))
+ f(&format!("Line {}: {k:?} -> {}", line_number(k), fmt_syntax(v)))
});
let deletions = diff
diff --git a/crates/syntax/src/ast/edit.rs b/crates/syntax/src/ast/edit.rs
index 15805dfc86..5bc6b780e4 100644
--- a/crates/syntax/src/ast/edit.rs
+++ b/crates/syntax/src/ast/edit.rs
@@ -87,7 +87,7 @@ impl IndentLevel {
for token in tokens {
if let Some(ws) = ast::Whitespace::cast(token) {
if ws.text().contains('\n') {
- let new_ws = make::tokens::whitespace(&format!("{}{}", ws.syntax(), self));
+ let new_ws = make::tokens::whitespace(&format!("{}{self}", ws.syntax()));
ted::replace(ws.syntax(), &new_ws);
}
}
@@ -103,7 +103,7 @@ impl IndentLevel {
if let Some(ws) = ast::Whitespace::cast(token) {
if ws.text().contains('\n') {
let new_ws = make::tokens::whitespace(
- &ws.syntax().text().replace(&format!("\n{}", self), "\n"),
+ &ws.syntax().text().replace(&format!("\n{self}"), "\n"),
);
ted::replace(ws.syntax(), &new_ws);
}
diff --git a/crates/syntax/src/ast/edit_in_place.rs b/crates/syntax/src/ast/edit_in_place.rs
index 660c057e99..d7ad4f332f 100644
--- a/crates/syntax/src/ast/edit_in_place.rs
+++ b/crates/syntax/src/ast/edit_in_place.rs
@@ -481,7 +481,7 @@ impl ast::AssocItemList {
},
};
let elements: Vec<SyntaxElement<_>> = vec![
- make::tokens::whitespace(&format!("{}{}", whitespace, indent)).into(),
+ make::tokens::whitespace(&format!("{whitespace}{indent}")).into(),
item.syntax().clone().into(),
];
ted::insert_all(position, elements);
@@ -537,7 +537,7 @@ impl ast::MatchArmList {
},
};
let indent = IndentLevel::from_node(self.syntax()) + 1;
- elements.push(make::tokens::whitespace(&format!("\n{}", indent)).into());
+ elements.push(make::tokens::whitespace(&format!("\n{indent}")).into());
elements.push(arm.syntax().clone().into());
if needs_comma(&arm) {
ted::append_child(arm.syntax(), make::token(SyntaxKind::COMMA));
@@ -555,7 +555,7 @@ impl ast::RecordExprFieldList {
let is_multiline = self.syntax().text().contains_char('\n');
let whitespace = if is_multiline {
let indent = IndentLevel::from_node(self.syntax()) + 1;
- make::tokens::whitespace(&format!("\n{}", indent))
+ make::tokens::whitespace(&format!("\n{indent}"))
} else {
make::tokens::single_space()
};
@@ -616,7 +616,7 @@ impl ast::RecordPatFieldList {
let is_multiline = self.syntax().text().contains_char('\n');
let whitespace = if is_multiline {
let indent = IndentLevel::from_node(self.syntax()) + 1;
- make::tokens::whitespace(&format!("\n{}", indent))
+ make::tokens::whitespace(&format!("\n{indent}"))
} else {
make::tokens::single_space()
};
@@ -681,7 +681,7 @@ impl ast::VariantList {
},
};
let elements: Vec<SyntaxElement<_>> = vec![
- make::tokens::whitespace(&format!("{}{}", "\n", indent)).into(),
+ make::tokens::whitespace(&format!("{}{indent}", "\n")).into(),
variant.syntax().clone().into(),
ast::make::token(T![,]).into(),
];
@@ -704,11 +704,11 @@ fn normalize_ws_between_braces(node: &SyntaxNode) -> Option<()> {
match l.next_sibling_or_token() {
Some(ws) if ws.kind() == SyntaxKind::WHITESPACE => {
if ws.next_sibling_or_token()?.into_token()? == r {
- ted::replace(ws, make::tokens::whitespace(&format!("\n{}", indent)));
+ ted::replace(ws, make::tokens::whitespace(&format!("\n{indent}")));
}
}
Some(ws) if ws.kind() == T!['}'] => {
- ted::insert(Position::after(l), make::tokens::whitespace(&format!("\n{}", indent)));
+ ted::insert(Position::after(l), make::tokens::whitespace(&format!("\n{indent}")));
}
_ => (),
}
diff --git a/crates/syntax/src/ast/token_ext.rs b/crates/syntax/src/ast/token_ext.rs
index 8990f7a7d4..ca18196300 100644
--- a/crates/syntax/src/ast/token_ext.rs
+++ b/crates/syntax/src/ast/token_ext.rs
@@ -436,9 +436,7 @@ mod tests {
fn check_string_value<'a>(lit: &str, expected: impl Into<Option<&'a str>>) {
assert_eq!(
- ast::String { syntax: make::tokens::literal(&format!("\"{}\"", lit)) }
- .value()
- .as_deref(),
+ ast::String { syntax: make::tokens::literal(&format!("\"{lit}\"")) }.value().as_deref(),
expected.into()
);
}
@@ -461,7 +459,7 @@ bcde", "abcde",
expected: impl Into<Option<&'a [u8; N]>>,
) {
assert_eq!(
- ast::ByteString { syntax: make::tokens::literal(&format!("b\"{}\"", lit)) }
+ ast::ByteString { syntax: make::tokens::literal(&format!("b\"{lit}\"")) }
.value()
.as_deref(),
expected.into().map(|value| &value[..])
diff --git a/crates/syntax/src/fuzz.rs b/crates/syntax/src/fuzz.rs
index 7c7a60d629..239a89f9b2 100644
--- a/crates/syntax/src/fuzz.rs
+++ b/crates/syntax/src/fuzz.rs
@@ -36,7 +36,7 @@ impl CheckReparse {
let delete_len = usize::from_str(lines.next()?).ok()?;
let insert = lines.next()?.to_string();
let text = lines.collect::<Vec<_>>().join("\n");
- let text = format!("{}{}{}", PREFIX, text, SUFFIX);
+ let text = format!("{PREFIX}{text}{SUFFIX}");
text.get(delete_start..delete_start.checked_add(delete_len)?)?; // make sure delete is a valid range
let delete =
TextRange::at(delete_start.try_into().unwrap(), delete_len.try_into().unwrap());
@@ -60,8 +60,8 @@ impl CheckReparse {
eprint!("reparsed:\n{:#?}", new_parse.tree().syntax());
eprint!("full reparse:\n{:#?}", full_reparse.tree().syntax());
assert_eq!(
- format!("{:?}", a),
- format!("{:?}", b),
+ format!("{a:?}"),
+ format!("{b:?}"),
"different syntax tree produced by the full reparse"
);
}
diff --git a/crates/syntax/src/hacks.rs b/crates/syntax/src/hacks.rs
index ec3d3d444c..a3023c3195 100644
--- a/crates/syntax/src/hacks.rs
+++ b/crates/syntax/src/hacks.rs
@@ -6,7 +6,7 @@ use crate::{ast, AstNode};
pub fn parse_expr_from_str(s: &str) -> Option<ast::Expr> {
let s = s.trim();
- let file = ast::SourceFile::parse(&format!("const _: () = {};", s));
+ let file = ast::SourceFile::parse(&format!("const _: () = {s};"));
let expr = file.syntax_node().descendants().find_map(ast::Expr::cast)?;
if expr.syntax().text() != s {
return None;
diff --git a/crates/syntax/src/ted.rs b/crates/syntax/src/ted.rs
index a47b4b11c0..29788d05e8 100644
--- a/crates/syntax/src/ted.rs
+++ b/crates/syntax/src/ted.rs
@@ -157,7 +157,7 @@ fn ws_before(position: &Position, new: &SyntaxElement) -> Option<SyntaxToken> {
if let Some(item_list) = prev.parent().and_then(ast::ItemList::cast) {
let mut indent = IndentLevel::from_element(&item_list.syntax().clone().into());
indent.0 += 1;
- return Some(make::tokens::whitespace(&format!("\n{}", indent)));
+ return Some(make::tokens::whitespace(&format!("\n{indent}")));
}
}
@@ -165,7 +165,7 @@ fn ws_before(position: &Position, new: &SyntaxElement) -> Option<SyntaxToken> {
if let Some(stmt_list) = prev.parent().and_then(ast::StmtList::cast) {
let mut indent = IndentLevel::from_element(&stmt_list.syntax().clone().into());
indent.0 += 1;
- return Some(make::tokens::whitespace(&format!("\n{}", indent)));
+ return Some(make::tokens::whitespace(&format!("\n{indent}")));
}
}
@@ -200,7 +200,7 @@ fn ws_between(left: &SyntaxElement, right: &SyntaxElement) -> Option<SyntaxToken
if left.kind() == SyntaxKind::USE {
indent.0 = IndentLevel::from_element(right).0.max(indent.0);
}
- return Some(make::tokens::whitespace(&format!("\n{}", indent)));
+ return Some(make::tokens::whitespace(&format!("\n{indent}")));
}
Some(make::tokens::single_space())
}
diff --git a/crates/syntax/src/tests.rs b/crates/syntax/src/tests.rs
index 58fba8cfa8..9148c08b4a 100644
--- a/crates/syntax/src/tests.rs
+++ b/crates/syntax/src/tests.rs
@@ -108,7 +108,7 @@ fn self_hosting_parsing() {
.into_iter()
.map(|(path, err)| format!("{}: {:?}\n", path.display(), err[0]))
.collect::<String>();
- panic!("Parsing errors:\n{}\n", errors);
+ panic!("Parsing errors:\n{errors}\n");
}
}
@@ -181,6 +181,6 @@ fn rust_files_in_dir(dir: &Path) -> Vec<PathBuf> {
/// so this should always be correct.
fn read_text(path: &Path) -> String {
fs::read_to_string(path)
- .unwrap_or_else(|_| panic!("File at {:?} should be valid", path))
+ .unwrap_or_else(|_| panic!("File at {path:?} should be valid"))
.replace("\r\n", "\n")
}
diff --git a/crates/syntax/src/tests/sourcegen_ast.rs b/crates/syntax/src/tests/sourcegen_ast.rs
index 712ef5f63b..d66ff7365f 100644
--- a/crates/syntax/src/tests/sourcegen_ast.rs
+++ b/crates/syntax/src/tests/sourcegen_ast.rs
@@ -328,7 +328,7 @@ fn generate_nodes(kinds: KindsSrc<'_>, grammar: &AstSrc) -> String {
fn write_doc_comment(contents: &[String], dest: &mut String) {
for line in contents {
- writeln!(dest, "///{}", line).unwrap();
+ writeln!(dest, "///{line}").unwrap();
}
}
@@ -501,7 +501,7 @@ fn to_pascal_case(s: &str) -> String {
}
fn pluralize(s: &str) -> String {
- format!("{}s", s)
+ format!("{s}s")
}
impl Field {
@@ -637,7 +637,7 @@ fn lower_rule(acc: &mut Vec<Field>, grammar: &Grammar, label: Option<&String>, r
let mut name = grammar[*token].name.clone();
if name != "int_number" && name != "string" {
if "[]{}()".contains(&name) {
- name = format!("'{}'", name);
+ name = format!("'{name}'");
}
let field = Field::Token(name);
acc.push(field);
@@ -651,7 +651,7 @@ fn lower_rule(acc: &mut Vec<Field>, grammar: &Grammar, label: Option<&String>, r
acc.push(field);
return;
}
- panic!("unhandled rule: {:?}", rule)
+ panic!("unhandled rule: {rule:?}")
}
Rule::Labeled { label: l, rule } => {
assert!(label.is_none());
diff --git a/crates/test-utils/src/assert_linear.rs b/crates/test-utils/src/assert_linear.rs
index 24502ddb41..d6acdde383 100644
--- a/crates/test-utils/src/assert_linear.rs
+++ b/crates/test-utils/src/assert_linear.rs
@@ -83,7 +83,7 @@ impl Round {
let a = mean_y - b * mean_x;
- self.plot = format!("y_pred = {:.3} + {:.3} * x\n\nx y y_pred\n", a, b);
+ self.plot = format!("y_pred = {a:.3} + {b:.3} * x\n\nx y y_pred\n");
let mut se = 0.0;
let mut max_error = 0.0f64;
diff --git a/crates/test-utils/src/fixture.rs b/crates/test-utils/src/fixture.rs
index 73e72c1880..e7bc64620b 100644
--- a/crates/test-utils/src/fixture.rs
+++ b/crates/test-utils/src/fixture.rs
@@ -153,7 +153,7 @@ impl Fixture {
&& !line.contains('.')
&& line.chars().all(|it| !it.is_uppercase())
{
- panic!("looks like invalid metadata line: {:?}", line);
+ panic!("looks like invalid metadata line: {line:?}");
}
if let Some(entry) = res.last_mut() {
@@ -172,7 +172,7 @@ impl Fixture {
let components = meta.split_ascii_whitespace().collect::<Vec<_>>();
let path = components[0].to_string();
- assert!(path.starts_with('/'), "fixture path does not start with `/`: {:?}", path);
+ assert!(path.starts_with('/'), "fixture path does not start with `/`: {path:?}");
let mut krate = None;
let mut deps = Vec::new();
@@ -184,9 +184,8 @@ impl Fixture {
let mut introduce_new_source_root = None;
let mut target_data_layout = None;
for component in components[1..].iter() {
- let (key, value) = component
- .split_once(':')
- .unwrap_or_else(|| panic!("invalid meta line: {:?}", meta));
+ let (key, value) =
+ component.split_once(':').unwrap_or_else(|| panic!("invalid meta line: {meta:?}"));
match key {
"crate" => krate = Some(value.to_string()),
"deps" => deps = value.split(',').map(|it| it.to_string()).collect(),
@@ -216,7 +215,7 @@ impl Fixture {
}
"new_source_root" => introduce_new_source_root = Some(value.to_string()),
"target_data_layout" => target_data_layout = Some(value.to_string()),
- _ => panic!("bad component: {:?}", component),
+ _ => panic!("bad component: {component:?}"),
}
}
@@ -253,7 +252,7 @@ impl MiniCore {
#[track_caller]
fn assert_valid_flag(&self, flag: &str) {
if !self.valid_flags.iter().any(|it| it == flag) {
- panic!("invalid flag: {:?}, valid flags: {:?}", flag, self.valid_flags);
+ panic!("invalid flag: {flag:?}, valid flags: {:?}", self.valid_flags);
}
}
@@ -263,7 +262,7 @@ impl MiniCore {
let line = line.strip_prefix("//- minicore:").unwrap().trim();
for entry in line.split(", ") {
if res.has_flag(entry) {
- panic!("duplicate minicore flag: {:?}", entry);
+ panic!("duplicate minicore flag: {entry:?}");
}
res.activated_flags.push(entry.to_owned());
}
@@ -369,7 +368,7 @@ impl MiniCore {
for flag in &self.valid_flags {
if !seen_regions.iter().any(|it| it == flag) {
- panic!("unused minicore flag: {:?}", flag);
+ panic!("unused minicore flag: {flag:?}");
}
}
buf
diff --git a/crates/test-utils/src/lib.rs b/crates/test-utils/src/lib.rs
index 8a9cfb6c22..74468ea750 100644
--- a/crates/test-utils/src/lib.rs
+++ b/crates/test-utils/src/lib.rs
@@ -146,8 +146,8 @@ pub fn extract_range_or_offset(text: &str) -> (RangeOrOffset, String) {
/// Extracts ranges, marked with `<tag> </tag>` pairs from the `text`
pub fn extract_tags(mut text: &str, tag: &str) -> (Vec<(TextRange, Option<String>)>, String) {
- let open = format!("<{}", tag);
- let close = format!("</{}>", tag);
+ let open = format!("<{tag}");
+ let close = format!("</{tag}>");
let mut ranges = Vec::new();
let mut res = String::new();
let mut stack = Vec::new();
@@ -169,8 +169,7 @@ pub fn extract_tags(mut text: &str, tag: &str) -> (Vec<(TextRange, Option<String
stack.push((from, attr));
} else if text.starts_with(&close) {
text = &text[close.len()..];
- let (from, attr) =
- stack.pop().unwrap_or_else(|| panic!("unmatched </{}>", tag));
+ let (from, attr) = stack.pop().unwrap_or_else(|| panic!("unmatched </{tag}>"));
let to = TextSize::of(&res);
ranges.push((TextRange::new(from, to), attr));
} else {
@@ -180,7 +179,7 @@ pub fn extract_tags(mut text: &str, tag: &str) -> (Vec<(TextRange, Option<String
}
}
}
- assert!(stack.is_empty(), "unmatched <{}>", tag);
+ assert!(stack.is_empty(), "unmatched <{tag}>");
ranges.sort_by_key(|r| (r.0.start(), r.0.end()));
(ranges, res)
}
@@ -413,8 +412,8 @@ pub fn format_diff(chunks: Vec<dissimilar::Chunk<'_>>) -> String {
for chunk in chunks {
let formatted = match chunk {
dissimilar::Chunk::Equal(text) => text.into(),
- dissimilar::Chunk::Delete(text) => format!("\x1b[41m{}\x1b[0m", text),
- dissimilar::Chunk::Insert(text) => format!("\x1b[42m{}\x1b[0m", text),
+ dissimilar::Chunk::Delete(text) => format!("\x1b[41m{text}\x1b[0m"),
+ dissimilar::Chunk::Insert(text) => format!("\x1b[42m{text}\x1b[0m"),
};
buf.push_str(&formatted);
}
diff --git a/crates/tt/src/lib.rs b/crates/tt/src/lib.rs
index 85daec262c..353b09fd8c 100644
--- a/crates/tt/src/lib.rs
+++ b/crates/tt/src/lib.rs
@@ -115,15 +115,15 @@ fn print_debug_subtree(f: &mut fmt::Formatter<'_>, subtree: &Subtree, level: usi
let aux = match subtree.delimiter.map(|it| (it.kind, it.id.0)) {
None => "$".to_string(),
- Some((DelimiterKind::Parenthesis, id)) => format!("() {}", id),
- Some((DelimiterKind::Brace, id)) => format!("{{}} {}", id),
- Some((DelimiterKind::Bracket, id)) => format!("[] {}", id),
+ Some((DelimiterKind::Parenthesis, id)) => format!("() {id}"),
+ Some((DelimiterKind::Brace, id)) => format!("{{}} {id}"),
+ Some((DelimiterKind::Bracket, id)) => format!("[] {id}"),
};
if subtree.token_trees.is_empty() {
- write!(f, "{}SUBTREE {}", align, aux)?;
+ write!(f, "{align}SUBTREE {aux}")?;
} else {
- writeln!(f, "{}SUBTREE {}", align, aux)?;
+ writeln!(f, "{align}SUBTREE {aux}")?;
for (idx, child) in subtree.token_trees.iter().enumerate() {
print_debug_token(f, child, level + 1)?;
if idx != subtree.token_trees.len() - 1 {
@@ -140,7 +140,7 @@ fn print_debug_token(f: &mut fmt::Formatter<'_>, tkn: &TokenTree, level: usize)
match tkn {
TokenTree::Leaf(leaf) => match leaf {
- Leaf::Literal(lit) => write!(f, "{}LITERAL {} {}", align, lit.text, lit.id.0)?,
+ Leaf::Literal(lit) => write!(f, "{align}LITERAL {} {}", lit.text, lit.id.0)?,
Leaf::Punct(punct) => write!(
f,
"{}PUNCH {} [{}] {}",
@@ -149,7 +149,7 @@ fn print_debug_token(f: &mut fmt::Formatter<'_>, tkn: &TokenTree, level: usize)
if punct.spacing == Spacing::Alone { "alone" } else { "joint" },
punct.id.0
)?,
- Leaf::Ident(ident) => write!(f, "{}IDENT {} {}", align, ident.text, ident.id.0)?,
+ Leaf::Ident(ident) => write!(f, "{align}IDENT {} {}", ident.text, ident.id.0)?,
},
TokenTree::Subtree(subtree) => {
print_debug_subtree(f, subtree, level)?;
@@ -312,7 +312,7 @@ pub fn pretty(tkns: &[TokenTree]) -> String {
Some(DelimiterKind::Parenthesis) => ("(", ")"),
Some(DelimiterKind::Bracket) => ("[", "]"),
};
- format!("{}{}{}", open, content, close)
+ format!("{open}{content}{close}")
}
}
}
diff --git a/crates/vfs/src/vfs_path.rs b/crates/vfs/src/vfs_path.rs
index 668c7320d4..b23c9f1966 100644
--- a/crates/vfs/src/vfs_path.rs
+++ b/crates/vfs/src/vfs_path.rs
@@ -364,7 +364,7 @@ impl VirtualPath {
path = &path["../".len()..];
}
path = path.trim_start_matches("./");
- res.0 = format!("{}/{}", res.0, path);
+ res.0 = format!("{}/{path}", res.0);
Some(res)
}
diff --git a/lib/lsp-server/examples/goto_def.rs b/lib/lsp-server/examples/goto_def.rs
index ca7ad0b536..2f270afbbf 100644
--- a/lib/lsp-server/examples/goto_def.rs
+++ b/lib/lsp-server/examples/goto_def.rs
@@ -80,32 +80,32 @@ fn main_loop(
let _params: InitializeParams = serde_json::from_value(params).unwrap();
eprintln!("starting example main loop");
for msg in &connection.receiver {
- eprintln!("got msg: {:?}", msg);
+ eprintln!("got msg: {msg:?}");
match msg {
Message::Request(req) => {
if connection.handle_shutdown(&req)? {
return Ok(());
}
- eprintln!("got request: {:?}", req);
+ eprintln!("got request: {req:?}");
match cast::<GotoDefinition>(req) {
Ok((id, params)) => {
- eprintln!("got gotoDefinition request #{}: {:?}", id, params);
+ eprintln!("got gotoDefinition request #{id}: {params:?}");
let result = Some(GotoDefinitionResponse::Array(Vec::new()));
let result = serde_json::to_value(&result).unwrap();
let resp = Response { id, result: Some(result), error: None };
connection.sender.send(Message::Response(resp))?;
continue;
}
- Err(err @ ExtractError::JsonError { .. }) => panic!("{:?}", err),
+ Err(err @ ExtractError::JsonError { .. }) => panic!("{err:?}"),
Err(ExtractError::MethodMismatch(req)) => req,
};
// ...
}
Message::Response(resp) => {
- eprintln!("got response: {:?}", resp);
+ eprintln!("got response: {resp:?}");
}
Message::Notification(not) => {
- eprintln!("got notification: {:?}", not);
+ eprintln!("got notification: {not:?}");
}
}
}
diff --git a/lib/lsp-server/src/lib.rs b/lib/lsp-server/src/lib.rs
index d567077d4a..8c3c81feab 100644
--- a/lib/lsp-server/src/lib.rs
+++ b/lib/lsp-server/src/lib.rs
@@ -123,7 +123,7 @@ impl Connection {
let resp = Response::new_err(
req.id.clone(),
ErrorCode::ServerNotInitialized as i32,
- format!("expected initialize request, got {:?}", req),
+ format!("expected initialize request, got {req:?}"),
);
self.sender.send(resp.into()).unwrap();
}
@@ -221,11 +221,9 @@ impl Connection {
match &self.receiver.recv_timeout(std::time::Duration::from_secs(30)) {
Ok(Message::Notification(n)) if n.is_exit() => (),
Ok(msg) => {
- return Err(ProtocolError(format!("unexpected message during shutdown: {:?}", msg)))
- }
- Err(e) => {
- return Err(ProtocolError(format!("unexpected error during shutdown: {}", e)))
+ return Err(ProtocolError(format!("unexpected message during shutdown: {msg:?}")))
}
+ Err(e) => return Err(ProtocolError(format!("unexpected error during shutdown: {e}"))),
}
Ok(true)
}
diff --git a/xtask/src/dist.rs b/xtask/src/dist.rs
index 686aec4ae5..410276bc45 100644
--- a/xtask/src/dist.rs
+++ b/xtask/src/dist.rs
@@ -26,10 +26,10 @@ impl flags::Dist {
if let Some(patch_version) = self.client_patch_version {
let version = if stable {
- format!("{}.{}", VERSION_STABLE, patch_version)
+ format!("{VERSION_STABLE}.{patch_version}")
} else {
// A hack to make VS Code prefer nightly over stable.
- format!("{}.{}", VERSION_NIGHTLY, patch_version)
+ format!("{VERSION_NIGHTLY}.{patch_version}")
};
dist_server(sh, &format!("{version}-standalone"), &target)?;
let release_tag = if stable { date_iso(sh)? } else { "nightly".to_string() };
@@ -59,10 +59,10 @@ fn dist_client(
let mut patch = Patch::new(sh, "./package.json")?;
patch
.replace(
- &format!(r#""version": "{}.0-dev""#, VERSION_DEV),
- &format!(r#""version": "{}""#, version),
+ &format!(r#""version": "{VERSION_DEV}.0-dev""#),
+ &format!(r#""version": "{version}""#),
)
- .replace(r#""releaseTag": null"#, &format!(r#""releaseTag": "{}""#, release_tag))
+ .replace(r#""releaseTag": null"#, &format!(r#""releaseTag": "{release_tag}""#))
.replace(r#""$generated-start": {},"#, "")
.replace(",\n \"$generated-end\": {}", "")
.replace(r#""enabledApiProposals": [],"#, r#""#);
@@ -130,8 +130,8 @@ impl Target {
} else {
(String::new(), None)
};
- let server_path = out_path.join(format!("rust-analyzer{}", exe_suffix));
- let artifact_name = format!("rust-analyzer-{}{}", name, exe_suffix);
+ let server_path = out_path.join(format!("rust-analyzer{exe_suffix}"));
+ let artifact_name = format!("rust-analyzer-{name}{exe_suffix}");
Self { name, server_path, symbols_path, artifact_name }
}
}
diff --git a/xtask/src/metrics.rs b/xtask/src/metrics.rs
index ebeb873463..b6f730dbf1 100644
--- a/xtask/src/metrics.rs
+++ b/xtask/src/metrics.rs
@@ -87,7 +87,7 @@ impl Metrics {
self.measure_analysis_stats_path(
sh,
bench,
- &format!("./target/rustc-perf/collector/benchmarks/{}", bench),
+ &format!("./target/rustc-perf/collector/benchmarks/{bench}"),
)
}
fn measure_analysis_stats_path(
diff --git a/xtask/src/release.rs b/xtask/src/release.rs
index eda8fceef0..bfbe955696 100644
--- a/xtask/src/release.rs
+++ b/xtask/src/release.rs
@@ -64,7 +64,7 @@ impl flags::Release {
let prev_tag = tags.lines().filter(|line| is_release_tag(line)).last().unwrap();
let contents = changelog::get_changelog(sh, changelog_n, &commit, prev_tag, &today)?;
- let path = changelog_dir.join(format!("{}-changelog-{}.adoc", today, changelog_n));
+ let path = changelog_dir.join(format!("{today}-changelog-{changelog_n}.adoc"));
sh.write_file(&path, &contents)?;
Ok(())
diff --git a/xtask/src/release/changelog.rs b/xtask/src/release/changelog.rs
index 7df8f89dbe..4a06bb9ac0 100644
--- a/xtask/src/release/changelog.rs
+++ b/xtask/src/release/changelog.rs
@@ -25,7 +25,7 @@ pub(crate) fn get_changelog(
let line = line.trim_start();
if let Some(pr_num) = parse_pr_number(&line) {
let accept = "Accept: application/vnd.github.v3+json";
- let authorization = format!("Authorization: token {}", token);
+ let authorization = format!("Authorization: token {token}");
let pr_url = "https://api.github.com/repos/rust-lang/rust-analyzer/issues";
// we don't use an HTTPS client or JSON parser to keep the build times low
@@ -57,7 +57,7 @@ pub(crate) fn get_changelog(
PrKind::Other => &mut others,
PrKind::Skip => continue,
};
- writeln!(s, "* pr:{}[] {}", pr_num, l.message.as_deref().unwrap_or(&pr_title)).unwrap();
+ writeln!(s, "* pr:{pr_num}[] {}", l.message.as_deref().unwrap_or(&pr_title)).unwrap();
}
}