diff --git a/compiler/rustc_hir/src/lang_items.rs b/compiler/rustc_hir/src/lang_items.rs index bab685006eaf..28ae08030e63 100644 --- a/compiler/rustc_hir/src/lang_items.rs +++ b/compiler/rustc_hir/src/lang_items.rs @@ -348,7 +348,4 @@ language_item_table! { Range, sym::Range, range_struct, Target::Struct; RangeToInclusive, sym::RangeToInclusive, range_to_inclusive_struct, Target::Struct; RangeTo, sym::RangeTo, range_to_struct, Target::Struct; - Send, sym::send, send_trait, Target::Trait; - UnwindSafe, sym::unwind_safe, unwind_safe_trait, Target::Trait; - RefUnwindSafe, sym::ref_unwind_safe, ref_unwind_safe_trait, Target::Trait; } diff --git a/compiler/rustc_passes/src/lang_items.rs b/compiler/rustc_passes/src/lang_items.rs index 118fcca4508e..f57f5fd56d28 100644 --- a/compiler/rustc_passes/src/lang_items.rs +++ b/compiler/rustc_passes/src/lang_items.rs @@ -257,9 +257,6 @@ impl LanguageItemCollector<'tcx> { | LangItem::Unpin | LangItem::Termination | LangItem::Try - | LangItem::Send - | LangItem::UnwindSafe - | LangItem::RefUnwindSafe => Some(0), // Not a trait diff --git a/compiler/rustc_span/src/symbol.rs b/compiler/rustc_span/src/symbol.rs index be4f12c6d1cb..38e19dcb678a 100644 --- a/compiler/rustc_span/src/symbol.rs +++ b/compiler/rustc_span/src/symbol.rs @@ -947,7 +947,7 @@ symbols! { receiver, recursion_limit, reexport_test_harness_main, - ref_unwind_safe, + ref_unwind_safe_trait, reference, reflect, reg, @@ -1073,7 +1073,6 @@ symbols! { self_in_typedefs, self_struct_ctor, semitransparent, - send, send_trait, shl, shl_assign, @@ -1299,7 +1298,7 @@ symbols! { unused_qualifications, unwind, unwind_attributes, - unwind_safe, + unwind_safe_trait, unwrap, unwrap_or, use_extern_macros, diff --git a/library/core/src/marker.rs b/library/core/src/marker.rs index 271565693d66..d00fb2284b88 100644 --- a/library/core/src/marker.rs +++ b/library/core/src/marker.rs @@ -31,7 +31,10 @@ use crate::hash::Hasher; /// [ub]: ../../reference/behavior-considered-undefined.html #[stable(feature = "rust1", since = "1.0.0")] #[cfg_attr(not(test), rustc_diagnostic_item = "send_trait")] +<<<<<<< HEAD #[lang = "send"] +======= +>>>>>>> Remove lang items Send, UnwindSafe and RefUnwindSafe #[rustc_on_unimplemented( message = "`{Self}` cannot be sent between threads safely", label = "`{Self}` cannot be sent between threads safely" diff --git a/library/std/src/panic.rs b/library/std/src/panic.rs index ee069eefd454..7931c4c0a5fc 100644 --- a/library/std/src/panic.rs +++ b/library/std/src/panic.rs @@ -133,7 +133,7 @@ pub fn panic_any(msg: M) -> ! { /// [`AssertUnwindSafe`] wrapper struct can be used to force this trait to be /// implemented for any closed over variables passed to `catch_unwind`. #[stable(feature = "catch_unwind", since = "1.9.0")] -#[cfg_attr(not(test), lang = "unwind_safe")] +#[rustc_diagnostic_item = "unwind_safe_trait"] #[rustc_on_unimplemented( message = "the type `{Self}` may not be safely transferred across an unwind boundary", label = "`{Self}` may not be safely transferred across an unwind boundary" @@ -149,7 +149,7 @@ pub auto trait UnwindSafe {} /// This is a "helper marker trait" used to provide impl blocks for the /// [`UnwindSafe`] trait, for more information see that documentation. #[stable(feature = "catch_unwind", since = "1.9.0")] -#[cfg_attr(not(test), lang = "ref_unwind_safe")] +#[rustc_diagnostic_item = "ref_unwind_safe_trait"] #[rustc_on_unimplemented( message = "the type `{Self}` may contain interior mutability and a reference may not be safely \ transferrable across a catch_unwind boundary",