I see that Uninitialized Memory - The Rustonomicon states that
All runtime-allocated memory in a Rust program begins its life as uninitialized . In this state the value of the memory is an indeterminate pile of bits that may or may not even reflect a valid state for the type that is supposed to inhabit that location of memory. Attempting to interpret this memory as a value of any type will cause Undefined Behavior.
I am assuming that
drop somehow interprets the memory - which is UB. If so, why does
drop have to interpret the memory at all - initialized or uninitialized?