// Enormous types are allowed if they are never actually instantiated. // run-pass trait Foo { type Assoc; } impl Foo for [u16; usize::MAX] { type Assoc = u32; } fn main() { let _a: Option<<[u16; usize::MAX] as Foo>::Assoc> = None; }