trait Foo { fn t1() -> [u8; std::mem::size_of::()]; //~ERROR generic parameters } struct Bar(T); impl Bar { fn t2() -> [u8; std::mem::size_of::()] { todo!() } // ok } impl Bar { fn t3() -> [u8; std::mem::size_of::()] {} //~ERROR generic `Self` } trait Baz { fn hey(); } impl Baz for u16 { fn hey() { let _: [u8; std::mem::size_of::()]; // ok } } fn main() {}