-Creating a shared reference now always pushes a `Shr` item onto the stack, even
-when there is no `UnsafeCell`. This means that starting with a mutable reference
-`x`, `&*x as *const _ as *mut _` is pretty much equivalent to `x as *mut _`; the
-fact that we have an intermediate shared reference does not matter (not for the
-aliasing model, anyway). During the implementation, I realized that in `x as
-*const _` on a mutable reference, `x` actually first gets coerced to shared
-reference, which then gets cast to a raw pointer. This happens in
-`NonNull::from`, so if you later write to that `NonNull`, you end up writing to
-a raw pointer that was created from a shared reference. Originally I intended
-this to be strictly illegal. This is writing to a shared reference after all,
-how dare you! However, it turns out it's actually no big deal *if the shared
-reference does not get used again later*. This is an access-based model after
-all, if a reference never gets used again we do not care much about enforcing
-any guarantees for it. (This is another example of a coincidental fix, where I
-had a surprisingly passing test case and then investigated what happened.)
-