1 trait Foo { t1() -> [u8; std::mem::size_of::<Self>()]2 fn t1() -> [u8; std::mem::size_of::<Self>()]; //~ERROR generic parameters 3 } 4 5 struct Bar<T>(T); 6 7 impl Bar<u8> { t2() -> [u8; std::mem::size_of::<Self>()]8 fn t2() -> [u8; std::mem::size_of::<Self>()] { todo!() } // ok 9 } 10 11 impl<T> Bar<T> { t3() -> [u8; std::mem::size_of::<Self>()]12 fn t3() -> [u8; std::mem::size_of::<Self>()] {} //~ERROR generic `Self` 13 } 14 15 trait Baz { hey()16 fn hey(); 17 } 18 19 impl Baz for u16 { hey()20 fn hey() { 21 let _: [u8; std::mem::size_of::<Self>()]; // ok 22 } 23 } 24 main()25fn main() {} 26