trait AsPtr { type Ptr; } impl AsPtr for () { type Ptr = *const void; //~^ ERROR cannot find type `void` in this scope } #[derive(Copy, Clone)] struct Foo { p: <() as AsPtr>::Ptr, // Do not report a "`Copy` cannot be implemented" here. } fn main() {}