| type Result<T, E = Error> = ::std::result::Result<T, E>; | |
| struct Error; | |
| trait ForEach { | |
| type Input; | |
| fn for_each<F, U>(self, f: F) | |
| where | |
| F: FnOnce(Self::Input) -> U; | |
| } | |
| impl<T> ForEach for A<T> { | |
| type Input = T; | |
| fn for_each<F, U>(self, f: F) | |
| where | |
| F: FnOnce(Self::Input) -> U, | |
| { | |
| todo!() | |
| } | |
| } | |
| struct A<T>(T); | |
| fn main() { | |
| let a = A(Result::Ok(Result::Ok(()))); //~ ERROR type annotations needed | |
| a.for_each(|a: Result<_>| { | |
| let f = || match a { | |
| Ok(Ok(a)) => {} | |
| Ok(Err(a)) => {} | |
| Err(a) => {} | |
| }; | |
| }); | |
| } |