Auto merge of #74471 - da-x:string-type-diagnostic-item, r=petrochenkov
librustc_typeck: use diag item instead of string compare
This commit is contained in:
commit
2caf854f7a
@ -1043,6 +1043,7 @@ symbols! {
|
||||
stop_after_dataflow,
|
||||
str,
|
||||
str_alloc,
|
||||
string_type,
|
||||
stringify,
|
||||
struct_field_attributes,
|
||||
struct_inherit,
|
||||
|
@ -562,7 +562,11 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
||||
on the left and may require reallocation. This \
|
||||
requires ownership of the string on the left";
|
||||
|
||||
let is_std_string = |ty| &format!("{:?}", ty) == "std::string::String";
|
||||
let string_type = self.tcx.get_diagnostic_item(sym::string_type);
|
||||
let is_std_string = |ty: Ty<'tcx>| match ty.ty_adt_def() {
|
||||
Some(ty_def) => Some(ty_def.did) == string_type,
|
||||
None => false,
|
||||
};
|
||||
|
||||
match (&lhs_ty.kind, &rhs_ty.kind) {
|
||||
(&Ref(_, l_ty, _), &Ref(_, r_ty, _)) // &str or &String + &str, &String or &&str
|
||||
|
Loading…
x
Reference in New Issue
Block a user