@@ -140,8 +140,7 @@ unsafe impl<T: Sync + ?Sized> Send for &T {}
140
140
) ]
141
141
#[ fundamental] // for Default, for example, which requires that `[T]: !Default` be evaluatable
142
142
#[ rustc_specialization_trait]
143
- #[ cfg_attr( not( bootstrap) , rustc_deny_explicit_impl( implement_via_object = false ) ) ]
144
- #[ cfg_attr( bootstrap, rustc_deny_explicit_impl) ]
143
+ #[ rustc_deny_explicit_impl( implement_via_object = false ) ]
145
144
#[ rustc_coinductive]
146
145
pub trait Sized {
147
146
// Empty.
@@ -174,8 +173,7 @@ pub trait Sized {
174
173
/// [nomicon-coerce]: ../../nomicon/coercions.html
175
174
#[ unstable( feature = "unsize" , issue = "18598" ) ]
176
175
#[ lang = "unsize" ]
177
- #[ cfg_attr( not( bootstrap) , rustc_deny_explicit_impl( implement_via_object = false ) ) ]
178
- #[ cfg_attr( bootstrap, rustc_deny_explicit_impl) ]
176
+ #[ rustc_deny_explicit_impl( implement_via_object = false ) ]
179
177
pub trait Unsize < T : ?Sized > {
180
178
// Empty.
181
179
}
@@ -856,8 +854,7 @@ impl<T: ?Sized> StructuralEq for PhantomData<T> {}
856
854
reason = "this trait is unlikely to ever be stabilized, use `mem::discriminant` instead"
857
855
) ]
858
856
#[ lang = "discriminant_kind" ]
859
- #[ cfg_attr( not( bootstrap) , rustc_deny_explicit_impl( implement_via_object = false ) ) ]
860
- #[ cfg_attr( bootstrap, rustc_deny_explicit_impl) ]
857
+ #[ rustc_deny_explicit_impl( implement_via_object = false ) ]
861
858
pub trait DiscriminantKind {
862
859
/// The type of the discriminant, which must satisfy the trait
863
860
/// bounds required by `mem::Discriminant`.
@@ -962,8 +959,7 @@ marker_impls! {
962
959
#[ unstable( feature = "const_trait_impl" , issue = "67792" ) ]
963
960
#[ lang = "destruct" ]
964
961
#[ rustc_on_unimplemented( message = "can't drop `{Self}`" , append_const_msg) ]
965
- #[ cfg_attr( not( bootstrap) , rustc_deny_explicit_impl( implement_via_object = false ) ) ]
966
- #[ cfg_attr( bootstrap, rustc_deny_explicit_impl) ]
962
+ #[ rustc_deny_explicit_impl( implement_via_object = false ) ]
967
963
#[ const_trait]
968
964
pub trait Destruct { }
969
965
@@ -974,8 +970,7 @@ pub trait Destruct {}
974
970
#[ unstable( feature = "tuple_trait" , issue = "none" ) ]
975
971
#[ lang = "tuple_trait" ]
976
972
#[ rustc_on_unimplemented( message = "`{Self}` is not a tuple" ) ]
977
- #[ cfg_attr( not( bootstrap) , rustc_deny_explicit_impl( implement_via_object = false ) ) ]
978
- #[ cfg_attr( bootstrap, rustc_deny_explicit_impl) ]
973
+ #[ rustc_deny_explicit_impl( implement_via_object = false ) ]
979
974
pub trait Tuple { }
980
975
981
976
/// A marker for pointer-like types.
@@ -1020,7 +1015,6 @@ marker_impls! {
1020
1015
1021
1016
// FIXME(adt_const_params): Add to marker_impls call above once not in bootstrap
1022
1017
#[ unstable( feature = "adt_const_params" , issue = "95174" ) ]
1023
- #[ cfg( not( bootstrap) ) ]
1024
1018
impl ConstParamTy for ( ) { }
1025
1019
1026
1020
/// A common trait implemented by all function pointers.
@@ -1030,8 +1024,7 @@ impl ConstParamTy for () {}
1030
1024
reason = "internal trait for implementing various traits for all function pointers"
1031
1025
) ]
1032
1026
#[ lang = "fn_ptr_trait" ]
1033
- #[ cfg_attr( not( bootstrap) , rustc_deny_explicit_impl( implement_via_object = false ) ) ]
1034
- #[ cfg_attr( bootstrap, rustc_deny_explicit_impl) ]
1027
+ #[ rustc_deny_explicit_impl( implement_via_object = false ) ]
1035
1028
pub trait FnPtr : Copy + Clone {
1036
1029
/// Returns the address of the function pointer.
1037
1030
#[ lang = "fn_ptr_addr" ]
0 commit comments