| use std::marker::PhantomData; | |
| struct Foo<T>(PhantomData<T>); | |
| impl Clone for Foo<u8> { | |
| fn clone(&self) -> Self { | |
| Foo(PhantomData) | |
| } | |
| } | |
| impl Copy for Foo<u8> {} | |
| fn extract<T, const N: usize>(_: [Foo<T>; N]) -> T { | |
| loop {} | |
| } | |
| fn main() { | |
| let x = [Foo(PhantomData); 2]; | |
| //~^ ERROR: type annotations needed | |
| extract(x).max(2); | |
| } |