1 // check-pass
2 // compile-flags: -Z validate-mir
3 #![feature(let_chains)]
4
lambda<T, U>() -> U where T: Default, U: Default,5 fn lambda<T, U>() -> U
6 where
7 T: Default,
8 U: Default,
9 {
10 let foo: Result<T, ()> = Ok(T::default());
11 let baz: U = U::default();
12
13 if let Ok(foo) = foo && let Ok(bar) = transform(foo) {
14 bar
15 } else {
16 baz
17 }
18 }
19
transform<T, U>(input: T) -> Result<U, ()>20 fn transform<T, U>(input: T) -> Result<U, ()> {
21 todo!()
22 }
23
main()24 fn main() {}
25