If I have:

```rust
struct Bar {}

struct Foo {
  bar: Bar
}

impl Drop for Foo {
  fn drop(&mut self) {}
}

impl Drop for Bar {
  fn drop(&mut self) {}
}

fn main() {
   let x = Foo { bar: Bar {} };
}

```

which drop is called first, the drop for `Foo` or the drop for `Bar`?