Rm diagnostic item, use lang item
This commit is contained in:
parent
c74f155b24
commit
64a17a09a8
32 changed files with 103 additions and 100 deletions
|
|
@ -464,7 +464,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
ref_cnt += 1;
|
||||
}
|
||||
if let ty::Adt(adt, _) = peeled.kind()
|
||||
&& self.tcx.is_diagnostic_item(sym::String, adt.did())
|
||||
&& Some(adt.did()) == self.tcx.lang_items().string()
|
||||
{
|
||||
err.span_suggestion_verbose(
|
||||
expr.span.shrink_to_hi(),
|
||||
|
|
|
|||
|
|
@ -817,10 +817,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
ty.is_str()
|
||||
|| matches!(
|
||||
ty.kind(),
|
||||
ty::Adt(adt, _) if self.tcx.is_diagnostic_item(sym::String, adt.did())
|
||||
ty::Adt(adt, _) if Some(adt.did()) == self.tcx.lang_items().string()
|
||||
)
|
||||
}
|
||||
ty::Adt(adt, _) => self.tcx.is_diagnostic_item(sym::String, adt.did()),
|
||||
ty::Adt(adt, _) => Some(adt.did()) == self.tcx.lang_items().string(),
|
||||
_ => false,
|
||||
};
|
||||
if is_string_or_ref_str && item_name.name == sym::iter {
|
||||
|
|
|
|||
|
|
@ -556,9 +556,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
let rm_borrow_msg = "remove the borrow to obtain an owned `String`";
|
||||
let to_owned_msg = "create an owned `String` from a string reference";
|
||||
|
||||
let string_type = self.tcx.lang_items().string();
|
||||
let is_std_string = |ty: Ty<'tcx>| {
|
||||
ty.ty_adt_def()
|
||||
.map_or(false, |ty_def| self.tcx.is_diagnostic_item(sym::String, ty_def.did()))
|
||||
ty.ty_adt_def().map_or(false, |ty_def| Some(ty_def.did()) == string_type)
|
||||
};
|
||||
|
||||
match (lhs_ty.kind(), rhs_ty.kind()) {
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ fn check_panic<'tcx>(cx: &LateContext<'tcx>, f: &'tcx hir::Expr<'tcx>, arg: &'tc
|
|||
ty::Ref(_, r, _) if *r.kind() == ty::Str,
|
||||
) || matches!(
|
||||
ty.ty_adt_def(),
|
||||
Some(ty_def) if cx.tcx.is_diagnostic_item(sym::String, ty_def.did()),
|
||||
Some(ty_def) if Some(ty_def.did()) == cx.tcx.lang_items().string(),
|
||||
);
|
||||
|
||||
let infcx = cx.tcx.infer_ctxt().build();
|
||||
|
|
|
|||
|
|
@ -1705,7 +1705,7 @@ impl<'tcx> InferCtxtPrivExt<'tcx> for TypeErrCtxt<'_, 'tcx> {
|
|||
ty::Bool => Some(0),
|
||||
ty::Char => Some(1),
|
||||
ty::Str => Some(2),
|
||||
ty::Adt(def, _) if tcx.is_diagnostic_item(sym::String, def.did()) => Some(2),
|
||||
ty::Adt(def, _) if Some(def.did()) == tcx.lang_items().string() => Some(2),
|
||||
ty::Int(..)
|
||||
| ty::Uint(..)
|
||||
| ty::Float(..)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue