A type with a Drop implementation was destructured when trying to initialize a static item.

Erroneous code example:

enum DropType {
    A,
}

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

struct Foo {
    field1: DropType,
}

static FOO: Foo = Foo { ..Foo { field1: DropType::A } }; // error!

The problem here is that if the given type or one of its fields implements the Drop trait, this Drop implementation cannot be called during the static type initialization which might cause a memory leak. To prevent this issue, you need to instantiate all the static type's fields by hand.

enum DropType {
    A,
}

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

struct Foo {
    field1: DropType,
}

static FOO: Foo = Foo { field1: DropType::A }; // We initialize all fields
                                               // by hand.