Skip to content

Commit 148f456

Browse files
committed
Fix ICE 89775
1 parent 1067e2c commit 148f456

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -704,7 +704,9 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
704704
.filter_map(|lang_item| self.tcx.lang_items().require(*lang_item).ok())
705705
.collect();
706706

707-
never_suggest_borrow.push(self.tcx.get_diagnostic_item(sym::Send).unwrap());
707+
if let Some(def_id) = self.tcx.get_diagnostic_item(sym::Send) {
708+
never_suggest_borrow.push(def_id);
709+
}
708710

709711
let param_env = obligation.param_env;
710712
let trait_ref = poly_trait_ref.skip_binder();

library/core/src/marker.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ use crate::hash::Hasher;
3030
/// [arc]: ../../std/sync/struct.Arc.html
3131
/// [ub]: ../../reference/behavior-considered-undefined.html
3232
#[stable(feature = "rust1", since = "1.0.0")]
33-
#[cfg_attr(not(test), rustc_diagnostic_item = "Send")]
33+
#[cfg_attr(all(not(test), bootstrap), rustc_diagnostic_item = "send_trait")]
34+
#[cfg_attr(all(not(test), not(bootstrap)), rustc_diagnostic_item = "Send")]
3435
#[rustc_on_unimplemented(
3536
message = "`{Self}` cannot be sent between threads safely",
3637
label = "`{Self}` cannot be sent between threads safely"

0 commit comments

Comments
 (0)