]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_typeck/check/op.rs
Rollup merge of #74872 - JohnTitor:ping-risc-v, r=Mark-Simulacrum
[rust.git] / src / librustc_typeck / check / op.rs
index 41aac3569d115f8e2e364eeb393e61db8f41add5..fd516c88ec61aac2896f340e66d4baee1236c065 100644 (file)
@@ -562,7 +562,11 @@ fn check_str_addition(
                    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