1 error[E0119]: conflicting implementations of trait `Drop` for type `Box<_>`:
2 --> $DIR/issue-41974.rs:7:1
4 LL | impl<T> Drop for T where T: A {
5 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
7 = note: conflicting implementation in crate `alloc`:
8 - impl<T> Drop for Box<T>
10 = note: downstream crates may implement trait `A` for type `std::boxed::Box<_>`
12 error[E0120]: the `Drop` trait may only be implemented for structs, enums, and unions
13 --> $DIR/issue-41974.rs:7:18
15 LL | impl<T> Drop for T where T: A {
16 | ^ must be a struct, enum, or union
18 error[E0210]: type parameter `T` must be used as the type parameter for some local type (e.g., `MyStruct<T>`)
19 --> $DIR/issue-41974.rs:7:6
21 LL | impl<T> Drop for T where T: A {
22 | ^ type parameter `T` must be used as the type parameter for some local type
24 = note: implementing a foreign trait is only possible if at least one of the types for which is it implemented is local
25 = note: only traits defined in the current crate can be implemented for a type parameter
27 error: aborting due to 3 previous errors
29 Some errors have detailed explanations: E0119, E0120, E0210.
30 For more information about an error, try `rustc --explain E0119`.