Rollup merge of #114075 - matthiaskrgr:fmt_args_rustc_3, r=wesleywiser
inline format!() args from rustc_codegen_llvm to the end (4) r? `@WaffleLapkin`
This commit is contained in:
commit
fa21a8c6f8
94 changed files with 385 additions and 498 deletions
|
@ -197,7 +197,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
}
|
||||
}
|
||||
|
||||
err.span_label(span, format!("associated type `{}` not found", assoc_name));
|
||||
err.span_label(span, format!("associated type `{assoc_name}` not found"));
|
||||
err.emit()
|
||||
}
|
||||
|
||||
|
@ -393,7 +393,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
.into_iter()
|
||||
.map(|error| error.root_obligation.predicate)
|
||||
.filter_map(format_pred)
|
||||
.map(|(p, _)| format!("`{}`", p))
|
||||
.map(|(p, _)| format!("`{p}`"))
|
||||
.collect();
|
||||
bounds.sort();
|
||||
bounds.dedup();
|
||||
|
@ -652,7 +652,7 @@ pub(crate) fn fn_trait_to_string(
|
|||
}
|
||||
.map(|s| {
|
||||
// `s.empty()` checks to see if the type is the unit tuple, if so we don't want a comma
|
||||
if parenthesized || s.is_empty() { format!("({})", s) } else { format!("({},)", s) }
|
||||
if parenthesized || s.is_empty() { format!("({s})") } else { format!("({s},)") }
|
||||
})
|
||||
.ok(),
|
||||
_ => None,
|
||||
|
|
|
@ -81,7 +81,7 @@ fn generic_arg_mismatch_err(
|
|||
err.span_suggestion(
|
||||
tcx.def_span(src_def_id),
|
||||
"consider changing this type parameter to a const parameter",
|
||||
format!("const {}: {}", param_name, param_type),
|
||||
format!("const {param_name}: {param_type}"),
|
||||
Applicability::MaybeIncorrect,
|
||||
);
|
||||
};
|
||||
|
@ -102,7 +102,7 @@ fn generic_arg_mismatch_err(
|
|||
err.span_suggestion(
|
||||
arg.span(),
|
||||
"array type provided where a `usize` was expected, try",
|
||||
format!("{{ {} }}", snippet),
|
||||
format!("{{ {snippet} }}"),
|
||||
Applicability::MaybeIncorrect,
|
||||
);
|
||||
}
|
||||
|
@ -130,7 +130,7 @@ fn generic_arg_mismatch_err(
|
|||
} else {
|
||||
(arg.descr(), param.kind.descr())
|
||||
};
|
||||
err.note(format!("{} arguments must be provided before {} arguments", first, last));
|
||||
err.note(format!("{first} arguments must be provided before {last} arguments"));
|
||||
if let Some(help) = help {
|
||||
err.help(help);
|
||||
}
|
||||
|
@ -304,7 +304,7 @@ pub fn create_args_for_parent_generic_args<'tcx, 'a>(
|
|||
"reorder the arguments: {}: `<{}>`",
|
||||
param_types_present
|
||||
.into_iter()
|
||||
.map(|ord| format!("{}s", ord))
|
||||
.map(|ord| format!("{ord}s"))
|
||||
.collect::<Vec<String>>()
|
||||
.join(", then "),
|
||||
ordered_params
|
||||
|
|
|
@ -34,9 +34,9 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
let param_name = generics.params.next_type_param_name(None);
|
||||
|
||||
let add_generic_sugg = if let Some(span) = generics.span_for_param_suggestion() {
|
||||
(span, format!(", {}: {}", param_name, impl_trait_name))
|
||||
(span, format!(", {param_name}: {impl_trait_name}"))
|
||||
} else {
|
||||
(generics.span, format!("<{}: {}>", param_name, impl_trait_name))
|
||||
(generics.span, format!("<{param_name}: {impl_trait_name}>"))
|
||||
};
|
||||
diag.multipart_suggestion(
|
||||
format!("alternatively use a blanket \
|
||||
|
|
|
@ -1128,7 +1128,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
ty_param_name
|
||||
)
|
||||
};
|
||||
err.span_label(span, format!("ambiguous associated type `{}`", assoc_name));
|
||||
err.span_label(span, format!("ambiguous associated type `{assoc_name}`"));
|
||||
|
||||
let mut where_bounds = vec![];
|
||||
for bound in bounds {
|
||||
|
@ -1407,7 +1407,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
_ => {
|
||||
let reported = if variant_resolution.is_some() {
|
||||
// Variant in type position
|
||||
let msg = format!("expected type, found variant `{}`", assoc_ident);
|
||||
let msg = format!("expected type, found variant `{assoc_ident}`");
|
||||
tcx.sess.span_err(span, msg)
|
||||
} else if qself_ty.is_enum() {
|
||||
let mut err = struct_span_err!(
|
||||
|
@ -1438,12 +1438,12 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
} else {
|
||||
err.span_label(
|
||||
assoc_ident.span,
|
||||
format!("variant not found in `{}`", qself_ty),
|
||||
format!("variant not found in `{qself_ty}`"),
|
||||
);
|
||||
}
|
||||
|
||||
if let Some(sp) = tcx.hir().span_if_local(adt_def.did()) {
|
||||
err.span_label(sp, format!("variant `{}` not found here", assoc_ident));
|
||||
err.span_label(sp, format!("variant `{assoc_ident}` not found here"));
|
||||
}
|
||||
|
||||
err.emit()
|
||||
|
@ -2750,7 +2750,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
ty::BrNamed(_, kw::UnderscoreLifetime) | ty::BrAnon(..) | ty::BrEnv => {
|
||||
"an anonymous lifetime".to_string()
|
||||
}
|
||||
ty::BrNamed(_, name) => format!("lifetime `{}`", name),
|
||||
ty::BrNamed(_, name) => format!("lifetime `{name}`"),
|
||||
};
|
||||
|
||||
let mut err = generate_err(&br_name);
|
||||
|
|
|
@ -345,7 +345,7 @@ pub(super) fn check_opaque_for_inheriting_lifetimes(
|
|||
err.span_suggestion(
|
||||
span,
|
||||
"consider spelling out the type instead",
|
||||
name.unwrap_or_else(|| format!("{:?}", ty)),
|
||||
name.unwrap_or_else(|| format!("{ty:?}")),
|
||||
Applicability::MaybeIncorrect,
|
||||
);
|
||||
}
|
||||
|
@ -797,7 +797,7 @@ fn check_item_type(tcx: TyCtxt<'_>, id: hir::ItemId) {
|
|||
"replace the {} parameters with concrete {}{}",
|
||||
kinds,
|
||||
kinds_pl,
|
||||
egs.map(|egs| format!(" like `{}`", egs)).unwrap_or_default(),
|
||||
egs.map(|egs| format!(" like `{egs}`")).unwrap_or_default(),
|
||||
),
|
||||
)
|
||||
.emit();
|
||||
|
@ -882,7 +882,7 @@ pub(super) fn check_specialization_validity<'tcx>(
|
|||
} else {
|
||||
tcx.sess.delay_span_bug(
|
||||
DUMMY_SP,
|
||||
format!("parent item: {:?} not marked as default", parent_impl),
|
||||
format!("parent item: {parent_impl:?} not marked as default"),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1744,7 +1744,7 @@ fn compare_generic_param_kinds<'tcx>(
|
|||
tcx.type_of(param.def_id).instantiate_identity()
|
||||
)
|
||||
}
|
||||
Type { .. } => format!("{} type parameter", prefix),
|
||||
Type { .. } => format!("{prefix} type parameter"),
|
||||
Lifetime { .. } => unreachable!(),
|
||||
};
|
||||
|
||||
|
|
|
@ -134,7 +134,7 @@ pub fn intrinsic_operation_unsafety(tcx: TyCtxt<'_>, intrinsic_id: DefId) -> hir
|
|||
/// Remember to add all intrinsics here, in `compiler/rustc_codegen_llvm/src/intrinsic.rs`,
|
||||
/// and in `library/core/src/intrinsics.rs`.
|
||||
pub fn check_intrinsic_type(tcx: TyCtxt<'_>, it: &hir::ForeignItem<'_>) {
|
||||
let param = |n| Ty::new_param(tcx, n, Symbol::intern(&format!("P{}", n)));
|
||||
let param = |n| Ty::new_param(tcx, n, Symbol::intern(&format!("P{n}")));
|
||||
let intrinsic_id = it.owner_id.to_def_id();
|
||||
let intrinsic_name = tcx.item_name(intrinsic_id);
|
||||
let name_str = intrinsic_name.as_str();
|
||||
|
@ -494,7 +494,7 @@ pub fn check_intrinsic_type(tcx: TyCtxt<'_>, it: &hir::ForeignItem<'_>) {
|
|||
/// Type-check `extern "platform-intrinsic" { ... }` functions.
|
||||
pub fn check_platform_intrinsic_type(tcx: TyCtxt<'_>, it: &hir::ForeignItem<'_>) {
|
||||
let param = |n| {
|
||||
let name = Symbol::intern(&format!("P{}", n));
|
||||
let name = Symbol::intern(&format!("P{n}"));
|
||||
Ty::new_param(tcx, n, name)
|
||||
};
|
||||
|
||||
|
|
|
@ -211,7 +211,7 @@ impl<'a, 'tcx> InlineAsmCtxt<'a, 'tcx> {
|
|||
// register class is usable at all.
|
||||
if let Some(feature) = feature {
|
||||
if !target_features.contains(feature) {
|
||||
let msg = format!("`{}` target feature is not enabled", feature);
|
||||
let msg = format!("`{feature}` target feature is not enabled");
|
||||
let mut err = self.tcx.sess.struct_span_err(expr.span, msg);
|
||||
err.note(format!(
|
||||
"this is required to use type `{}` with register class `{}`",
|
||||
|
|
|
@ -214,7 +214,7 @@ fn missing_items_err(
|
|||
trait_item,
|
||||
tcx.impl_trait_ref(impl_def_id).unwrap().instantiate_identity(),
|
||||
);
|
||||
let code = format!("{}{}\n{}", padding, snippet, padding);
|
||||
let code = format!("{padding}{snippet}\n{padding}");
|
||||
if let Some(span) = tcx.hir().span_if_local(trait_item.def_id) {
|
||||
missing_trait_item_label
|
||||
.push(errors::MissingTraitItemLabel { span, item: trait_item.name });
|
||||
|
|
|
@ -472,8 +472,7 @@ fn check_gat_where_clauses(tcx: TyCtxt<'_>, associated_items: &[hir::TraitItemRe
|
|||
let bound =
|
||||
if unsatisfied_bounds.len() > 1 { "these bounds are" } else { "this bound is" };
|
||||
err.note(format!(
|
||||
"{} currently required to ensure that impls have maximum flexibility",
|
||||
bound
|
||||
"{bound} currently required to ensure that impls have maximum flexibility"
|
||||
));
|
||||
err.note(
|
||||
"we are soliciting feedback, see issue #87479 \
|
||||
|
@ -989,7 +988,7 @@ fn check_type_defn<'tcx>(tcx: TyCtxt<'tcx>, item: &hir::Item<'tcx>, all_sized: b
|
|||
let ty = tcx.erase_regions(ty);
|
||||
if ty.has_infer() {
|
||||
tcx.sess
|
||||
.delay_span_bug(item.span, format!("inference variables in {:?}", ty));
|
||||
.delay_span_bug(item.span, format!("inference variables in {ty:?}"));
|
||||
// Just treat unresolved type expression as if it needs drop.
|
||||
true
|
||||
} else {
|
||||
|
@ -1863,8 +1862,7 @@ fn report_bivariance(
|
|||
|
||||
if matches!(param.kind, hir::GenericParamKind::Type { .. }) && !has_explicit_bounds {
|
||||
err.help(format!(
|
||||
"if you intended `{0}` to be a const parameter, use `const {0}: usize` instead",
|
||||
param_name
|
||||
"if you intended `{param_name}` to be a const parameter, use `const {param_name}: usize` instead"
|
||||
));
|
||||
}
|
||||
err.emit()
|
||||
|
|
|
@ -36,7 +36,7 @@ fn check_unused_traits(tcx: TyCtxt<'_>, (): ()) {
|
|||
}
|
||||
let (path, _) = item.expect_use();
|
||||
let msg = if let Ok(snippet) = tcx.sess.source_map().span_to_snippet(path.span) {
|
||||
format!("unused import: `{}`", snippet)
|
||||
format!("unused import: `{snippet}`")
|
||||
} else {
|
||||
"unused import".to_owned()
|
||||
};
|
||||
|
|
|
@ -171,8 +171,7 @@ fn visit_implementation_of_dispatch_from_dyn(tcx: TyCtxt<'_>, impl_did: LocalDef
|
|||
create_err(&format!(
|
||||
"the trait `DispatchFromDyn` may only be implemented \
|
||||
for a coercion between structures with the same \
|
||||
definition; expected `{}`, found `{}`",
|
||||
source_path, target_path,
|
||||
definition; expected `{source_path}`, found `{target_path}`",
|
||||
))
|
||||
.emit();
|
||||
|
||||
|
|
|
@ -148,8 +148,7 @@ impl<'tcx> InherentCollect<'tcx> {
|
|||
if let ty::Ref(_, subty, _) = ty.kind() {
|
||||
err.note(format!(
|
||||
"you could also try moving the reference to \
|
||||
uses of `{}` (such as `self`) within the implementation",
|
||||
subty
|
||||
uses of `{subty}` (such as `self`) within the implementation"
|
||||
));
|
||||
}
|
||||
err.emit();
|
||||
|
|
|
@ -77,8 +77,8 @@ impl<'tcx> InherentOverlapChecker<'tcx> {
|
|||
"duplicate definitions with name `{}`",
|
||||
ident,
|
||||
);
|
||||
err.span_label(span, format!("duplicate definitions for `{}`", ident));
|
||||
err.span_label(*former, format!("other definition for `{}`", ident));
|
||||
err.span_label(span, format!("duplicate definitions for `{ident}`"));
|
||||
err.span_label(*former, format!("other definition for `{ident}`"));
|
||||
|
||||
err.emit();
|
||||
}
|
||||
|
@ -114,11 +114,11 @@ impl<'tcx> InherentOverlapChecker<'tcx> {
|
|||
);
|
||||
err.span_label(
|
||||
self.tcx.def_span(item1.def_id),
|
||||
format!("duplicate definitions for `{}`", name),
|
||||
format!("duplicate definitions for `{name}`"),
|
||||
);
|
||||
err.span_label(
|
||||
self.tcx.def_span(item2.def_id),
|
||||
format!("other definition for `{}`", name),
|
||||
format!("other definition for `{name}`"),
|
||||
);
|
||||
|
||||
for cause in &overlap.intercrate_ambiguity_causes {
|
||||
|
|
|
@ -412,9 +412,8 @@ fn emit_orphan_check_error<'tcx>(
|
|||
.span_label(
|
||||
sp,
|
||||
format!(
|
||||
"type parameter `{}` must be covered by another type \
|
||||
when it appears before the first local type (`{}`)",
|
||||
param_ty, local_type
|
||||
"type parameter `{param_ty}` must be covered by another type \
|
||||
when it appears before the first local type (`{local_type}`)"
|
||||
),
|
||||
)
|
||||
.note(
|
||||
|
@ -441,9 +440,8 @@ fn emit_orphan_check_error<'tcx>(
|
|||
.span_label(
|
||||
sp,
|
||||
format!(
|
||||
"type parameter `{}` must be used as the type parameter for some \
|
||||
"type parameter `{param_ty}` must be used as the type parameter for some \
|
||||
local type",
|
||||
param_ty,
|
||||
),
|
||||
)
|
||||
.note(
|
||||
|
@ -541,17 +539,16 @@ fn lint_auto_trait_impl<'tcx>(
|
|||
let self_descr = tcx.def_descr(self_type_did);
|
||||
match arg {
|
||||
ty::util::NotUniqueParam::DuplicateParam(arg) => {
|
||||
lint.note(format!("`{}` is mentioned multiple times", arg));
|
||||
lint.note(format!("`{arg}` is mentioned multiple times"));
|
||||
}
|
||||
ty::util::NotUniqueParam::NotParam(arg) => {
|
||||
lint.note(format!("`{}` is not a generic parameter", arg));
|
||||
lint.note(format!("`{arg}` is not a generic parameter"));
|
||||
}
|
||||
}
|
||||
lint.span_note(
|
||||
item_span,
|
||||
format!(
|
||||
"try using the same sequence of generic parameters as the {} definition",
|
||||
self_descr,
|
||||
"try using the same sequence of generic parameters as the {self_descr} definition",
|
||||
),
|
||||
)
|
||||
},
|
||||
|
|
|
@ -195,9 +195,9 @@ pub(crate) fn placeholder_type_error_diag<'tcx>(
|
|||
sugg.push((arg.span, (*type_name).to_string()));
|
||||
} else if let Some(span) = generics.span_for_param_suggestion() {
|
||||
// Account for bounds, we want `fn foo<T: E, K>(_: K)` not `fn foo<T, K: E>(_: K)`.
|
||||
sugg.push((span, format!(", {}", type_name)));
|
||||
sugg.push((span, format!(", {type_name}")));
|
||||
} else {
|
||||
sugg.push((generics.span, format!("<{}>", type_name)));
|
||||
sugg.push((generics.span, format!("<{type_name}>")));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -329,7 +329,7 @@ fn bad_placeholder<'tcx>(
|
|||
mut spans: Vec<Span>,
|
||||
kind: &'static str,
|
||||
) -> DiagnosticBuilder<'tcx, ErrorGuaranteed> {
|
||||
let kind = if kind.ends_with('s') { format!("{}es", kind) } else { format!("{}s", kind) };
|
||||
let kind = if kind.ends_with('s') { format!("{kind}es") } else { format!("{kind}s") };
|
||||
|
||||
spans.sort();
|
||||
tcx.sess.create_err(errors::PlaceholderNotAllowedItemSignatures { spans, kind })
|
||||
|
@ -425,10 +425,8 @@ impl<'tcx> AstConv<'tcx> for ItemCtxt<'tcx> {
|
|||
| hir::ItemKind::Union(_, generics) => {
|
||||
let lt_name = get_new_lifetime_name(self.tcx, poly_trait_ref, generics);
|
||||
let (lt_sp, sugg) = match generics.params {
|
||||
[] => (generics.span, format!("<{}>", lt_name)),
|
||||
[bound, ..] => {
|
||||
(bound.span.shrink_to_lo(), format!("{}, ", lt_name))
|
||||
}
|
||||
[] => (generics.span, format!("<{lt_name}>")),
|
||||
[bound, ..] => (bound.span.shrink_to_lo(), format!("{lt_name}, ")),
|
||||
};
|
||||
mpart_sugg = Some(errors::AssociatedTypeTraitUninferredGenericParamsMultipartSuggestion {
|
||||
fspan: lt_sp,
|
||||
|
@ -1027,7 +1025,7 @@ fn trait_def(tcx: TyCtxt<'_>, def_id: LocalDefId) -> ty::TraitDef {
|
|||
} else {
|
||||
tcx.sess.span_err(
|
||||
meta.span(),
|
||||
format!("unknown meta item passed to `rustc_deny_explicit_impl` {:?}", meta),
|
||||
format!("unknown meta item passed to `rustc_deny_explicit_impl` {meta:?}"),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1505,7 +1503,7 @@ fn compute_sig_of_foreign_fn_decl<'tcx>(
|
|||
.sess
|
||||
.source_map()
|
||||
.span_to_snippet(ast_ty.span)
|
||||
.map_or_else(|_| String::new(), |s| format!(" `{}`", s));
|
||||
.map_or_else(|_| String::new(), |s| format!(" `{s}`"));
|
||||
tcx.sess.emit_err(errors::SIMDFFIHighlyExperimental { span: ast_ty.span, snip });
|
||||
}
|
||||
};
|
||||
|
|
|
@ -2040,8 +2040,7 @@ fn is_late_bound_map(
|
|||
tcx.sess.delay_span_bug(
|
||||
*span,
|
||||
format!(
|
||||
"Incorrect generic arg count for alias {:?}",
|
||||
alias_def
|
||||
"Incorrect generic arg count for alias {alias_def:?}"
|
||||
),
|
||||
);
|
||||
None
|
||||
|
|
|
@ -156,7 +156,7 @@ fn anon_const_type_of<'tcx>(tcx: TyCtxt<'tcx>, def_id: LocalDefId) -> Ty<'tcx> {
|
|||
let Some(type_dependent_def) = tables.type_dependent_def_id(parent_node_id) else {
|
||||
return Ty::new_error_with_message(tcx,
|
||||
tcx.def_span(def_id),
|
||||
format!("unable to find type-dependent def for {:?}", parent_node_id),
|
||||
format!("unable to find type-dependent def for {parent_node_id:?}"),
|
||||
);
|
||||
};
|
||||
let idx = segment
|
||||
|
@ -197,14 +197,14 @@ fn anon_const_type_of<'tcx>(tcx: TyCtxt<'tcx>, def_id: LocalDefId) -> Ty<'tcx> {
|
|||
} else {
|
||||
return Ty::new_error_with_message(tcx,
|
||||
tcx.def_span(def_id),
|
||||
format!("unable to find const parent for {} in pat {:?}", hir_id, pat),
|
||||
format!("unable to find const parent for {hir_id} in pat {pat:?}"),
|
||||
);
|
||||
}
|
||||
}
|
||||
_ => {
|
||||
return Ty::new_error_with_message(tcx,
|
||||
tcx.def_span(def_id),
|
||||
format!("unexpected const parent path {:?}", parent_node),
|
||||
format!("unexpected const parent path {parent_node:?}"),
|
||||
);
|
||||
}
|
||||
};
|
||||
|
@ -544,7 +544,7 @@ fn infer_placeholder_type<'a>(
|
|||
if let Some(ty) = ty.make_suggestable(tcx, false) {
|
||||
err.span_suggestion(
|
||||
span,
|
||||
format!("provide a type for the {item}", item = kind),
|
||||
format!("provide a type for the {kind}"),
|
||||
format!("{colon} {ty}"),
|
||||
Applicability::MachineApplicable,
|
||||
);
|
||||
|
|
|
@ -216,7 +216,7 @@ impl<'a> IntoDiagnostic<'a> for MissingTypeParams {
|
|||
"parameters",
|
||||
self.missing_type_params
|
||||
.iter()
|
||||
.map(|n| format!("`{}`", n))
|
||||
.map(|n| format!("`{n}`"))
|
||||
.collect::<Vec<_>>()
|
||||
.join(", "),
|
||||
);
|
||||
|
|
|
@ -77,8 +77,7 @@ fn enforce_impl_params_are_constrained(tcx: TyCtxt<'_>, impl_def_id: LocalDefId)
|
|||
tcx.sess.delay_span_bug(
|
||||
tcx.def_span(impl_def_id),
|
||||
format!(
|
||||
"potentially unconstrained type parameters weren't evaluated: {:?}",
|
||||
impl_self_ty,
|
||||
"potentially unconstrained type parameters weren't evaluated: {impl_self_ty:?}",
|
||||
),
|
||||
);
|
||||
return;
|
||||
|
@ -180,7 +179,7 @@ fn report_unused_parameter(tcx: TyCtxt<'_>, span: Span, kind: &str, name: Symbol
|
|||
kind,
|
||||
name
|
||||
);
|
||||
err.span_label(span, format!("unconstrained {} parameter", kind));
|
||||
err.span_label(span, format!("unconstrained {kind} parameter"));
|
||||
if kind == "const" {
|
||||
err.note(
|
||||
"expressions using a const parameter must map each value to a distinct output value",
|
||||
|
|
|
@ -294,7 +294,7 @@ fn check_duplicate_params<'tcx>(
|
|||
if let (_, [duplicate, ..]) = base_params.partition_dedup() {
|
||||
let param = impl1_args[duplicate.0 as usize];
|
||||
tcx.sess
|
||||
.struct_span_err(span, format!("specializing impl repeats parameter `{}`", param))
|
||||
.struct_span_err(span, format!("specializing impl repeats parameter `{param}`"))
|
||||
.emit();
|
||||
}
|
||||
}
|
||||
|
@ -523,7 +523,7 @@ fn check_specialization_on<'tcx>(tcx: TyCtxt<'tcx>, predicate: ty::Predicate<'tc
|
|||
}
|
||||
_ => {
|
||||
tcx.sess
|
||||
.struct_span_err(span, format!("cannot specialize on predicate `{}`", predicate))
|
||||
.struct_span_err(span, format!("cannot specialize on predicate `{predicate}`"))
|
||||
.emit();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -474,7 +474,7 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
|
|||
verb
|
||||
)
|
||||
} else {
|
||||
format!("missing generics for {} `{}`", def_kind, def_path)
|
||||
format!("missing generics for {def_kind} `{def_path}`")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -599,7 +599,7 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
|
|||
let span = self.path_segment.ident.span;
|
||||
|
||||
// insert a suggestion of the form "Y<'a, 'b>"
|
||||
let sugg = format!("<{}>", suggested_args);
|
||||
let sugg = format!("<{suggested_args}>");
|
||||
debug!("sugg: {:?}", sugg);
|
||||
|
||||
err.span_suggestion_verbose(
|
||||
|
@ -624,7 +624,7 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
|
|||
let sugg_suffix =
|
||||
if is_first && (has_non_lt_args || has_bindings) { ", " } else { "" };
|
||||
|
||||
let sugg = format!("{}{}{}", sugg_prefix, suggested_args, sugg_suffix);
|
||||
let sugg = format!("{sugg_prefix}{suggested_args}{sugg_suffix}");
|
||||
debug!("sugg: {:?}", sugg);
|
||||
|
||||
err.span_suggestion_verbose(sugg_span, msg, sugg, Applicability::HasPlaceholders);
|
||||
|
@ -649,7 +649,7 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
|
|||
let span = self.path_segment.ident.span;
|
||||
|
||||
// insert a suggestion of the form "Y<T, U>"
|
||||
let sugg = format!("<{}>", suggested_args);
|
||||
let sugg = format!("<{suggested_args}>");
|
||||
debug!("sugg: {:?}", sugg);
|
||||
|
||||
err.span_suggestion_verbose(
|
||||
|
@ -682,7 +682,7 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
|
|||
let sugg_suffix =
|
||||
if is_first && !self.gen_args.bindings.is_empty() { ", " } else { "" };
|
||||
|
||||
let sugg = format!("{}{}{}", sugg_prefix, suggested_args, sugg_suffix);
|
||||
let sugg = format!("{sugg_prefix}{suggested_args}{sugg_suffix}");
|
||||
debug!("sugg: {:?}", sugg);
|
||||
|
||||
err.span_suggestion_verbose(sugg_span, msg, sugg, Applicability::HasPlaceholders);
|
||||
|
@ -1024,7 +1024,7 @@ impl<'a, 'tcx> WrongNumberOfGenericArgs<'a, 'tcx> {
|
|||
.collect::<Vec<_>>()
|
||||
.join(", ");
|
||||
|
||||
format!(": {}", params)
|
||||
format!(": {params}")
|
||||
};
|
||||
|
||||
format!(
|
||||
|
|
|
@ -32,8 +32,8 @@ pub enum VarianceTerm<'a> {
|
|||
impl<'a> fmt::Debug for VarianceTerm<'a> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
match *self {
|
||||
ConstantTerm(c1) => write!(f, "{:?}", c1),
|
||||
TransformTerm(v1, v2) => write!(f, "({:?} \u{00D7} {:?})", v1, v2),
|
||||
ConstantTerm(c1) => write!(f, "{c1:?}"),
|
||||
TransformTerm(v1, v2) => write!(f, "({v1:?} \u{00D7} {v2:?})"),
|
||||
InferredTerm(id) => write!(f, "[{}]", {
|
||||
let InferredIndex(i) = id;
|
||||
i
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue