| //@ check-pass |
| //@ edition:2018 |
| |
| #![feature(if_let_guard)] |
| |
| fn main() {} |
| |
| struct StructA {} |
| struct StructB {} |
| |
| impl StructA { |
| fn fn_taking_struct_b(&self, struct_b: &StructB) -> bool { |
| true |
| } |
| } |
| |
| async fn get_struct_a_async() -> StructA { |
| StructA {} |
| } |
| |
| async fn ice() { |
| match Some(StructB {}) { |
| Some(struct_b) if get_struct_a_async().await.fn_taking_struct_b(&struct_b) => {} |
| _ => {} |
| } |
| } |
| |
| async fn if_let() { |
| match Some(StructB {}) { |
| Some(struct_b) if let true = get_struct_a_async().await.fn_taking_struct_b(&struct_b) => {} |
| _ => {} |
| } |
| } |