//@ check-pass | |
//@ compile-flags: -Z validate-mir | |
#![feature(let_chains)] | |
fn lambda<T, U>() -> U | |
where | |
T: Default, | |
U: Default, | |
{ | |
let foo: Result<T, ()> = Ok(T::default()); | |
let baz: U = U::default(); | |
if let Ok(foo) = foo && let Ok(bar) = transform(foo) { | |
bar | |
} else { | |
baz | |
} | |
} | |
fn transform<T, U>(input: T) -> Result<U, ()> { | |
todo!() | |
} | |
fn main() {} |