Error code E0588

A type with packed representation hint has a field with align representation hint.

Erroneous code example:

#![allow(unused)]
fn main() {
#[repr(align(16))]
struct Aligned(i32);

#[repr(packed)] // error!
struct Packed(Aligned);
}

Just like you cannot have both align and packed representation hints on a same type, a packed type cannot contain another type with the align representation hint. However, you can do the opposite:

#![allow(unused)]
fn main() {
#[repr(packed)]
struct Packed(i32);

#[repr(align(16))] // ok!
struct Aligned(Packed);
}