Just a strange little thing I noticed. Playground link.
We see that in the first block when Foo is dropped implicitly as it exits scope, it’s address remains the same.
But when we drop Foo explicitly in the second block, it is moved to a new location before drop is called!
Why is this? It seems inefficient.