avoid &str
/Symbol
to String
conversions
This commit is contained in:
parent
bf1a5e72f4
commit
051e98b7bf
6 changed files with 19 additions and 14 deletions
|
@ -8,7 +8,7 @@ use rustc_middle::ty;
|
|||
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;
|
||||
|
||||
|
@ -17,7 +17,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
/// 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,
|
||||
|
|
|
@ -382,7 +382,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
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,
|
||||
|
@ -514,7 +514,7 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
|
|||
// 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.
|
||||
|
|
|
@ -244,7 +244,7 @@ pub struct UnconstrainedOpaqueType {
|
|||
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,
|
||||
}
|
||||
|
||||
|
@ -285,7 +285,15 @@ impl<'a> SessionDiagnostic<'a> for MissingTypeParams {
|
|||
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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue