Consider the following program.
auto trait Marker {}
struct A;
struct B;
impl !Marker for &A {}
This would mean that (&B): Marker doesn't hold. Do we want it to? Idk. In std, impls for builtin types are defined for all T, so this won't be a visible change currently. For that reason, I think it's not worth trying to think about different behavior here.
[...] make sure we better define these semantics (or at least consider it again when it's better defined).
Originally posted by @jackh726 in rust-lang/rust#77152 (comment)