@@ -174,6 +174,7 @@ pub trait Sized {
174174#[ unstable( feature = "unsize" , issue = "18598" ) ]
175175#[ lang = "unsize" ]
176176#[ rustc_deny_explicit_impl]
177+ #[ cfg_attr( not( bootstrap) , rustc_do_not_implement_via_object) ]
177178pub trait Unsize < T : ?Sized > {
178179 // Empty.
179180}
@@ -855,6 +856,7 @@ impl<T: ?Sized> StructuralEq for PhantomData<T> {}
855856) ]
856857#[ lang = "discriminant_kind" ]
857858#[ rustc_deny_explicit_impl]
859+ #[ cfg_attr( not( bootstrap) , rustc_do_not_implement_via_object) ]
858860pub trait DiscriminantKind {
859861 /// The type of the discriminant, which must satisfy the trait
860862 /// bounds required by `mem::Discriminant`.
@@ -960,6 +962,7 @@ marker_impls! {
960962#[ lang = "destruct" ]
961963#[ rustc_on_unimplemented( message = "can't drop `{Self}`" , append_const_msg) ]
962964#[ rustc_deny_explicit_impl]
965+ #[ cfg_attr( not( bootstrap) , rustc_do_not_implement_via_object) ]
963966#[ const_trait]
964967pub trait Destruct { }
965968
@@ -971,6 +974,7 @@ pub trait Destruct {}
971974#[ lang = "tuple_trait" ]
972975#[ rustc_on_unimplemented( message = "`{Self}` is not a tuple" ) ]
973976#[ rustc_deny_explicit_impl]
977+ #[ cfg_attr( not( bootstrap) , rustc_do_not_implement_via_object) ]
974978pub trait Tuple { }
975979
976980/// A marker for pointer-like types.
0 commit comments