The Drop isn't implemented for T at all. It's only implemented for Q<T>. And it's implemented for all Q<T>, in the sense that for every value of type Q<T>, this Drop impl applies.
And I'm still not any closer to understanding what the bug is about.
And I'm still not any closer to understanding what the bug is about.
It doesn't even have to be less constrained than the containing types definition. You can provide an impl with more constraints; for example, a type Q<T: Read + Write>, but impl Seek for Q<T: Read + Seek>
Do you happen to know the specific rules of when it's an error and when it's not?
That said I was wrong earlier.