debug!("trait spans found: {:?}", traits);
for span in &traits {
let mut multi_span: MultiSpan = vec![*span].into();
- multi_span.push_span_label(
- *span,
- "this has an implicit `'static` lifetime requirement".to_string(),
- );
+ multi_span
+ .push_span_label(*span, "this has an implicit `'static` lifetime requirement");
multi_span.push_span_label(
ident.span,
- "calling this method introduces the `impl`'s 'static` requirement".to_string(),
+ "calling this method introduces the `impl`'s 'static` requirement",
);
err.span_note(multi_span, "the used `impl` has a `'static` requirement");
err.span_suggestion_verbose(
let mut span: MultiSpan =
if spans.is_empty() { def_span.into() } else { spans.clone().into() };
- span.push_span_label(def_span, String::new());
+ span.push_span_label(def_span, "");
for pat in spans {
span.push_span_label(pat, "not covered");
}
} else if let Some(sp) = sm.generate_fn_name_span(span) {
err.span_label(
sp,
- "try adding a local generic parameter in this method instead"
- .to_string(),
+ "try adding a local generic parameter in this method instead",
);
} else {
err.help("try using a local generic parameter instead");
use rustc_session::parse::feature_err;
use rustc_span::lev_distance::find_best_match_for_name;
use rustc_span::symbol::{sym, Ident};
-use rustc_span::{Span, DUMMY_SP};
+use rustc_span::{Span, Symbol, DUMMY_SP};
use std::collections::BTreeSet;
/// the type parameter's name as a placeholder.
pub(crate) fn complain_about_missing_type_params(
&self,
- missing_type_params: Vec<String>,
+ missing_type_params: Vec<Symbol>,
def_id: DefId,
span: Span,
empty_generic_args: bool,
def_id: DefId,
generic_args: &'a GenericArgs<'a>,
span: Span,
- missing_type_params: Vec<String>,
+ missing_type_params: Vec<Symbol>,
inferred_params: Vec<Span>,
infer_args: bool,
is_object: bool,
// defaults. This will lead to an ICE if we are not
// careful!
if self.default_needs_object_self(param) {
- self.missing_type_params.push(param.name.to_string());
+ self.missing_type_params.push(param.name);
tcx.ty_error().into()
} else {
// This is a default type parameter.
pub struct MissingTypeParams {
pub span: Span,
pub def_span: Span,
- pub missing_type_params: Vec<String>,
+ pub missing_type_params: Vec<Symbol>,
pub empty_generic_args: bool,
}
err.span_suggestion(
self.span,
rustc_errors::fluent::typeck::suggestion,
- format!("{}<{}>", snippet, self.missing_type_params.join(", ")),
+ format!(
+ "{}<{}>",
+ snippet,
+ self.missing_type_params
+ .iter()
+ .map(|n| n.to_string())
+ .collect::<Vec<_>>()
+ .join(", ")
+ ),
Applicability::HasPlaceholders,
);
suggested = true;